如何重新加载 ui 视图的内容 Swift

Jac*_*ack 6 view reload swift

我有一个视图控制器,里面有滚动视图,滚动视图有一个视图。因此,视图有很多按钮和标签,这些按钮和标签根据来自 api 的数据显示。按下按钮后我有一个按钮,我想重新加载视图(它的内容)。

sar*_*rza 7

一种简单的 hack 而不是推荐的方法是这样做

self.view.setNeedsLayout()
Run Code Online (Sandbox Code Playgroud)

你也可以做self.viewDidLoad()self.viewWillAppear(true)

您可以使用的不同推荐方法如下

委托 KVO 通知

另一种方法是使用 tableView 和用户 reloadData()

委托:https : //www.andrewcbancroft.com/2015/04/08/how-delegation-works-a-swift-developer-guide

KVO:https ://cocoacasts.com/key-value-observing-kvo-and-swift-3/

通知:http : //dev.iachieved.it/iachievedit/notifications-and-userinfo-with-swift-3-0/


Max*_*ime 5

最好和正确的方法是定义一个方法来布局每个按钮,告诉它是否应该隐藏或显示并更新其框架。

最简单但丑陋的方法是使用:

self.viewToReload.setNeedsLayout()
self.viewToReload.layoutIfNeeded()
Run Code Online (Sandbox Code Playgroud)