【问题标题】:How to reload a ui view's content Swift如何重新加载 ui 视图的内容 Swift
【发布时间】:2018-01-12 11:26:31
【问题描述】:

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

【问题讨论】:

    标签: swift view reload


    【解决方案1】:

    一种简单的技巧,推荐的方法是这样做

    self.view.setNeedsLayout()
    

    你也可以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/

    【讨论】:

    • self.view.setNeedsLayout() 添加到viewDidLoad()viewWillAppear() 并没有使我的屏幕刷新。如果这有什么不同,我会从模态返回 UIView。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      相关资源
      最近更新 更多