您好,我想在3个元素之间创建相对约束。 当从4到3.5英寸调整大小时,这些约束会在对象保持其大小的同时调整为新大小;
答案 0 :(得分:2)
有一种方法可以在约束的帮助下在元素之间创建灵活的间距。方法是使用视图作为间距而不是约束。官方文档中有一个事件样本。
查看名为“Spacing and Wrapping”的部分。
答案 1 :(得分: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坐标。这是适用于所有尺寸设备的通用代码。
答案 2 :(得分:0)
据我所知,您无法在界面构建器中执行此操作,因为您无法通过界面构建器在约束上指定乘数。但是,您可以在代码中轻松完成,尤其是使用nice auto layout helper category available via Github or cocoapods。 (免责声明 - 我写了这个类别!)。
该类别包含一个沿指定轴均匀分布视图数组的方法,并且它使用包含视图的维度的乘数创建约束 - 因此对于两个视图,中心将为0.33并且例如,沿相关轴的0.66路。
要将此用于主要在界面构建器中构建的视图,您可以使用占位符约束(在运行时删除),然后在viewDidLoad之后添加类别约束。