我为我的应用开发了Today Extension。当安装并点击“显示更多”按钮时,小部件不会展开(但按钮从“显示更多”变为“显示较少”。再次单击时,“显示更少”变为“显示更多”。窗口小部件尺寸不会更改,因为它之前没有扩展。在第一次尝试扩展和收缩窗口小部件之后,“显示更多”按钮可以正常工作。
我正在使用一个名为“列表”的快速数组,并在扩展模式下将窗口小部件的高度计算为list.count * 60
,因为我希望窗口小部件进行扩展,并在其表视图中准确地将许多行显示为列表中的项目数。 >
我调试后发现preferredContentSize = CGSize(width: maxSize.width, height: list.count * 60)
的值为CGSize(width: 359, height: 240)
(列表中只有4个项目,因此4*60 = 240
)。
[当我尝试使用下面的代码片段时,“显示更多”按钮也第一次很好用。
if activeDisplayMode == .expanded { preferredContentSize = maxSize } else { preferredContentSize = maxSize }
但是在小部件的表视图中还有其他不需要的空行。
这是负责在我的项目中更改小部件的模式的整个功能
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { if activeDisplayMode == .expanded { preferredContentSize = CGSize(width: maxSize.width, height: list.count * 60) } else { preferredContentSize = maxSize } }
预期的行为是:
第一次单击“显示更多”时,小部件应展开,并在其表视图中准确显示许多行作为列表中的项目数。
我为我的应用开发了Today Extension。当安装并点击“显示更多”按钮时,小部件不会展开(但按钮从“显示更多”变为“显示更少”。再次点击时,...