UIActivityViewController的框架被设置为零

时间:2013-06-11 03:44:06

标签: iphone objective-c ios6 uiactivityviewcontroller

我正在展示一个UIActivityViewController,最终结果是什么都没有显示出来。视图显示为灰色,在演示动画期间,您可以看到“取消”按钮放大到屏幕的左上角,但之后什么也没有。

这是我提供视图控制器的代码:

    NSString *textItem = [NSString stringWithFormat:@"wow this is cool!"];

    NSArray *items = [NSArray arrayWithObjects:textItem,nil];

    UIActivityViewController *activityVC =
    [[UIActivityViewController alloc] initWithActivityItems:items
                                      applicationActivities:nil];

    activityVC.excludedActivityTypes = nil;
    activityVC.completionHandler = ^(NSString *activityType, BOOL completed)
    {
    };

    [self presentViewController:activityVC animated:YES completion:nil];

通过NSLog,我可以看到activityVC的子视图,其中包含以下信息:

    <UIActivityListView: 0x22545920; frame = (0 0; 0 0); autoresize = W+H; autoresizesSubviews = NO; layer = <CALayer: 0x22545c20>> 

在我的演示文稿中,如果我递归子视图并查找帧等于(0 0; 0 0)的视图,然后手动将帧设置为,比如屏幕的边界,则显示活动视图,但是取消按钮没有显示,这似乎开始时被黑了。我已经使用上面显示的确切代码创建了示例项目,并且活动视图控制器显示完美,所以给出了什么?

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案......

全部关于自动布局问题..

self.view.translatesAutoresizingMaskIntoConstraints = NO;

删除整个项目中的这一行