2013-12-09 17 views

回答

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

+0

通过使用上面两行,您将获得设备的高度和宽度。并通过使用此高度并与您必须设置元素的高度,宽度,X坐标,Y坐标。 – Smita

+0

并在运行时动态设置位置? – Aleksandrenko

0

据我所知,您无法在界面构建器中执行此操作,因为您无法通过界面构建​​器在约束上指定乘数。但是,您可以通过代码轻松完成,特别是使用nice auto layout helper category available via Github or cocoapods。 (免责声明 - 我写的类别!)。

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

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