ios – AutoLayout了解乘数

我有乘法器的问题,无法理解这个功能是如何工作的.例如,我有视图有6:1乘数(To SuperView.Leading)如下所示.


当我将乘数改为2:1时,它似乎在下面.


我的问题是6:1的关系,6和1是什么意思.并且在2:1的关系中,2和1的意思是什么.类似的考虑你有三个视图,如下图所示.子视图和superView之间总共有4个空白区域.我怎么说每个空白区域必须是SuperView.Width / 6(并且每个空白宽度必须相等)

提前致谢.

解决方法

使用自动布局时,尤其是在使用比例布局时,必须使用乘数.

我必须在这里解释一些数学.
我们知道直线方程.

Y = Mx C.

在上面的等式中.假设M是你的乘数,C是你的常数.

因此假设你有超级视图(如果是iphone 6s plus)
414(宽)x 736(高)尺寸.在该视图中假设您创建了子视图.

现在,如果您希望子视图大小超出superview大小的一半,那么只需将两个约束从子视图拖到superview. (即等宽和等高)

看到这张图片

显然现在你会收到一个错误.就像我得到的一样. (见下图)

现在逐个单击两个约束,并使用乘数为0.5.然后使用上面的直线方程.
这里0.5表示你想要subview = superviewWidth / 2.0的宽度,即212 px.

换句话说,您也可以提供乘数212:414.

Y即subviewWidth =((M即0.5)*(x即414,即superviewWidth))(常数,即零)

最后你得到subviewWidth = 212 px

同样适用于子视图的高度.提供乘数0.5或368:736.

完成所有操作后,不要忘记单击子视图并更新帧.

这种方式常量和乘数将起作用.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...