2017-08-04 70 views
2

我有一個視圖控制器,它具有滾動視圖,滾動視圖有一個視圖。所以,view有很多按鈕和標籤,這些都是根據來自api的數據顯示的。我按了一個按鈕後,我想重新加載一個視圖(它的內容)。如何重新載入ui視圖的內容Swift

回答

1

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

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

0

最好的和適當的方式是定義一個方法這將佈局每個按鈕,告訴它是否應該隱藏或顯示和更新其框架。

最簡單的,但很醜的方法是使用:

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