从UITableViewCell调用的UIActivityViewController显示不正确

时间:2014-07-04 01:34:06

标签: ios objective-c uitableview uiactivityviewcontroller

我在UITableView中有UIViewController嵌入在导航控制器中。 UIViewController使用自动布局排列。我正在使用SWTableViewCell启用从左向右滑动。这会显示一个“分享”字样。点击时显示UIActivityViewController的按钮。

问题是,UIActivityViewController在调用时显示不正确,压缩到视图的左侧并附加到左上角。例如,请参阅下面的图片,第一个是显示UIActivityViewController期间,第二个是显示UIActivityViewController时。

我还没有找到关于此类问题的其他帖子。以下代码是我如何通过UIActivityViewController委托的- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index方法调用SWTableViewCell

WhatsAppMessage *whatsappMsg = [[WhatsAppMessage alloc] initWithMessage:shareItem forABID:nil];

NSArray *activityItems = @[shareItem, whatsappMsg];
NSArray *applicationActivities = @[[[JBWhatsAppActivity alloc] init],[[LINEActivity alloc] init], [[WeixinTimelineActivity alloc] init],[[WeixinSessionActivity alloc] init]];

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];

activityViewController.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo, UIActivityTypePostToFlickr, UIActivityTypeAirDrop];

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

有什么想法吗?

During display of UIActivityViewController Once UIActivityViewController is displayed

1 个答案:

答案 0 :(得分:1)

我终于找到了答案,我知道它与自动布局有关。在项目的早期,我在代码中设置了大部分自动布局约束,并且在AppDelegate.m文件中添加了以下行:

    self.window.translatesAutoresizingMaskIntoConstraints = NO;

删除此行后,UIActivityViewController完全加载!

希望这有助于遇到此问题的其他人。