我的情况是,现在我的应用程序使用12个ViewController。 每个容器都有两个ContainerView,它们具有相同的控件集(我称它们为控件组),并通过segue显示它们。 到目前为止,这仍然有效,我必须为相同的两个ContainerViews布局和设置约束12次-每个VC一次。而且,如果我添加另一个VC,则必须再次对其进行布局,依此类推。如果更改布局的任何部分,则必须一次又一次地修改全部12个-这不是真正可扩展的。
在我看来,如果两个控制组位于一个还包含ContainerView的VC上,会更容易。然后,如果ContainerView可以在这十二个视图之间切换,则维护起来会容易得多。
例如类似这样的模型:
此模型显示了同一VC上的两个控制容器“ Upper”和“ Lower”。在两者之间的是ContainerView,该容器将显示所需的VC。
当然,ContainerViews只能嵌入一个VC,所以我看到的最接近的解决方案是将12个ContainerView彼此叠置-看起来还是很混乱。
我并不一定需要使用ContainerView-但是,有一些不错的功能,例如,限制VC的大小并使其遵循其尺寸,这使内容的布局更加容易。
如何获得这种结构和行为? (注意:我也希望能够使用情节提要)
答案 0 :(得分:0)
我正在从事的项目中:
向主视图控制器添加任意数量的容器视图。比在您的代码中,更改alpha
值以显示/隐藏它们。像这样:
@IBOutlet weak var timelineContainerView: UIView!
@IBOutlet weak var albumsContainerView: UIView!
@IBAction func journeySegmentedControlValueChanged(_ sender: UISegmentedControl) {
switch sender.selectedSegmentIndex {
case 0:
timelineContainerView.alpha = 1.0
albumsContainerView.alpha = 0.0
case 1:
timelineContainerView.alpha = 0.0
albumsContainerView.alpha = 1.0
default:
break
}
}
如果您有很多控制器,则可能要使用IBOutlet组。