大佬教程收集整理的这篇文章主要介绍了ios – 如何以编程方式添加容器视图,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
但是,我无法找到一种以编程方式添加Container View的方法.其实我甚至不能找到一个名为UIContainerView的类.
容器视图类的名称肯定是一个好的开始.一个完整的指南,包括segue将不胜感激.
我知道View Controller编程指南,但我不认为它与Interface Builder对于Container Viewer的方式相同.例如,当约束被正确设置时,(子)视图将适应容器视图中的大小变化.
为了以编程方式实现这一点,您使用“视图控制器控制”:
>通过在storyboard对象上调用instantiateViewControllerWithIdentifier实例化子视图控制器.
>在父视图控制器中调用addChildViewController.
>使用addSubview将视图控制器的视图添加到视图层次结构中(并根据需要设置框架或约束).
>在子视图控制器上调用didMoveToParentViewController方法,将引用传递给父视图控制器.
请参阅07控制器编程指南中的Implementing a Container View Controller和UIViewController Class Reference的“实现容器视图控制器”部分.
例如,它可能看起来像:
override func viewDidLoad() { super.viewDidLoad() let controller = storyboard!.instantiateViewControllerWithIdentifier("Second") addChildViewController(controller) controller.view.translatesAutoresizingMaskIntoConsTraints = false view.addSubview(controller.view) NSLayoutConsTraint.activateConsTraints([ controller.view.leadingAnchor.consTraintEqualToAnchor(view.leadingAnchor,constant: 10),controller.view.TrailingAnchor.consTraintEqualToAnchor(view.TrailingAnchor,constant: -10),controller.view.topAnchor.consTraintEqualToAnchor(view.topAnchor,controller.view.bottomAnchor.consTraintEqualToAnchor(view.bottomAnchor,constant: -10) ]) controller.didMoveToParentViewController(self) }
请注意,上述实际上并没有向层次结构添加“容器视图”.如果你想这样做,你会做一些像:
override func viewDidLoad() { super.viewDidLoad() // add container let containerView = UIView() containerView.translatesAutoresizingMaskIntoConsTraints = false view.addSubview(containerView) NSLayoutConsTraint.activateConsTraints([ containerView.leadingAnchor.consTraintEqualToAnchor(view.leadingAnchor,containerView.TrailingAnchor.consTraintEqualToAnchor(view.TrailingAnchor,containerView.topAnchor.consTraintEqualToAnchor(view.topAnchor,containerView.bottomAnchor.consTraintEqualToAnchor(view.bottomAnchor,]) // add child view controller view to container let controller = storyboard!.instantiateViewControllerWithIdentifier("Second") addChildViewController(controller) controller.view.translatesAutoresizingMaskIntoConsTraints = false containerView.addSubview(controller.view) NSLayoutConsTraint.activateConsTraints([ controller.view.leadingAnchor.consTraintEqualToAnchor(containerView.leadingAnchor),controller.view.TrailingAnchor.consTraintEqualToAnchor(containerView.TrailingAnchor),controller.view.topAnchor.consTraintEqualToAnchor(containerView.topAnchor),controller.view.bottomAnchor.consTraintEqualToAnchor(containerView.bottomAnchor) ]) controller.didMoveToParentViewController(self) }
后一种模式非常有用,如果在不同子视图控制器之间进行转换,并且您只想确保一个孩子的视图位于同一位置,并且之前的子视图(即所有唯一的位置约束都由容器视图指定,而不是每次都需要重建这些约束).但是,如果只是执行简单的视图控制,则对这个单独的容器视图的需求不那么引人注目.
以上是大佬教程为你收集整理的ios – 如何以编程方式添加容器视图全部内容,希望文章能够帮你解决ios – 如何以编程方式添加容器视图所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。