在a simple iPhone app我viewDidLoad顯示一個字母瓦(帶圖像和2個標籤定製UIView
)通過下面的代碼:使字體與UILabel一起生長(通過自動佈局調整大小) - 如何在Interface Builder中執行此操作?
DraggedTile *tile = [[[NSBundle mainBundle] loadNibNamed:@"DraggedTile"
owner:self
options:nil] firstObject];
tile.frame = CGRectMake(10 + arc4random_uniform(100),
10 + arc4random_uniform(100),
kWidth,
kHeight);
[self.view addSubview:tile];
這工作不錯,但我想提出的信瓷磚生長 - 當我提供更大的寬度和高度參數到CGRectMake
。
因此,在Xcode 5.1界面生成器中,我打開DraggedTile.xib
並啓用「自動佈局」。
然後,對於image
和letter
我添加約束的父,左邊,頂部,右邊,底邊。
爲letter
標籤我還設置 「線條」 爲0, 「內容壓縮性優先」 到1000(這裏fullscreen 1和fullscreen 2):
然後我修改代碼使用更大的寬度和高度:
tile.frame = CGRectMake(10 + arc4random_uniform(100),
10 + arc4random_uniform(100),
2 * kWidth,
2 * kHeight);
H ERE結果如下:
兩個背景image
和letter
標籤似乎已經成長爲意。
但是,標籤的字體大小還沒有增長。
我搜索了四周,我認爲我需要類似tile.letter.adjustsFontSizeToFitWidth = YES
。但在同一時間,我無法用「自動佈局」是在使用它...
所以我的問題是如果在「Interface Builder中」任何可用的選項,以使字體大小成長以及?
UPDATE:
我已經試過ismailgulek的建議,字體大小設置爲在Interface Builder 200 in the codetile.letter.adjustsFontSizeToFitWidth = YES
和它看起來很有希望(這裏fullscreen):
但我現在遇到了在Interface Builder中將40px設置爲letter.bottom
約束的問題。但是如果我需要更大的瓷磚框架呢?有沒有一種方法可以在該約束中使用百分比而不是絕對像素值?
而另一個問題是如果可以在接口構建器中設置adjustsFontSizeToFitWidth
某處,還是必須使用源代碼?我試着加入一鍵「用戶定義的屬性運行」 - 但隨後的應用程序崩潰,在運行時:
您應該爲其他標籤設置約束條件。 – vin
但是你的其他標籤似乎看起來錯了,你想這樣嗎? – vin
我會稍後更正另一個標籤的位置。現在我正在詢問字體大小。 –