如何获得iOS 8/9中今天扩展的宽度

时间:2016-11-22 15:58:19

标签: ios objective-c today-extension ios8-today-widget ios10-today-widget

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

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

然而,由于widgetMaximumSizeForDisplayMode仅可从iOS 10开始提供,因此我很难弄清楚如何为iOS 8/9做到这一点。有时今天的扩展宽度只是设备的宽度,如下所示:

iPhone 6 today view

但对于像ipad这样的其他设备,小部件的宽度只是屏幕上的一定宽度。

iPad Air today view

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

2 个答案:

答案 0 :(得分:2)

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

iOS 8及更高版本支持它,你也可以在旋转时获得新的尺寸。

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

答案 1 :(得分:0)

对于给定的设备/方向,宽度始终相同 - 您无法设置它。但是,如果您需要阅读它以确定该宽度的高度,您只需检查view.bounds.width