Swift Today Extension preferredContentSize没有调整大小

时间:2017-01-26 14:34:04

标签: ios swift today-extension

所以描述说我正在开发iOS应用程序,并希望为它创建一个Today Extension小部件。我的问题是我想将高度更改为200.在研究了我发现的唯一解决方案后,我使用了preferredContentSize属性,但这对我没用。

我想为它添加一个tableView,我希望它能够完全显示出来。 我添加了viewDidLoad方法,以便您可以看到创建和添加表的位置。

s3.flight

1 个答案:

答案 0 :(得分:6)

在iOS 10中设置preferredContentSize.height直接无法正常工作

在iOS 10之后,有两种类型可以显示今天的扩展名

案例1显示更多(扩展类型,可以设置自定义高度)

案例2显示更少(紧凑型,默认为hegiht)

enter image description here

What's new in iOS 10

所以你应该为iOS 10早期版本和iOS 10提供高度

if #available(iOSApplicationExtension 10.0, *) {
        //setup display mode (show more(.expended) or show less(.compact))
        extensionContext?.widgetLargestAvailableDisplayMode = .expanded
    } else {
        // Fallback on earlier versions
        preferredContentSize.height = 200
    }

并实施自定义高度

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {

@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
    switch activeDisplayMode {
    case .expanded: preferredContentSize.height = 200
    case .compact: preferredContentSize = maxSize
    }
}