2016-10-23 2 views
-1

Я знаю, что этот вопрос задан раньше, но никто из них не может решить мою проблему.NCWidgetDisplayMode не установлен в .expanded в iOS 10

Я хочу, чтобы высота сегодняшнего расширения была переменной.

Для этого я включил ниже код, как предложено в соответствующих должностях:

override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     if #available(iOSApplicationExtension 10.0, *) 
     { 
      self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 
     } 
     else 
     { 
      // Fallback on earlier versions 
     } 
    } 

@available(iOSApplicationExtension 10.0, *) 
    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) 
    { 
     if activeDisplayMode == .expanded 
     { 
      preferredContentSize = CGSize(width: 0.0, height: 200.0) 
     } 
     else 
     { 
      preferredContentSize = maxSize 
     } 
    } 

Проблема я столкнулся, даже после установки widgetLargestAvailableDisplayMode в .expanded в viewDidLoad, когда метод протокола widgetActiveDisplayModeDidChange называется, его все еще дает мне activeDisplayMode как .compact.

Что еще нужно сделать, чтобы виджет работал прямо в iOS 10?

ответ

0

Я понял.

На самом деле, когда виджет загружается в первый раз, он по умолчанию в режиме compact и так widgetActiveDisplayModeDidChange вызывается с activeDisplayMode как .compact.

После загрузки

  1. Когда Показать больше нажата кнопка, widgetActiveDisplayModeDidChange вызывается с activeDisplayMode как .expanded.

  2. Когда Show Less кнопка нажата, widgetActiveDisplayModeDidChange вызывается с activeDisplayMode как .compact.

Смежные вопросы