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

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top