UIActivityViewController Falhas na interface do usuário da caixa de diálogo de impressão (Bugs?)
-
21-12-2019 - |
Pergunta
Tenho algumas falhas estranhas na interface do usuário ao usar um UIActivityViewController no iPad.
É complicado contar, então aqui estão dois vídeos.Um mostrando o comportamento do iOS6 e outro do iOS7 com defeito:iOS6: http://quick.as/govpsry7
iOS7: http://quick.as/qr7jtd8b
1ª edição:A seta está um pouco fora de posição no iOS7 (por design?).UINavigationBar comum com UIBarButtonItems.
Código para apresentar o popover (no iPad):
ActivityPopover = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
[activityPopover presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
Nada sofisticado aqui.O remetente é o UIBarButtonItem.
2ª edição:Selecionar Imprimir em UIActivityViewController PopOver apresenta alguns problemas de transição de IU no iOS7.O novo PopOver de opções de impressão entra na visualização a partir da esquerda, movendo também o fundo dessaturado de toda a tela.Melhor visto no 2º vídeo.
3ª edição:Como visto, quando a caixa de diálogo Opções de impressão é aberta, o conteúdo do UIWebView se ajusta de alguma forma.Não vejo razão para isso.
O primeiro e o segundo problema ocorrem até mesmo ao navegar para "about: blank".
Alguém sabe algo sobre essas falhas?Erros comuns?
Editar:O primeiro e o segundo parecem bugs do iOS7.Experimentei o SVWebViewController de Sam Vermette e inseri meu código de teste.
Em SVWebViewController.m da inserção Demo:
@interface SVWebViewController () <UIWebViewDelegate>
@property (nonatomic, strong) UIBarButtonItem *backBarButtonItem;
@property (nonatomic, strong) UIBarButtonItem *forwardBarButtonItem;
@property (nonatomic, strong) UIBarButtonItem *refreshBarButtonItem;
@property (nonatomic, strong) UIBarButtonItem *stopBarButtonItem;
@property (nonatomic, strong) UIBarButtonItem *actionBarButtonItem;
@property (nonatomic, strong) UIPopoverController *popover; // added
Mais tarde no arquivo, na parte inferior, ajuste:
- (void)actionButtonClicked:(id)sender {
NSArray *activities = @[[SVWebViewControllerActivitySafari new], [SVWebViewControllerActivityChrome new]];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[self.self.webView.request.URL, self.self.webView.viewPrintFormatter] applicationActivities:activities];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.popover = [[UIPopoverController alloc] initWithContentViewController:activityController];
[self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
else {
[self presentViewController:activityController animated:YES completion:nil];
}
}
Isso produz as mesmas falhas de interface do usuário ao tocar no PopOver de atividade e no ícone de impressão.
Portanto, também pode ser reproduzido com uma demonstração simples.
Ambiente:SDK 7.0, Xcode público atual (em 25/02/2014).Alvos:iOS6 e iOS7.
Editar 2/3:
Em relação ao 3º problema encontrei isso, então já está relatado: http://openradar.appspot.com/8668247
Atenciosamente, Frederik
Solução
Verifiquei todos os três problemas para serem bugs da Apple.
O 1º e 2º são visíveis por demo mencionado acima.O 3º está mesmo com o aplicativo do navegador do Google visível (no ipad).A origem da terceira questão é a reinicialização do dimensionamento da UIWebView ViewPrInformPatter durante o pop-up de diálogo (na verdade uma preparação interna da UACtivity).