ABPeoplePickerNavigationController缓慢吗?

Car*_*ten 6 abpeoplepickerview ios

使用ABPeoplePickerNavigationController时需要片刻(~0.5秒)加载并显示比其他弹出窗口的正常反应时间慢的控件.

我带来了解决方案,将控制器设置为变量,并通过以下方式访问此预加载对象:

[self presentViewController:self.peoplePicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

出于好奇,有没有另外一种方法可以在没有预加载的情况下点亮拣货员?

and*_*ani 4

同样,我没有解决这个问题的答案,我认为这可能是 iOS 8 的错误(更新:是的,苹果已经确认了)。

在我对 iOS 7.x 的测试中,ABPeoplePicker 的演示时间不到 0.2 秒。

该问题仅出现在 iOS 8.x 上,并且仅在您第一次呈现 ABPeoplePicker 时出现。在我的应用程序中, ABPeoplePicker演示大约需要 3 秒,在仅通过按按钮执行ABPeoplePicker演示的示例应用程序中大约需要 1.5 秒。我在模拟器和具有约 20 个联系人的设备上对其进行了测试。

正如我预期的那样,预加载实例不会显着改变演示时间。我也尝试过在主线程上强制演示并将动画设置为“否”,但在 iOS 8 上仍然很慢。

时间分析器对我没有帮助,因为我看不到意外的长时间计算。

当我们等待所谓的错误修复时,我认为最好的解决方法是在加载 ABPeoplePicker 时显示活动进度指示器或实现我们自己的ABPeoplePicker。

我已经实现了自己的,您可以在 GitHub 上找到它:VeeContactPicker,当然也可以使用它!

来自苹果的消息:

苹果团队回复了我的错误报告:

Apple 开发者关系 2015 年 6 月 16 日 00:36

我们相信这个问题已在最新的 iOS 9 Beta 中得到解决。 这是预发布的 iOS 9 更新。请参阅发行说明以获取完整的安装说明。请使用此版本进行测试。如果您仍然遇到问题,请提供任何可以帮助我们调查的相关日志或信息。*

iOS 9 更新

在 iOS 9 中,ABFramework 已被弃用,取而代之的是一个新的面向对象的联系人框架,该框架附带了一个新的选择器 [请参阅CNContactPicker ]!不幸的是,这个问题似乎还没有解决,逻辑已经更新,但 ViewController 仍然与 iOS 8 相同。所以CNContactPicker加载和显示控件仍然很慢......

我已经向 Apple 报告了该错误,正在等待消息......