我在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:^{}];
有什么想法吗?
答案 0 :(得分:1)
我终于找到了答案,我知道它与自动布局有关。在项目的早期,我在代码中设置了大部分自动布局约束,并且在AppDelegate.m文件中添加了以下行:
self.window.translatesAutoresizingMaskIntoConstraints = NO;
删除此行后,UIActivityViewController
完全加载!
希望这有助于遇到此问题的其他人。