如何在Xcode 5中创建相对约束?

4

enter image description here

你好,我想在三个元素之间创建相对约束。当从4英寸调整大小到3.5英寸时,这些约束会按比例缩放到新的大小,而对象保持其大小。

3个回答

2

0
不要使用固定的高度和宽度。用以下代码计算高度和宽度。
int width = self.view.frame.size.width;
int height = self.view.frame.size.height;

通过这种方式为您的元素设置X和Y坐标。

参考此代码 -

int imageX = 2,imageY = 2;
int count1 = 0;

for (int i = 0; i < [mainMenuColumn1Array count]; i++) {

    count1++;

    MenuClass *menuClass = [[MenuClass alloc] init];
    menuClass = [mainMenuColumn1Array objectAtIndex:(count1 - 1)];

    UIButton *menuBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    menuBtn.frame = CGRectMake(imageX, imageY, (width/2)-4, (height/3)-4);
    menuBtn.tag = count1;
    [menuBtn addTarget:self action:@selector(mainMenu1Action:) forControlEvents:UIControlEventTouchUpInside];
    menuBtn.backgroundColor = [UIColor colorWithRed:17.0/255.0 green:116.0/255.0 blue:239.0/255.0 alpha:1.0];
    [mainView1 addSubview:menuBtn];

    imageY = imageY + height/3;
    imageX = 2;

}

在这里,我动态添加了UIButtons。并且我动态设置了XY坐标。这是适用于所有尺寸设备的通用代码。


1
高度和宽度是指什么? - Aleksandrenko
通过使用以上两行代码,您将获得设备的高度和宽度。并且通过使用此高度和宽度,您可以设置元素的高度、宽度、X坐标和Y坐标。 - iSmita
并且在运行时动态设置位置? - Aleksandrenko
我已经更新了我的答案。请检查并让我知道您是否有疑问。 - iSmita
我想使用约束来排列我的UI元素,而不是使用代码 :) - Aleksandrenko

0

据我所知,您无法在界面构建器中完成此操作,因为您无法通过界面构建器指定约束的乘数。但是,您可以很容易地在代码中完成此操作,特别是使用Github或Cocoapods提供的优秀自动布局助手类别(免责声明-我编写了该类别!)。

该类别包含一种方法,可沿指定轴均匀分布视图数组,在幕后它使用包含视图尺寸的乘数创建约束-因此,对于两个视图,例如,中心点将位于相关轴的0.33和0.66处。

要将其用于主要在界面构建器中构建的视图,您需要使用占位符约束(在运行时删除),然后在viewDidLoad之后添加类别约束。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接