2016-11-17 10 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) 
     } 
    } 

スウィフトアプリケーションのためのあなたの高さを使用してください:ここでは完全なコードです。希望はあなたの問題を解決します。

関連する問題