如何在 iOS 8 / 9 中获取 today-extension 的宽度

How to get the width of a today-extension in iOS 8 / 9

我目前正在尝试创建一个与旧式今天扩展以及 iOS 10 中的新样式小部件兼容的今天扩展。

我没有使用故事板,所以我需要在视图控制器中创建和设置小部件视图的高度和宽度 class。这在 iOS 中很好 10 - widgetMaximumSizeForDisplayMode 可用于在任何设备上获取小部件的宽度和高度。

但是我正在努力弄清楚如何为 iOS 8 / 9 执行此操作,因为 widgetMaximumSizeForDisplayMode 仅从 iOS 10 起可用。有时今天的扩展宽度只是设备的宽度,如下所示:

iPhone 6 today view

但对于其他设备,如ipad,小部件的宽度在屏幕上只有一定的宽度。

iPad Air today view

是否有内置方法可以在 iOS 8 / 9 中获取今天的扩展宽度?

给定的宽度始终相同 device/orientation--you 无法设置。但是如果您需要阅读它以确定该宽度的高度,您可以检查 view.bounds.width.

您是否尝试过在视图控制器中为今天的扩展使用 override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) 方法?

iOS 8 及更高版本支持它,您也将获得新的旋转尺寸。

https://developer.apple.com/reference/uikit/uicontentcontainer/1621466-viewwilltransitiontosize