Swift 3 如何在超出宽度时锚定底部
Swift 3 how to anchor bottom when width is exceeded
我正在编写一个应用程序,我想知道当同一行中的总宽度超过设备宽度时,如何将视图锚定到底部而不是前一个视图的右侧。
基本上是这样的:
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
感谢任何帮助。对不起英语不好,不是母语。
Ps。所有高度都相同,宽度是动态的
主要的挑战是我无法知道我的视图的宽度,直到它们受到约束。
所以我用了swift的估计。
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 循环锚定它们
我正在编写一个应用程序,我想知道当同一行中的总宽度超过设备宽度时,如何将视图锚定到底部而不是前一个视图的右侧。
基本上是这样的:
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
感谢任何帮助。对不起英语不好,不是母语。
Ps。所有高度都相同,宽度是动态的
主要的挑战是我无法知道我的视图的宽度,直到它们受到约束。
所以我用了swift的估计。
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 循环锚定它们