Today Extension: How to work with display mode?

前端 未结 2 1893
甜味超标
甜味超标 2020-12-16 19:52

Widgets now include the concept of display mode (represented by NCWidgetDisplayMode), which lets you describe how much content is available and allows users t

2条回答
  •  萌比男神i
    2020-12-16 20:19

    Ok, i found right solution here.

    1) Set the display mode to NCWidgetDisplayMode.expanded first in viewDidLoad:

    override func viewDidLoad() {
        super.viewDidLoad()
        self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded
    }
    

    2) Implement new protocol method:

    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
        if (activeDisplayMode == NCWidgetDisplayMode.compact) {
            self.preferredContentSize = maxSize
        }
        else {
            //expanded
            self.preferredContentSize = CGSize(width: maxSize.width, height: 200)
        }
    }
    

    And it will work as official apps.

    Image

提交回复
热议问题