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

请用你的身高为您的应用程序。希望能解决你的问题。