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
这段代码将让 subview 填充父 View ,当您自动更改父 View 的高度或宽度时,它将调整其大小。
关于ios - 当父 UIview 约束减少时,如何使 swift UIview 子元素自动收缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968328/