UIActivityViewController打印对话框UI故障(错误?)

时间:2014-02-25 15:28:24

标签: ios ipad uiwebview uiactivityviewcontroller uiprintformatter

我在iPad上使用UIActivityViewController时有一些奇怪的UI故障。

复杂告诉,所以这里有两个视频。一个显示iOS6行为,另一个显示错误的iOS7行为: iOS6:http://quick.as/govpsry7
iOS7:http://quick.as/qr7jtd8b

第一期:箭头有点偏离它在iOS7上的位置(按设计?)。带有UIBarButtonItems的常见UINavigationBar。

显示popover的代码(在iPad上):

 ActivityPopover = [[UIPopoverController alloc] initWithContentViewController:activityViewController];

 [activityPopover presentPopoverFromBarButtonItem:sender
                         permittedArrowDirections:UIPopoverArrowDirectionAny
                                         animated:YES];

这里没什么好看的。发件人是UIBarButtonItem。

第二期:从UIActivityViewController中选择打印PopOver在iOS7上有一些UI过渡问题。新的打印选项PopOver从左侧移动到视图中,也移动整个屏幕的不饱和背景。最好在第二个视频中看到。

第3期:如图所示,打开“打印选项”对话框时,UIWebView的内容会以某种方式进行调整。我没有看到这个原因。

第1和第2期甚至在浏览“about:blank”时出现。

有人知道这些故障吗?常见的错误?

编辑:第一和第二看起来像iOS7 Bugs。我尝试了Sam Vermette的SVWebViewController并插入了我的测试代码。

在Demo插入的SVWebViewController.m中:

@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

稍后在文件中,在最底部,调整:

- (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];
    }
}

当触摸Activity PopOver和Print Icon时,会产生相同的UI故障。

所以它也可以用简单的演示重现。

环境:SDK 7.0,当前的公共Xcode(截至2014年2月25日)。目标:iOS6和iOS7。

编辑2/3:

关于第3期我发现了这个问题,所以已经报道了:http://openradar.appspot.com/8668247

此致 弗雷德里克

1 个答案:

答案 0 :(得分:1)

验证所有三个问题是Apple iOS Bugs。

上面提到的Demo可以看到第一个和第二个。第三是即使可以看到谷歌浏览器应用程序(在iPad上)。第三个问题的来源是在对话框弹出期间UIWebView viewPrintFormatter的缩放重置(实际上是内部UIActivity prepareAction)。