Objective c 如何更改iOS扩展的高度?

Objective c 如何更改iOS扩展的高度?,objective-c,swift,ios10,ios-extensions,Objective C,Swift,Ios10,Ios Extensions,如何在紧凑模式下更改iOS 10扩展的高度?或者更广泛地说,如何在不使用WidgetActiveDisplayModedChange的情况下更改扩展的高度?我这样使用,也许这会帮助解决您的问题: override func viewDidLoad() { super.viewDidLoad() self.preferredContentSize = CGSize(width:self.view.frame.size.width, height:210)

如何在紧凑模式下更改iOS 10扩展的高度?或者更广泛地说,如何在不使用
WidgetActiveDisplayModedChange
的情况下更改扩展的高度?

我这样使用,也许这会帮助解决您的问题:

override func viewDidLoad() {
        super.viewDidLoad()

        self.preferredContentSize = CGSize(width:self.view.frame.size.width, height:210)

        if #available(iOSApplicationExtension 10.0, *) {
            self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
        }
    }
高度如我所愿,你可以使用任何高度当然

更新:

如果要使用固定大小,可以使用NCWidgetDisplayMode的第二个选项“压缩”:

您可以按如下方式更新代码:

if #available(iOSApplicationExtension 10.0, *) {
    self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}

这是可行的,但我想在不使用showmore的情况下更改小部件的高度/showless@NohaMohamed请检查我的最新答案。希望它能帮上忙。它工作顺利,谢谢。我可以隐藏showmore按钮并更改高度吗?您可以使用widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode和MaximumSize:(CGSize)maxSize来更改高度,因为compact将为您的扩展设置默认(非常小)大小。为了清晰和易于阅读,请重新编写。
if #available(iOSApplicationExtension 10.0, *) {
    self.extensionContext?.widgetLargestAvailableDisplayMode = .compact
}