在横向模式下的小部件中出现问题

时间:2015-02-04 06:38:53

标签: ios swift ios8 ios8-today-widget today-extension

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

编辑: enter image description here

2 个答案:

答案 0 :(得分:1)

iOS上的今日小部件有一个高度限制。最大高度为(屏幕尺寸) - (通知中心UI高度)。在通知中心绘制其UI之后剩下的任何内容都留给了小部件。这在风景上会比在肖像方面有所不同。

不幸的是,没有记录此限制,也没有任何方法可以在运行时查找它。如果您要求更大的尺寸,您将获得比您要求的更少的东西,但是没有办法询问限制是多少。 [如果有人从Apple那里读到这个,请参阅rdar:// 18408718,"今天的扩展程序没有记录,很难发现大小限制" ]

在某些情况下,通知中心似乎强加了较低的身高限制。对我来说这看起来像个错误,但现在还没有办法解决它。

答案 1 :(得分:0)

使用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
        }
}