如何获取iOS中今日扩展的宽度8/9
问题描述:
我目前正在尝试创建与旧式今日扩展兼容的今日扩展以及iOS 10中的新样式小部件。如何获取iOS中今日扩展的宽度8/9
我不使用故事板,所以我需要在视图控制器类中创建并设置小部件视图的高度和宽度。在iOS 10中这很好 - 可以使用widgetMaximumSizeForDisplayMode获取任何设备上的小部件的宽度和高度。
然而,我正在努力弄清楚如何为iOS 8/9做到这一点,因为widgetMaximumSizeForDisplayMode只能从iOS 10开始提供。有时,今天扩展宽度是简单地如下文所述设备的宽度:
但对于像ipad的微件的宽度的其它设备是唯一在屏幕上的特定宽度。
有一个内置的方法抢在iOS的8/9的今天扩展宽度?
答
您是否在今日扩展的视图控制器中使用了override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
方法?
它支持iOS 8及以上版本,你也可以在旋转时获得新的尺寸。
https://developer.apple.com/reference/uikit/uicontentcontainer/1621466-viewwilltransitiontosize
答
给定设备/方向的宽度始终相同 - 您无法设置它。但是,如果您需要阅读以确定该宽度的高度,则可以检查view.bounds.width
。
我设置视图边界自己(因为我没有使用故事板所以我手动创建视图),所以我需要知道今天扩展区的宽度之前,我可以将它设置。 iOS 10满足这个'widgetMaximumSizeForDisplayMode'方法,但我不知道如何获得这个宽度,当使用iOS 8/9。 –