2017-03-16 76 views
2

我在寫一個Today Extension,它在我的iOS 9設備上正常工作。iOS 10今天擴展不進入擴展模式,保持緊湊

在iOS 10上,我讀過無數帖子,說我們需要爲擴展設置擴展模式,以便比110高度擴展更多,但是當我按照所有方法解決此問題時,保持緊湊模式。

這是我使用的是什麼

@available(iOS 10.0, *) 
    @available(iOSApplicationExtension 10.0, *) 
    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { 
     if activeDisplayMode == .expanded { 
      self.preferredContentSize = CGSize(width: maxSize.width, height: 400) 
     } else if activeDisplayMode == .compact { 
      self.preferredContentSize = CGSize(width: maxSize.width, height: 110) 
     } 
    } 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     if #available(iOS 10.0, *) { 
      self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded 
     } 
    } 

我設置擴大了值,然後它進入的協議,而在那裏,它進入了緊湊else語句,而不是擴大。

我試着在viewDidAppear以及viewWillAppear中設置模式。

在我的代碼無處我我設置preferedContentSize

有一打的答案在那裏說,這應該工作,對我的生活我想不出我做了什麼錯?

還有什麼我需要做的?

這是這一個公認的答案的一個例子 - Today Extension: How to work with display mode?

更新:我剛纔看到「顯示詳細信息」按鈕......也許我誤解的東西,是有可能有這個開始擴大呢?我是否被迫按下「顯示更多」按鈕?這可能解釋爲什麼它不起作用?

回答

2

當您執行widgetActiveDisplayModeDidChange時,您正在做的是允許用戶展開窗口小部件。 「顯示更多」文本顯示在右上角,用戶可以點擊此按鈕切換到展開模式。 Apple的Weather應用程序小部件是一個標準示例。

+0

呃。現在我回過頭來看看其他一些答案,看起來就是這樣。感謝您幫助確認這一點。 – Ben987654