所以描述说我正在开发iOS应用程序,并希望为它创建一个Today Extension小部件。我的问题是我想将高度更改为200.在研究了我发现的唯一解决方案后,我使用了preferredContentSize属性,但这对我没用。
我想为它添加一个tableView,我希望它能够完全显示出来。 我添加了viewDidLoad方法,以便您可以看到创建和添加表的位置。
s3.flight
答案 0 :(得分:6)
在iOS 10中设置preferredContentSize.height直接无法正常工作
在iOS 10之后,有两种类型可以显示今天的扩展名
案例1显示更多(扩展类型,可以设置自定义高度)
案例2显示更少(紧凑型,默认为hegiht)
所以你应该为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
}
}