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
    }
}

您也可以在当前方法中添加一个断点,并检查它是否可以到达。