Ios 从UITableViewCell调用的UIActivityViewController显示不正确
我在嵌入导航控制器的Ios 从UITableViewCell调用的UIActivityViewController显示不正确,ios,objective-c,uitableview,uiactivityviewcontroller,Ios,Objective C,Uitableview,Uiactivityviewcontroller,我在嵌入导航控制器的UIViewController中有一个UITableView。UIViewController使用自动布局进行排列。我正在使用以启用从左向右滑动。这将显示一个“共享”按钮,点击该按钮时会显示UIActivityViewController 问题是,调用时,UIActivityViewController显示不正确,挤压到视图的左侧并附着到左上角。例如,请参见下图,第一个是在显示UIActivityViewController期间,第二个是在显示UIActivityViewC
UIViewController
中有一个UITableView
。UIViewController
使用自动布局进行排列。我正在使用以启用从左向右滑动。这将显示一个“共享”按钮,点击该按钮时会显示UIActivityViewController
问题是,调用时,UIActivityViewController
显示不正确,挤压到视图的左侧并附着到左上角。例如,请参见下图,第一个是在显示UIActivityViewController
期间,第二个是在显示UIActivityViewController
后
我还没有找到其他关于这类问题的帖子。下面的代码是如何从-(void)swipeableTableViewCell:(SWTableViewCell*)单元格didTriggerLeftUtilityButtonWithIndex:(NSInteger)index
方法调用UIActivityViewController
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:^{}];
有什么想法吗
我终于找到了答案,我知道这与自动布局有关。在项目早期,我在代码中设置了大多数自动布局约束,并在AppDelegate.m文件中添加了以下行:
self.window.translatesAutoresizingMaskIntoConstraints = NO;
删除此行后,UIActivityViewController
将完美加载
希望这能帮助其他遇到这个问题的人。我尝试了几乎完全相同的代码,在一个空白的单视图应用程序中显示
UIActivityViewController
(有和没有UINavigationController
),它工作得很好,所以我必须在我的应用程序中设置一些奇怪的东西。