ios - 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()
})
}
推荐阅读
- gatsby - Gatsby google-tagmanager 插件:如何访问 dataLayer.push
- spring - 带有 HOCON 文件的 Spring Cloud Config
- reactjs - 不变违规:元素类型无效预期字符串(对于内置组件)......但得到:未定义
- rust - 由于缺少 libc,Rust Cargo 与 musl 交叉编译失败
- c# - 无法找到 .NET Core SDK。.NET Core 调试将不会启用。确保 .NET Core SDK 已安装且位于路径上
- javascript - 将 Array.prototype.every() 的回调更改为箭头函数
- javascript - 使用动态 Redux 状态和 SignalR 反应无状态功能组件
- yolo - 在 Windows 上安装 Darknet 时出现 Make77 错误
- python - 当 conda python 版本在任何频道中都不可用时,如何更新它?
- angular - Json中的锚标记到HTML