Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 今天小部件tableView冻结了_Ios_Swift_Widget_Tableview_Today Extension - Fatal编程技术网

Ios 今天小部件tableView冻结了

Ios 今天小部件tableView冻结了,ios,swift,widget,tableview,today-extension,Ios,Swift,Widget,Tableview,Today Extension,我有一个today小部件,它包含两个内容: Aui标签 AUITableView 在我的视图中将出现中,我将标签设置为可见,将我的tableView设置为隐藏,并将标签文本设置为“加载”。见下图 然后我得到一个位置,当这完成后,我调用另一个方法 如果找不到任何数据,我只需将标签文本更新为“未找到数据” 否则,我将标签设置为隐藏,将tableView设置为可见,然后开始更新数据 成功完成后,我有一个如下所示的tableView: 现在开始我的问题。当我打开我的“今日”小部件并点击视图时,我并不

我有一个today小部件,它包含两个内容:

  • A
    ui标签
  • A
    UITableView
  • 在我的
    视图中将出现
    中,我将标签设置为可见,将我的tableView设置为隐藏,并将标签文本设置为“加载”。见下图

    然后我得到一个位置,当这完成后,我调用另一个方法

  • 如果找不到任何数据,我只需将标签文本更新为“未找到数据”
  • 否则,我将标签设置为隐藏,将tableView设置为可见,然后开始更新数据
  • 成功完成后,我有一个如下所示的tableView:

    现在开始我的问题。
    当我打开我的“今日”小部件并点击
    视图时,我并不总是能够设置标签,我得到的唯一结果就是这个

    因此,我只能在tableView中显示我以前的一部分结果

    这种情况偶尔会发生,似乎tableView冻结了,我无法更新初始视图,而是隐藏tableView并显示标签。即使当屏幕像这样冻结时,一切都正常运行,我设法更新了tableView和view

    唯一的问题是当我打开小部件时,屏幕冻结如下:

    有时候,我没有展示我的标签。它之所以如此大小,是因为我设置了
    preferredContentSize=CGSizeMake(0,30)
    。否则,我打赌它将显示整个上一个tableView

    有没有办法解决这个问题,当我点击
    视图时总是更新视图会出现

    更新

    开始另一个悬赏,看看是否有其他关于这个问题的信息。

    系统所做的是拍摄快照。我也一直在努力解决这个问题,我检查了post,但它没有解决我的问题

    对于
    widgetPerformUpdateWithCompletionHandler
    有三个选项

  • NCUpdateResultNewData
    -新内容要求您重新绘制视图
  • ncupdateResultNodeData
    -小部件不需要更新
  • NCUpdateResultFailed
    -更新过程中发生错误
  • 不管哪一个被称为,结果总是一样的并且系统会拍摄快照。

    为了帮助您的小部件查找最新信息,系统偶尔会捕获 小部件视图的快照。当小部件变得可见时 再次显示最新的快照,直到系统替换 它使用了视图的实时版本

    要在拍摄快照之前更新小部件的状态,请确保 遵守NCWidgetProvising协议。当您的小部件收到 widgetPerformUpdateWithCompletionHandler:调用,更新 窗口小部件的视图,包含最新的内容,并调用完成 处理程序,使用以下常量之一来描述结果 最新情况


    我认为我们可能正在尝试加载“重”数据,这可能就是原因。这是我的答案,但我开始悬赏,以检查是否有其他人有其他答案,或者您是否同意我的帖子。

    您可以将您的操作放入
    viewdidload()
    ,因为当您进入小部件时,
    viewdidload()
    将被调用。

    您可以添加一些代码吗,例如,您是否发出网络请求,然后解析结果?如果是,是否
    reload()
    表视图?并隐藏标签。如果您添加了一些实现,也许我可以帮助您,请向我们展示代码,否则无法提供帮助!您是否已经遵守了
    ncwidget提供
    协议并实施了
    widgetmargininsetsforProposedMargines: