当父 UIview 的约束减少时,如何使 swift UIview 子元素自动收缩?


class ViewController{                
@IBOutlet weak var UiCalendarView: UIView!
@IBOutlet weak var UiCalendarViewConstraint: NSLayoutConstraint!
let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 373, height:300))

override func viewDidLoad() {
super.viewDidLoad()
UiCalendarView.addSubview(self.calendar)
UiCalendarViewConstraint.constant = 23
}
}

但是UiCalendarViewConstraint.constant更改并没有多大作用,因为子组件calendar有自己的高度并且保持不变。

您需要向子项添加约束,并在父项的大小更改时捕获引用 根据高度更改子项的约束。 但是,如果您从顶部和底部将子项与父项固定在一起,则当父项大小更改时,它会自动更改

let parentView = UIView()
let childView = UIView()
parentView.addSubView(childView)
childView.translatesAutoresizingMaskIntoConstraints = false
parentView.translatesAutoresizingMaskIntoConstraints = false
childView.topAnchor.constraint(equalTo: parentView.topAnchor).isActive = true
childView.bottomAnchor.constraint(equalTo: parentView.bottomAnchor).isActive = true
childView.leadingAnchor.constraint(equalTo: parentView.leadingAnchor).isActive = true
childView.trailingAnchor.constraint(equalTo: parentView.trailingAnchor).isActive = true

此代码截图将允许子级填充父视图,当您自动更改父级的高度或宽度时,它将调整其大小。

最新更新