1

在 iPad 上使用 UIActivityViewController 时,我遇到了一些奇怪的 UI 故障。

说起来很复杂,所以这里有两个视频。一个显示 iOS6 行为,一个显示有故障的 iOS7 一个: iOS6:http
://quick.as/govpsry7 iOS7 :http: //quick.as/qr7jtd8b

第一个问题:箭头有点偏离它在 iOS7 上的位置(按设计?)。带有 UIBarButtonItems 的通用 UINavigationBar。

呈现弹出框的代码(在 iPad 上):

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

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

这里没有什么花哨的。发件人是 UIBarButtonItem。

第二个问题:从 UIActivityViewController PopOver 中选择打印在 iOS7 上有一些 UI 转换问题。新的 Print Options PopOver 从左侧移动到视图中,同时移动了整个屏幕的不饱和背景。最好在第二个视频中看到。

第三个问题:如所见,当打开打印选项对话框时,UIWebView 的内容会以某种方式调整。我看不出这是什么原因。

浏览到“about:blank”时甚至会出现第一个和第二个问题。

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

编辑:第一个和第二个看起来像 iOS7 错误。我尝试了 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:

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

问候,弗雷德里克

4

1 回答 1

1

验证所有三个问题都是 Apple iOS 错误。

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

于 2014-02-26T20:05:25.030 回答