大佬教程收集整理的这篇文章主要介绍了ios – 手动布局中的Autolayout,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通常在互联网上你会看到另一种方式,但我无法实现这种情况.
编辑:
我为你们添加了一些代码.只需使用“Single View Application”创建一个新的Xcode项目,并将以下代码粘贴到为我们创建的ViewController.swift上.
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let custom = CustomManualLayoutSubviews() let subview = UIView() let childView = UIView() custom.BACkgroundColor = UIColor.redColor() subview.BACkgroundColor = UIColor.greenColor() childView.BACkgroundColor = UIColor.blueColor() custom.setTranslatesAutoresizingMaskIntoConsTraints(false) subview.setTranslatesAutoresizingMaskIntoConsTraints(false) childView.setTranslatesAutoresizingMaskIntoConsTraints(false) view.addSubview(custom) custom.addSubview(subview) subview.addSubview(childView) pinToParent(view,child: custom) pinToParent(subview,child: childView) } private func pinToParent(parent: UIView,child: UIView) { parent.addConsTraints(NSLayoutConsTraint.consTraintsWithVisualFormat("V:|-10-[view]-10-|",options: .allZeros,metrics: nil,views: ["view" : child])) parent.addConsTraints(NSLayoutConsTraint.consTraintsWithVisualFormat("H:|-10-[view]-10-|",views: ["view" : child])) } } class CustomManualLayoutSubviews : UIView { override func layoutSubviews() { super.layoutSubviews() for subview in subviews as! [UIView] { subview.frame = bounds.rectByInsetTing(dx: 10,dy: 10) println("subview frame: \(subview)") } } }
从代码中可以看出,子视图使用手动布局,而自定义和childView使用Autolayout.但结果是使用autolayout的childView没有显示在屏幕上,当我检查它时,我看到它有0宽度,0高度.
这就是我得到的,根本没有蓝色区域.
从技术上讲,如果窗口中的任何视图使用自动布局,则窗口中的所有内容都使用自动布局.只是从框架自动生成约束,并为其translatesAutoresizingMaskIntoConsTraints保留的视图autoresizingMask.
因此,您必须确保您的约束不会干扰那些自动生成的约束.你可以使用translatesAutoresizingMaskIntoConsTraints从视图中“松散”东西,但是你的约束不能“推”或“拉”那些视图.使用translatesAutoresizingMaskIntoConsTraints的视图必须具有完全的移动自由度和大小.
例如,您可以使用约束将按钮定位在容器视图前缘的一小段距离内,但如果您还约束到后缘,则最好使内容拥抱和压缩阻力优先级非常低,以便他们不会尝试改变容器的宽度.即便如此,您最终可能会遇到冲突.在自动布局中,视图的宽度不允许为负.如果容器设置为零宽度并且按钮与边缘的距离不为零,则这将是冲突.因此,对后沿的约束也应该具有低优先级,以便在必要时可以将其破坏. (或者你可以为前沿做到这一点.)
您说您无法使用translatesAutoresizingMaskIntoConsTraints在视图中使用自动布局.如果您需要进一步的帮助,您需要解释您尝试过的内容以及尝试时发生的事情.
以上是大佬教程为你收集整理的ios – 手动布局中的Autolayout全部内容,希望文章能够帮你解决ios – 手动布局中的Autolayout所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。