【问题标题】:setPreferredContentSize does not work in the today widget in landscape iPhone on iOS8设置 PreferredContentSize 在 iOS 8 横向 iPhone 的今日小部件中不起作用
【发布时间】:2014-08-30 10:52:07
【问题描述】:

我正在使用 Xcode beta 6 在 iOS8 中开发 Today 扩展小部件。

我在viewWillAppear: 中通过setPreferredContentSize: 设置了我的小部件的框架 它适用于所有 iOS 设备,除了横向 iPhone。

在横向模式下的 iPhone 上,小部件的高度不超过 166 像素(视网膜 iPhone 中为 332 像素)。我正在尝试将其设置为 300 像素左右。

我知道高小部件可能会像 Apple 在 App Extension Programming Guide 中提到的那样不好,但如果日程安排很多,日历应用有时会变得非常高。

由于我没有 iOS8 iPhone,我只用模拟器进行了测试。 是模拟器的bug吗?

我们将不胜感激。

【问题讨论】:

  • 我也想知道如何在横向模式下避免 166px 的自动小部件高度。我一直在设备上进行测试,使用带有情节提要的自动布局,并在多个地方尝试了 setPreferredContentSize。

标签: ios objective-c ios8 xcode6 today-extension


【解决方案1】:

Apple 没有记录 NC Widget 的最大高度。

但是,根据我的经验,最大高度严格来说是屏幕的高度减去顶部和底部的控件。

这会产生不良影响,即非常适合 iPad 或 iPhone 6 plus 的小部件可能不适合横屏 iPhone!

设备和 iOS 模拟器都是这种情况(从 iOS 8.1.2 开始)

在我正在编写的应用程序中,NC 小部件的 preferredContentSize.height 始终为 210 pt。但是,在 iPhone 5 的横向上,小部件高度的上限为 205.5 pt。所以 UI 元素被更紧密地组合在一起。

我见过一些 NC 小部件,它们显示具有固定行数的 UITableView,在 iPad 或纵向 iPhone 上运行良好,但在横向 iPhone 上会被剪裁。

在这种情况下,您可能希望将preferredContentSize 设置为您想要的高度,然后检查小部件视图的边界。如果高度小于首选高度,则最好减少显示的内容量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多