簡體   English   中英

如何在xcode 5中創建相對約束?

[英]How to create relative constraints in xcode 5?

在此輸入圖像描述

您好,我想在3個元素之間創建相對約束。 當從4到3.5英寸調整大小時,這些約束會在對象保持其大小的同時調整為新大小;

有一種方法可以在約束的幫助下在元素之間創建靈活的間距。 方法是使用視圖作為間距而不是約束。 官方文檔中有一個事件樣本。

https://developer.apple.com/library/ios/documentation/userexperience/conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html

查看名為“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM