ios - 在 iOS 7 上以横向模式处理 UIActivityViewController 后 View 边界发生变化

标签 ios ipad ios7

使用 UIActivityViewController 时我有一个奇怪的行为:

我有一个带有共享按钮的 UIViewController (768x704)。当我点击分享按钮时,会打开一个 UIActivityView。关闭 ActivityView 后,我的导航栏(或 View Controller 本身)会更改其大小。

这是代码:

NSLog(@"Old bounds: %@",NSStringFromCGRect(self.view.bounds));

UIActivityViewController* activityViewController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:shareText] applicationActivities:nil];
[activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed){
    NSLog(@"New bounds: %@",NSStringFromCGRect(self.view.bounds));
}];

[self presentViewController:activityViewController animated:YES completion:^{}]; 

输出:
Old Bounds: {{0, 0}, {768, 704}}
New Bounds: {{0, 0}, {768, 724}}

似乎是状态栏的高度。

这只发生在 iOS 7 上,在 iPad 上处于横向模式。任何其他情况都运行良好 - 没有任何故障。

这可能是iOS7中的错误吗?还是只是我做错了什么?

最佳答案

根据UIActivityViewController Class Reference UIActivityViews 应该出现在弹出框中:

Discussion

[...] On iPad, you must present the view controller in a popover. On other devices, you must present it modally.


当我把我的 UIActivityViewController在弹出窗口中,我的问题似乎已解决。
经验教训:我应该更频繁地阅读类引用;)

关于ios - 在 iOS 7 上以横向模式处理 UIActivityViewController 后 View 边界发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20267667/

相关文章:

ios - 闭包内的 return 语句

ios - iPad:没有 "popup button"的 UISplitViewController ?

iphone - 如果连接状态发生变化,我如何获得通知?

ios - Firemonkey在iOS中不显示希伯来文字

ios - UICollectionView 示例因 EXC_BAD_INSTRUCTION 而失败

objective-c - 录制直播音频

iphone - 是否有一个开源框架可以简化使用音频单元的工作?

ios - .ipa 文件安装在 ipad 上显示为灰色

ios - 根据iOS版本编译

ios - 将数字插入 UiTextView 并检测数字