在 Swift 中重新加载子视图

Posted

技术标签:

【中文标题】在 Swift 中重新加载子视图【英文标题】:Reloading SubViews in Swift 【发布时间】:2019-03-09 11:48:39 【问题描述】:

我正在开发一个 ios 应用程序并使用带有两个子视图的父页面,如下所示:

    var v1: assetType1VC = assetType1VC(nibName: "assetType1VC", bundle: nil)
    var v2: cityChart1VC = cityChart1VC(nibName: "cityChart1VC", bundle: nil)



    self.addChild(v1)
    self.addChild(v2)

    self.scrollView.addSubview(v1.view)
    self.scrollView.addSubview(v2.view)


    v1.didMove(toParent: self)
    v2.didMove(toParent: self)

    var v2Frame: CGRect = v2.view.frame
    v2Frame.origin.x = self.view.frame.width
    v2.view.frame = v2Frame

    self.scrollView.contentSize = CGSize(width: self.view.frame.width * 2 , height: 1)

但是,我的问题是所有两个子视图都是同时加载的。

我想要实现的是:我想在 v2 出现时重新加载它。 我使用过 viewWillAppear、viewDidAppear 但两者都不适用于我

【问题讨论】:

【参考方案1】:

重新加载UIView 的最简单但丑陋的方法是使用:

self.v2.setNeedsLayout()
self.v2.layoutIfNeeded()

【讨论】:

以上是关于在 Swift 中重新加载子视图的主要内容,如果未能解决你的问题,请参考以下文章

UIViewcontroller 不加载子视图(swift 3)

用动画重新加载子视图

如何获取 UINavigationController 子视图

在 IPython 中重新加载子模块

VUE+Element首次打开Dialog加载子组件数据未渲染(不显示)

在 Swift 中重新加载/更新视图