我最近又开始使用Swift进入iOS开发,现在我正在研究定制的UIControl.对于布局和灵活性,此自定义视图使用StackView构建.
...基本上只是具有与StackView相同的功能,当我将它直接拖到故事板中时我通常拥有它 - 它调整大小以适应没有问题.这与自我调整tableview单元基本相同.
我可以将我的CustomView简化为一个简单的例子:它是一个包含三个标签的StackView,Alignment设置为Center,Distribution Equal Centering.StackView将固定到左,右和顶部布局指南(或尾随,前导和顶部).我可以轻松地使用CustomView重新创建,从XIB加载转换为具有相同参数的CustomView - 我将两者作为屏幕截图附加.
import UIKit
@IBDesignable
class CustomView: UIView {
// loaded from NIB
private weak var view: UIView!
convenience init() {
self.init(frame: CGRect())
}
override init(frame: CGRect) {
super.init(frame: frame)
self.loadNib()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.loadNib()
}
override func layoutSubviews() {
super.layoutSubviews()
// we need to adjust the frame of the subview to no longer match the …Run Code Online (Sandbox Code Playgroud) 我目前有一个 Stack View 设置,里面有一堆不同的对象,我正在尝试向它添加一个视图。
该视图将在运行时以编程方式在其中添加动态数量的标签。
当我将视图放在堆栈视图中时,我会收到约束错误,这可以通过添加高度约束来修复。
但是,我最初不知道视图的高度,因此无法对此进行限制。
有什么方法可以根据内容大小在 StackView 中自动调整大小?我认为这会是自动的,但是当我不设置高度限制时,视图不会显示