在iPhone fb應用的照片選項卡中,對於每個表格視圖單元格,他們放置相冊標題,然後放入相冊中的圖片數量。左側和右側並排放置兩個UILabels,不知道左側標籤中文本的字符串長度
例如,
第一張專輯(22)
最後也是最終AL ...(12)
我認爲有兩個標籤,一個是標題和一個號碼,因爲這個號碼實際上是一個不同的UIColor。 (注意:我不能使用uiwebview,因爲這是在一個可用的視圖中)
在iPhone fb應用的照片選項卡中,對於每個表格視圖單元格,他們放置相冊標題,然後放入相冊中的圖片數量。左側和右側並排放置兩個UILabels,不知道左側標籤中文本的字符串長度
例如,
第一張專輯(22)
最後也是最終AL ...(12)
我認爲有兩個標籤,一個是標題和一個號碼,因爲這個號碼實際上是一個不同的UIColor。 (注意:我不能使用uiwebview,因爲這是在一個可用的視圖中)
sizeWithFont是你的朋友在這裏。您可以按如下方式使用它來獲得您想要的結果:
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectZero]; //for album titles
UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectZero]; //for number of pics
/*
Set other label properties
such as background color,
font size, font color, etc
*/
NSString *string1 = [NSString stringWithFormat:@"This is a title"];
NSString *string2 = [NSString stringWithFormat:@"22"];
//Let's say both strings have a font size of 12.0f
CGSize string1Size = [string1 sizeWithFont:[UIFont systemFontOfSize:12.0f]];
label1.text = string1;
label2.text = string2;
label1.frame = CGRectMake(0/*or any origin x*/,0/*or any origin y*/,string1Size.width, string1Size.height];
label2.frame = CGRectMake(label1.frame.origin.x + label1.frame.size.width + 5/*or any other padding*/,label1.frame.origin.y, 40.0/*or some other fixed width*/,label1.frame.size.height);
現在只需將它們添加爲子視圖即可完成!
您可以使用第一個標籤的sizeThatFits:
方法檢索適合可用空間的標籤大小,然後根據第一個標籤的結果寬度定位第二個標籤。
或者你可以使用不同的NSString UIKit additions來測量字符串的長度。
或者您可以自己製作自定義視圖並自己在drawRect:
中繪製文本,雖然當其他簡單解決方案存在時(定製drawRect:
使UIKit變慢)不推薦使用。
這裏有用的方法是[NSString sizeWithFont:],如圖所示。還有其他的變化,可以讓你得到的大小取決於你可以設置的任何約束。在iOS參考中查看此方法;這很有用:) – Sid 2011-05-05 00:40:30