[英]How to create relative constraints in xcode 5?
您好,我想在3個元素之間創建相對約束。 當從4到3.5英寸調整大小時,這些約束會在對象保持其大小的同時調整為新大小;
有一種方法可以在約束的幫助下在元素之間創建靈活的間距。 方法是使用視圖作為間距而不是約束。 官方文檔中有一個事件樣本。
查看名為“Spacing and Wrapping”的部分。
不要使用靜態高度和寬度。 使用以下代碼計算高度和寬度。
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坐標。 這是適用於所有尺寸設備的通用代碼。
據我所知,您無法在界面構建器中執行此操作,因為您無法通過界面構建器在約束上指定乘數。 但是,您可以在代碼中輕松完成,特別是使用通過Github或cocoapods提供的漂亮的自動布局助手類別 。 (免責聲明 - 我寫了這個類別!)。
該類別包含一個沿指定軸均勻分布視圖數組的方法,並且它使用包含視圖維度的乘數創建約束 - 因此對於兩個視圖,中心將是相關路徑的0.33和0.66例如,軸。
要將此用於主要在界面構建器中構建的視圖,您將使用占位符約束(在運行時刪除),然后在viewDidLoad之后添加類別約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.