7

我正在尝试解决我今天的小部件的问题。按下“显示更多”按钮后,它不会在 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
        }
    }
}

请问有什么提示吗?

4

1 回答 1

12

假设您使用 Swift 3(或更高版本)进行编码,请注意

widgetActiveDisplayModeDidChange方法签名是:

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

您还可以在当前方法中添加断点并检查它是否可访问。

于 2017-01-25T17:57:28.603 回答