Bee*_*eam 2 sizing ios swift today-extension ios10
晚上好!
通过了解今天的扩展我有很大的问题.我已经阅读了很多教程和介绍,但没有任何帮助我理解这个问题.在iOS 9上,扩展工作正常 - 在iOS 10上没有.
我的主要问题是iOS 10中小部件的自动调整大小(?).在iOS 9上,小部件以纵向和横向完美显示我的桌面视图 - iOS 10崩溃了该组织并打破了视图.关于StackOverflow的问题只有这样的答案:https://stackoverflow.com/a/38009125
但我不会显示"更多"/"更少"的按钮.我的扩展程序应该只在特定的高度显示我的tableView,而不是更多,而不是更少.
我用来测试的今天扩展(如果它有效,我将用表视图构建一个类似的扩展)是:https://github.com/maximbilan/iOS-Today-Extension-Simple-Tutorial(这不是我的代码 - 我很高兴出版商的工作!)
以下是问题的两张图片(1. iOS 9,2.iOS 10):
我不明白是什么问题.我设置了高度,self.preferredContentSize.height = 200但iOS 10不使用像iOS 9那样的高度.上面的StackOverflow答案不是解决方案,因为我不会更多/更少的按钮.虽然我使用了更多/更少按钮的代码,但紧凑的大小中存在问题:
// ViewDidLoad
if #available(iOSApplicationExtension 10.0, *) {
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
} else {
self.preferredContentSize.height = 200
}
// method in File
@available(iOSApplicationExtension 10.0, *)
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if (activeDisplayMode == NCWidgetDisplayMode.compact) {
self.preferredContentSize = maxSize
}
else {
self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
}
}
Run Code Online (Sandbox Code Playgroud)
正如我上面所说 - 这个代码仅在按下窗口小部件时显示"显示更多"...如果未按下按钮且窗口小部件尺寸紧凑,它看起来就像上面的图像.
我希望任何人都可以帮助我,因为这是我很长一段时间的问题,而且我找不到关于iOS 10上今天小部件的足够资料.
谢谢!
是的我有同样的问题.我用widgetActiveDisplayModeDidChange解决了它,我在viewDidLoad Swift 3中调用它
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
self.preferredContentSize = (activeDisplayMode == .expanded) ? CGSize(width: 500, height: 230) : CGSize(width: maxSize.width, height: 110)
}
override func viewDidLoad() {
super.viewDidLoad()
self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
widgetActiveDisplayModeDidChange(.compact, withMaximumSize: CGSize(width: 500, height: 230))
}
Run Code Online (Sandbox Code Playgroud)