ios - 为什么我的宽高比约束在以编程方式设置时未激活?

标签 ios autolayout

我将问题简化为 ViewController 上的一个 UIView,如下图所示:

enter image description here

我将宽高比约束从 Storyboard拖到 ViewController 代码中,并命名为 aspectRatioConstraint

我希望在运行应用程序时紫色 View 的宽高比为 1:1,因此在 viewDidLoad 中我设置了 aspectRatioConstraint.constant = 1(在运行宽高比之前为 343:128)

但是当我运行应用程序时没有任何反应。纵横比没有更改为 1:1,这里出了什么问题?

最佳答案

由于 multiplayer 是只获取属性,我们不能更改它的值,而是可以更改 constant 属性。

open var multiplier: CGFloat { get }

从约束菜单:

enter image description here

First Item = (Multiplier * Second Item) + Constant

View.Height = ((128/343) * View.Width) + 0

换句话说,343 = (0.373 * 128) + x

因为乘数必须从 0.373 更改为 1

(View.Height - 常数)/View.width = Multiplier

(343 - x)/128 = 1

x = 343 - 128

x = 215

aspectRatioConstraint.constant = 215
yourView.layoutIfNeeded()

关于ios - 为什么我的宽高比约束在以编程方式设置时未激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53043032/

相关文章:

ios - 自动布局动态 UITableView 单元格高度

IOS UIScrollView - 同时滚动和点击元素

ios - 如何在编辑表单时显示预先检查的 UITableViewCells。

ios - iphone 应用程序崩溃 -[UITableView _selectRowAtIndexPath :animated:scrollPosition:notifyDelegate:]

ios - 匿名闭包参数不能在具有显式参数的闭包内使用

ios - 使用自动布局以编程方式将 subview 添加到 UIView 时来源错误

ios - 我可以直接从具有特定大小类或特征集合的 xib 加载 UITableViewCell 吗?

ios - 如何阻止 UIBarButtonItem 文本被截断?

ios - 使用自动布局约束对 viewController 过渡进行动画处理 (Swift)

ios - 当文本为零时如何轻松折叠标签周围的垂直空间?