微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

setPopoverContentSize:使用xCode 6在iOS 8上无法正常工作

最近,我已升级到xCode 6.我有两个用于开发的iPad;一个运行iOS 7.1.2,另一个运行iOS 8.0.2.

在我的应用程序中,我使用UIPopoverController来显示UITableViewController中的项列表.从iOS 5到iOS 7,这一切都运行良好.我只创建一次UIPopoverController,并且我经常在整个应用程序中重复使用它.我希望popover的大小足以显示列表中的项目(1到5项),所以我调用setPopoverContentSize:animated:在我确定显示区域应该有多大之后调整popover的大小.

正如我所提到的,这一切都很好.如果我使用运行iOS 7的iPad开发,一切仍然可以正常工作.但是如果我使用运行iOS 8的iPad,那么第一次调用setPopoverContentSize:动画会正确调整弹出窗口的大小 – 但仅限于第一次调用.所有后续调用都不会影响弹出窗口的大小.

该应用程序的发布版本仍可正常运行,即使它在iOS 8上运行(它是使用xCode 5开发并提交给Apple的).所以这似乎是与xCode 6和iOS 8相结合的问题.

我无法弄清楚为什么只有第一次调用setPopoverContentSize:animated正在工作.有没有人见过这种行为?如果是这样,你是如何在UIPopoverController上调整大小才能正常工作的?

解决方法

为了记录,我发现了两种纠正这种行为的方法.一种是每次我想要使用它时重新创建UIPopoverController.

另一种方法是使用UITableViewController的preferredContentSize而不是setPopoverContentSize:animated:.

最后 – 正如我所说,如果您正在使用xCode 6 for iOS 8进行开发,这是必要的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐