在 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 子视图