微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在iOS中重新加载UiView?

如何解决如何在iOS中重新加载UiView?

我想重新加载UiView中存在的数据。 我经常使用此代码重新加载tableview中存在的数据:

tableview.reloadData

有什么方法可以像tableView一样在uiView中重新加载数据吗?

解决方法

这取决于。可能显示大量数据(例如a = np.array([[1,3],[2,5],[1,2],1],6]]) b = np.array([[3,2]]) check = any(x in b for x in a) UITableView)的典型“复杂”视图使用数据源协议,该协议允许它们按需获取数据。在这种情况下,您需要通知视图新的/修改的数据可用,因此调用UIPickerView。然后,视图将要求数据源提供要显示的数据。

原始视图(例如reloadData)仅提供您需要设置/更新的属性(例如UILabel),然后视图将重新显示数据。

,

您需要添加{tracking_code}来重新加载视图调用layoutIfNeeded

setNeedsLayout
,

我想在这里介绍View Drawing Cycle

UIView类使用on-demand drawing model来呈现内容。当视图first出现在屏幕上时,系统要求它显示draw its content。系统captures a snapshot of this content并使用该快照作为视图的视觉表示。如果您从不更改视图的内容,则可能永远不会再次调用视图的绘图代码。对于涉及视图的大多数操作,快照图像为reused。如果确实更改了内容,则notify invalidate the view视图已更改的系统。然后,该视图重复绘制视图并捕获新结果的快照的过程。

当视图的内容更改时,您不会直接重绘这些更改。相反,您使用setNeedsDisplaysetNeedsDisplayInRect:方法setNeedsDisplay()。这些方法告诉系统视图的内容已更改,需要在下一个机会重新绘制。在启动任何绘图操作之前,系统将一直等到当前运行循环结束。此延迟使您有机会一次使多个视图无效,从层次结构中添加或删除视图,隐藏视图,调整视图大小以及重新放置视图。然后,您所做的所有更改都会同时反映出来。

如果为视图更改了这些properties,则不必触发setNeedsDisplay(_:)setNeedsDisplay()。如果确实要在某些情况下这样做,可以始终通过调用setNeedsDisplay(_:)或{{1}}方法来强制重画视图的内容。

,

您可以尝试:

self.tableView.reloadData() 要么 tableView?.reloadData()

,

我认为您正在从服务器获取JSON数据,这是一个异步任务,并且您正在服务器响应之前就在标签中设置了数据,这看起来好像标签中没有填充数据。服务器响应您后,使用escaping closure更新标签中的数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。