我只是为我提供了这个错误报告...活动视图控制器突然出现这种奇怪的狭窄形状,无论我是在实际的手机还是视图控制器上。
这种情况发生在一些普通的香草代码中,这些代码在几个月内没有被触及:
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[message] applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
怎么可能出错?我甚至无法想到从哪里开始排除故障。
在某些情况下可能会发生。试试这个
NSArray *Items = [NSArray arrayWithObjects:
@"Checking Test App", nil];
UIActivityViewController *activity=[[UIActivityViewController alloc]initWithActivityItems:Items applicationActivities:nil];
[self presentViewController:activity animated:YES completion:nil];
要么
NSString *string = NSLocalizedString(@"shareString", nil);
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:@[string] applicationActivities:nil];
[activityViewController setCompletionWithItemsHandler:
^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *error)
{
if ( completed ) {
NSLog(@"sharing complete");
} else
{
NSLog(@"cancelled");
}
}];
[self presentViewController:activityViewController animated:YES completion:^{
}];
你试过复制这个bug吗???如果我们没有确定如何创建这个bug的确切方案,那么我们就无法为它做出解决方案!尝试更新数组中的项目并检查错误是否仍然存在......有时会发生这种类型的事情,但除非我们不重现这种情况,否则它不能被称为错误。
如果您在通用应用程序中工作,请在呈现ActivityView之前添加以下代码行
ActivityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];
我会建议,而不是寻找解决方案首先解决问题。在此之前我从未见过如此奇怪的ActivityView行为,如果我们知道为什么会发生这种情况,那么它对每个iOS开发人员都会有所帮助。
您应该检查自己视图的帧。可能它的宽度小于activityViewController的宽度,你得到这个bug。
也许qazxsw poi是问题所在。你可以用qazxsw poi qazxsw poi找到你的框架。简单的解决方法可能是:
self.view.frame.size.width
这些类型的错误确实会发生,它们确实会测试您的耐心并给您带来挑战。虽然我不能给出明确的答案,但我可以给你一些如何排除故障的提示!
我建议你首先尝试在你的开发机器上重新创建它。然后尝试四处看看是什么导致了这个问题。这里有一些要尝试的东西。
NSLog
”值,看看问题是否发生。我知道这不是一个答案,但我不能发表如此长的回应作为评论。
希望这可以帮助!
如果您使用的是iPad,请尝试设置self.view
的[self.view.window.rootViewController presentViewController:activityViewController animated:YES completion:nil];
属性
initWithActivityItems
我可以在iOS 12上重现这个:
我的解决方案是将自身切换回UIModalPresentationFullScreen。