iOS 10 中的今天小部件未展开
Today widget in iOS 10 is not expanding
我正在尝试解决我今天的小部件的问题。按 "Show more" 按钮后,它不会在 iOS10 上展开。它的大小始终保持不变。
这是 TodayViewController.swift
的代码
import UIKit
import NotificationCenter
class TodayViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
extensionContext?.widgetLargestAvailableDisplayMode = .expanded
}
}
extension TodayViewController: NCWidgetProviding {
func widgetActiveDisplayModeDidChange(activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
preferredContentSize = CGSize(width: 0, height: 280)
} else {
preferredContentSize = maxSize
}
}
}
有什么提示吗?
假设您使用 Swift 3(或更高版本)进行编码,请注意
widgetActiveDisplayModeDidChange
方法签名是:
optional func widgetActiveDisplayModeDidChange(_ activeDisplayMode:
NCWidgetDisplayMode,
withMaximumSize maxSize: CGSize)
所以,应该是:
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
preferredContentSize = CGSize(width: 0, height: 280)
} else {
preferredContentSize = maxSize
}
}
您也可以在当前方法中添加一个断点,并检查它是否可以到达。
我正在尝试解决我今天的小部件的问题。按 "Show more" 按钮后,它不会在 iOS10 上展开。它的大小始终保持不变。
这是 TodayViewController.swift
import UIKit
import NotificationCenter
class TodayViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
extensionContext?.widgetLargestAvailableDisplayMode = .expanded
}
}
extension TodayViewController: NCWidgetProviding {
func widgetActiveDisplayModeDidChange(activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
preferredContentSize = CGSize(width: 0, height: 280)
} else {
preferredContentSize = maxSize
}
}
}
有什么提示吗?
假设您使用 Swift 3(或更高版本)进行编码,请注意
widgetActiveDisplayModeDidChange
方法签名是:
optional func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize)
所以,应该是:
func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
if activeDisplayMode == .expanded {
preferredContentSize = CGSize(width: 0, height: 280)
} else {
preferredContentSize = maxSize
}
}
您也可以在当前方法中添加一个断点,并检查它是否可以到达。