ios - 当父 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
当您将自动更改父级的高度或宽度时,此代码片段将让子级填充父视图,它将调整其大小。
推荐阅读
- excel - 分配 Collection 异议
- javascript - ajax 脚本加载次数过多
- java - Kafka 单元测试事务与 MockProducer 和 MockConsumer
- javascript - 如果react-select中的项目长度为1,如何动态添加isFixed?
- r - 滞后函数之和
- algorithm - 这个说法是否正确:`2^{n}−1=Θ(Fibonacci(n+1) - 1)`?
- dataframe - R中的多个if条件和过滤器
- tabs - Notepad++ 将特定行与第二行合并
- string - Python,用元素创建一个字符串,在它们之间添加逗号
- react-native - Expo中的FlatList在再次刷新项目后加载并渲染项目两次导致重复键