动态调整窗口小部件的今天

问题描述 投票:4回答:2

我实现了一个表视图到我今天部件。所述的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)
}
ios swift xcode6.3 today-extension
2个回答
4
投票

可以实现通过使用tableView.contentSize这会告诉你的表格内容的总大小。


0
投票

如上回答,你会实现它:

func widgetActiveDisplayModeDidChange(_ activeDisplayMode: NCWidgetDisplayMode, withMaximumSize maxSize: CGSize) {
    switch activeDisplayMode {
    case .compact:
        preferredContentSize = CGSize(width: maxSize.width, height: 300)
    case .expanded:
        preferredContentSize = tableView.contentSize
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.