Swift 3如何在超出宽度时锚定底部

时间:2017-07-10 10:48:03

标签: uiview swift3 autolayout anchorpoint

我正在编写应用程序,我想知道当同一行中的总宽度超过设备宽度时,如何将视图锚定到上一个视图的底部而不是右侧。

基本上是这样的:

View 1: width=150 anchor to superview's leftAnchor
View 2: width=500 anchor to view1's rightAnchor
View 3: width=1000 anchor to view1's bottomAnchor because total width in same row
exceeds device width

#device width=1200

感谢任何帮助。对不起英语不好,不是母语。

聚苯乙烯。所有高度都相同,宽度是动态的

1 个答案:

答案 0 :(得分:0)

主要的挑战是,在我们的观点被限制之前,我无法知道观点的宽度。

所以我使用了迅速的估计。

let size = CGSize(width: UIScreen.main.bounds.width, height: 50)
let attributeHeight = [NSFontAttributeName: UIFont.preferredFont(forTextStyle: .subheadline)]
let estimatedHeight = NSString(string: _title).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributeHeight, context: nil)
self._estimatedWidth = estimatedHeight.width + 32

之后很容易根据我的需要用for循环来锚定它们