2016-11-17 93 views
14

無法爲小型模式設置今日小工具查看模式的高度。不管我設定的任何價值。它將小部件的高度設置爲默認值。擴展模式工作正常,值已正確設置並反映在小部件中。 我已經在viewDidLoad()方法中添加了這一行。今日小工具擴展高度 - iOS10

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 

這是代碼。 maxSize的值不能作爲常數改變。

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { 

     //self.preferredContentSize = (activeDisplayMode == .compact) ? maxSize : CGSize(width: maxSize.width, height: 300) 

     if activeDisplayMode == NCWidgetDisplayMode.compact 
     { 
      self.preferredContentSize = CGSize(width: maxSize.width, height: 300) 
     } 
     else 
     { 
      self.preferredContentSize = CGSize(width: maxSize.width, height: 560) 
     } 
} 
+0

在緊湊模式下110是窗口小部件的最小高度。 –

+0

@ConstantinSaulenco謝謝 - 但我該如何改變這個值。 –

+1

在緊湊模式下無法更改該值 –

回答

15

緊湊模式下,iOS 10中控件的高度恰好爲110。它可以設置爲擴展模式下所需的任何高度,但在緊湊模式下,它始終爲110,並且不能被覆蓋。

+6

iOS 10+中的窗口小部件的高度根據系統文本大小而變化。 110是具有默認/中等文本大小的高度,但如果您在「設置」應用程序中減少或增加系統文本大小,它可以小於或大於110。 –

+1

這個答案並不包括所有的州實際。它應該合併@GregG評論:) – ridvankucuk

11

嘗試在viewDidLoad方法中設置self.preferredContentSize。下面是完整的代碼:

斯威夫特3

override func viewDidLoad() { 

    super.viewDidLoad() 

    self.preferredContentSize = CGSize(width:self.view.frame.size.width, height:210) 

    if #available(iOSApplicationExtension 10.0, *) { 
     self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 
    } 
} 


@available(iOS 10.0, *) 
    @available(iOSApplicationExtension 10.0, *) 
    func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) { 
     if activeDisplayMode == .expanded { 
      self.preferredContentSize = CGSize(width: self.view.frame.size.width, height: CGFloat(3)*self.tableView.rowHeight) 
     }else if activeDisplayMode == .compact{ 
      self.preferredContentSize = CGSize(width: maxSize.width, height: 110) 
     } 
    } 

請用你的身高爲您的應用程序。希望能解決你的問題。