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

问题描述:

我有一个视图控制器,它具有滚动视图,滚动视图有一个视图。所以,view有很多按钮和标签,这些都是根据来自api的数据显示的。我按了一个按钮后,我想重新加载一个视图(它的内容)。如何重新载入ui视图的内容Swift

容易黑客之一,推荐的方法是做

self.view.setNeedsLayout() 

,你也可以做self.viewDidLoad() OR 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/

+0

添加'self.view.setNeedsLayout()'要么'viewDidLoad中()'或'viewWillAppear中()'没有让我的屏幕刷新。如果这有什么不同,我会从模态中回到UIView。 – Dan

最好的和适当的方式是定义一个方法这将布局每个按钮,告诉它是否应该隐藏或显示和更新其框架。

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

self.viewToReload.setNeedsLayout() 
self.viewToReload.layoutIfNeeded()