UIPopoverViewController 添加子视图很慢

Posted

技术标签:

【中文标题】UIPopoverViewController 添加子视图很慢【英文标题】:UIPopoverViewController Adding Subviews is slow 【发布时间】:2011-10-25 18:39:09 【问题描述】:

我有一个 UIPopoverViewController 可以正确显示自定义 UIViewController。当我单击一个按钮时,我运行了一个操作,因此我将一个视图添加到 UIViewController 视图的视图层次结构中。

问题是它非常慢,并且需要几秒钟才能显示视图。我的 UIViewController 的代码没有做任何不寻常的事情。

- (void)showAccountChooser 
    self.twitterAccountPicker = [TwitterAccountPicker new];
    [self.view addSubview:self.twitterAccountPicker.view];
    self.twitterAccountPicker.view.frame = self.view.bounds;

    self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(.05, .05);

    [UIView animateWithDuration:0.5f animations:^
        self.twitterAccountPicker.view.transform = CGAffineTransformMakeScale(1, 1);
     completion:^(BOOL finished) 
        //[self.twitterAccountPicker viewDidAppear:YES];
    ];

我添加的 UIViewController 是微不足道的,不会在 viewDidLoad 或 viewWill/DidAppear 中进行繁重的处理。我设置了断点并验证它没有做任何事情

其他人在添加视图时注意到这一点?

【问题讨论】:

【参考方案1】:

在设置断点尝试调试之后,我意识到我的 showAccountChooser 方法是从块调用中调用的,这发生在后台线程上。将此调用移至主线程解决了该问题。

【讨论】:

以上是关于UIPopoverViewController 添加子视图很慢的主要内容,如果未能解决你的问题,请参考以下文章

禁用 UIPopoverViewController 内容视图上的阴影

使用委托在 UIPopoverViewController 和 MainViewController 之间进行通信

UIPopoverViewController presentModalViewController 动画

如何将导航栏和标签栏设置为通过 UIPopoverViewController 的视图?

uiactivityindicatorview 在 uipopoverviewcontroller iphone 中不起作用

在呈现 UIPopoverViewController 时,如何使除 sourceView 之外的所有内容变暗?