今天小部件扩展高度-iOS10
当前小部件视图模式的高度不能设置为紧凑模式。不管我设定了什么值。它将小部件的高度设置为默认值。扩展模式工作正常,值被正确设置并反映在小部件中。 我已经在viewDidLoad()方法中添加了这一行 这是代码。maxSize的值不能更改,因为它是一个常量今天小部件扩展高度-iOS10,ios,swift,today-extension,ios10-today-widget,Ios,Swift,Today Extension,Ios10 Today Widget,当前小部件视图模式的高度不能设置为紧凑模式。不管我设定了什么值。它将小部件的高度设置为默认值。扩展模式工作正常,值被正确设置并反映在小部件中。 我已经在viewDidLoad()方法中添加了这一行 这是代码。maxSize的值不能更改,因为它是一个常量 func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
//self.preferredContentSize = (activeDisplayMode == .compact) ? maxSize : CGSize(width: maxSize.width, height: 300)
if activeDisplayMode == NCWidgetDisplayMode.compact
{
self.preferredContentSize = CGSize(width: maxSize.width, height: 300)
}
else
{
self.preferredContentSize = CGSize(width: maxSize.width, height: 560)
}
}
解决方案是在viewDidLoad方法中设置preferredContentSize
self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded
以下是一个例子:
Swift 3及更高版本
警告
你应该使用你的具体高度为你的案件110在我的场景中有效
希望这能解决你的问题
最佳iOS 10中的小部件在紧凑模式下的高度正好是110。在扩展模式下,它可以设置为您想要的任何高度,但在紧凑模式下,它将始终为110,并且不能被覆盖。要获得窗口小部件活动显示模式的最大高度,请在UIViewController中执行此操作
let context = self.extensionContext
if let context = context{
let height = context.widgetMaximumSize(for: context.widgetActiveDisplayMode).height
}
要在不考虑当前显示模式的情况下分别获取展开和压缩的最大高度,请执行以下操作:
var context = self.extensionContext
if let context = context{
let compactHeight = context.widgetMaximumSize(for: .compact).height
let expandedHeight = context.widgetMaximumSize(for: .expanded).height
}
在紧凑模式下,110是小部件的最小高度。@ConstantinSaulenco,谢谢-但我如何更改该值。在紧凑模式下,无法更改该值iOS 10+中小部件的高度根据系统文本大小而变化。110是默认/中等文本大小的高度,但如果在“设置”应用程序中减小或增大系统文本大小,则可以小于或大于110。此答案实际上并不涵盖所有状态。它应该与@GregG comment:)合并。我不会继续使用这个方法,请看我的答案
var context = self.extensionContext
if let context = context{
let compactHeight = context.widgetMaximumSize(for: .compact).height
let expandedHeight = context.widgetMaximumSize(for: .expanded).height
}