如何解决Swift:以编程方式更改子视图的高度
我正在实现一个子视图,但我需要以编程方式更改子视图的高度。这就是我改变高点的方式:
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()
})
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。