我有一个包含两个东西的今日小组件:
- 一个
UILabel
- 一个
UITableView
在我的viewWillAppear
中,我将标签设置为可见,将tableView设置为隐藏,并将标签文本设置为“Loading”。如下图所示:
然后我获取位置,当此操作完成时,我调用另一个方法并执行以下操作:
- 如果我没有找到任何数据,我只更新标签文本为“未找到数据”
- 否则,我将标签设置为隐藏,将tableView设置为可见,并开始更新数据
当这成功完成后,我有一个长这样的tableView:
.
现在出现了问题。
当我打开我的今日小组件并点击viewWillAppear
时,我不总是能够设置我的标签,唯一的结果就是它看起来像这样:
.
因此发生的情况是,我只能在tableView中显示先前结果的一点内容。
这种情况偶尔会发生,而且似乎tableView会冻结,我无法更新初始视图,以隐藏tableView并显示标签。即使屏幕像这样冻结,一切都运行正常,我也能够更新tableView和视图。
唯一的问题是当我打开小组件时,它有时会像这样冻结:
而不是显示我的标签。之所以大小为此,是因为我设置了preferredContentSize = CGSizeMake(0, 30)
。否则,我想它将会显示整个先前的tableView。
有什么方法可以解决这个问题,以便每次点击viewWillAppear
时总是更新视图呢?
更新
开始另一轮悬赏以获取有关此问题的其他意见。
reload()
函数来刷新表格视图吗?并且隐藏标签。如果你添加了一些实现,也许我可以帮助你。 - DeVladinciNCWidgetProviding
协议并实现了widgetMarginInsetsForProposedMarginInsets:
方法? - Ftoledo