横向模式下的小部件问题

Issue in Widgets in landscape mode

我对小部件有这个恼人的问题,它会在横向模式下修剪我的视图内容。我已经静态地放置了内容大小,但它不起作用。 Apple 是否限制小部件在横向上具有特定高度? Apple 的界面指南说不推荐,但可行吗?

编辑:

iOS 上的今日小部件有高度限制。最大高度为(屏幕尺寸)-(通知中心UI高度)。通知中心绘制其 UI 后剩下的任何东西都留给小部件。横向和纵向会有所不同。

不幸的是,这个限制没有记录在案,也没有任何方法可以在 运行 时查找它。如果你要求更大的尺寸,你会得到比你要求的少的东西,但没有办法询问限制是多少。 [如果 Apple 的任何人读到这篇文章,请参阅 rdar://18408718,"Today extensions have undocumented, hard to discover size limits"]

在某些情况下,通知中心似乎会施加较低的高度限制。这对我来说像是一个错误,但目前没有办法解决它。

With Swift 3 & IOS10 : 将此方法添加到您的小部件控制器,您将获得 maxsize

@available(iOSApplicationExtension 10.0, *)
    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize){
        if (activeDisplayMode == NCWidgetDisplayMode.compact) {
            self.preferredContentSize = maxSize;
            // hide or show what you want
            messageLabel.isHidden = false
            textLabel.isHidden = true
        }
        else {

            self.preferredContentSize = CGSize(width: 0, height: (maxSize.height - 100) // personnaly I remove 100 to make it easier fo the user to see all the widget

            messageLabel.isHidden = true
            textLabel.isHidden = false
        }
}