Swift: 以编程方式更改子视图的高度
Swift: Changing the hight of subview programmatically
我正在实现一个子视图,但是我需要以编程方式更改子视图的高度。这就是我改变高点的方式:
func changeHigh() {
UIView.animate(withDuration: 1.0, animations: {
self.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height - 50)
self.buttonConstraint.constant = 10
})
}
但是这个实现的问题是动画视图的位置。我只想改变高点而不改变位置。
你们知道为什么要改变子视图的位置吗?
非常感谢你的帮助。
首先,要改变高度,只需修改框架的size.height
属性即可。
self.frame.size.height -= 50 /// this will make it 50 pts less
此外,您应该在动画块外部 更改约束,而不是在动画块内部。然后,调用 layoutIfNeeded()
对其进行动画处理。
您的代码应如下所示:
func changeHigh() {
self.buttonConstraint.constant = 10
UIView.animate(withDuration: 1.0, animations: {
self.frame.size.height -= 50
self.layoutIfNeeded()
})
}
我正在实现一个子视图,但是我需要以编程方式更改子视图的高度。这就是我改变高点的方式:
func changeHigh() {
UIView.animate(withDuration: 1.0, animations: {
self.frame = CGRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height - 50)
self.buttonConstraint.constant = 10
})
}
但是这个实现的问题是动画视图的位置。我只想改变高点而不改变位置。
你们知道为什么要改变子视图的位置吗?
非常感谢你的帮助。
首先,要改变高度,只需修改框架的size.height
属性即可。
self.frame.size.height -= 50 /// this will make it 50 pts less
此外,您应该在动画块外部 更改约束,而不是在动画块内部。然后,调用 layoutIfNeeded()
对其进行动画处理。
您的代码应如下所示:
func changeHigh() {
self.buttonConstraint.constant = 10
UIView.animate(withDuration: 1.0, animations: {
self.frame.size.height -= 50
self.layoutIfNeeded()
})
}