通知扩展的宽高比可以通过扩展的 Info.plist
文件中的属性 UNNotificationExtensionInitialContentSizeRatio
定义。但是在加载相应的 UIViewController
之后,这个值可以以某种方式改变吗?
documentation在 Apple 的网站上表明确实有可能:
You can change the size of your view controller after your extension loads.
但是怎么办?我试过更改扩展程序的主要 UIView
框架,就像这样......
func didReceive(_ notification: UNNotification) {
self.view.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.width, height: 100.0)
self.view.setNeedsUpdateConstraints()
self.view.setNeedsLayout()
}
...但只有 View 的框架被正确更新,整个通知容器底部留有空白区域。
我还尝试了一些不太明显的解决方案,包括在 Controller 生命周期的不同点更改框架以及直接设置 UIWindow
的框架。到目前为止都没有成功。
是否可以通过编程更改高度?
提前感谢您的回答。
最佳答案
您可以使用 UIViewController 的 preferredContentSize
属性覆盖大小。
关于ios - 以编程方式定义通知内容扩展的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47329275/