2016-11-17 16 views
14

Wysokość trybu widoku widżetu w dniu dzisiejszym nie może być ustawiona na tryb kompaktowy. Bez względu na to, jaką ustawię wartość. Ustawia wysokość widgetu na wartość domyślną. Tryb rozwinięty działa idealnie, a wartość jest odpowiednio ustawiona i odzwierciedlona w widgecie. Dodałem już tę linię do mojej metody viewDidLoad().Wysokość powiększenia widżetu dzisiaj - iOS10

self.extensionContext?.widgetLargestAvailableDisplayMode = .expanded 

Oto kod. Wartości maxSize nie można również zmienić jako stałej.

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

w trybie kompaktowym 110 to minimalna wysokość widgetów. –

+0

@ConstantinSaulenco Dzięki - ale jak mogę zmienić tę wartość. –

+1

w trybie kompaktowym nie ma możliwości zmiany tej wartości –

Odpowiedz

15

Wysokość widgetu w systemie iOS 10 wynosi dokładnie 110 w trybie kompaktowym. Można go ustawić na dowolną wysokość w trybie rozszerzonym, ale w trybie kompaktowym zawsze będzie to 110, którego nie można nadpisać.

+6

Wysokość widgetu w systemie iOS 10+ jest zmienna w zależności od rozmiaru tekstu systemowego. 110 to wysokość z domyślnym/średnim rozmiarem tekstu, ale może być mniejsza lub większa niż 110, jeśli zmniejszysz lub zwiększysz rozmiar tekstu systemowego w aplikacji Ustawienia. –

+1

Ta odpowiedź nie obejmuje wszystkich stanów. Powinien zostać połączony z komentarzem @GregG :) – ridvankucuk

11

Spróbuj ustawić self.preferredContentSize przy metodzie viewDidLoad. Oto pełny kod:

Swift 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) 
     } 
    } 

proszę użyć wysokość dla danej aplikacji. Hope naprawi twój problem.

Powiązane problemy