Сегодня виджет в iOS 10 не расширяется

Я пытаюсь решить проблему с моим сегодняшним виджетом. Это не расширяется на 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
        }
    }
}

Любые намеки, пожалуйста?

1 ответ

Решение

Предполагая, что вы кодируете с помощью 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
    }
}

Чтобы дважды проверить, что это проблема, вы можете добавить точку останова к вашему текущему методу и проверить, достижима ли она или нет.

Другие вопросы по тегам