动态调整今天的小部件

时间:2015-08-12 12:03:54

标签: ios swift xcode6.3 today-extension

我在今天的小部件中实现了一个表视图。 tableView没有固定数量的单元格。因此,小部件的高度必须动态变化。有人知道如何找出tableView的高度吗?如果我知道tableView的高度,我可以使用相同的高度来处理今天的小部件。或者有更好的解决方案吗?

我的代码:

var preferredViewHeight:CGFloat{return 132}

override func viewWillAppear(animated: Bool) {

  super.viewWillAppear(animated)
  self.tableView.reloadData()
  updateSize()
}

func updateSize() {

  var preferredSize = self.preferredContentSize
  preferredSize.height = self.preferredViewHeight
  self.preferredContentSize = preferredSize
}

func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) {

  self.tableView.reloadData()
  completionHandler(NCUpdateResult.NewData)
}

1 个答案:

答案 0 :(得分:0)

如上所述,您可以将其实现为:

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
    switch activeDisplayMode {
    case .compact:
        preferredContentSize = CGSize(width: maxSize.width, height: 300)
    case .expanded:
        preferredContentSize = tableView.contentSize
    }
}