我有一個UIPickerView,它將顯示用戶的項目列表。我希望每個項目都以多行文本形式顯示,每行使用不同的字體大小。一個粗糙的模型如下所示。這將允許呈現更多的文本,而不是默認UIPickerView的單行內容。UIPickerView - 使用多線行的自定義視圖 - 需要佈局建議
bdesham指着我對使用pickerView:viewForRow:forComponent:reusingView在委託的UIPickerView。這似乎是要走的路,因爲它可以讓我爲各行提供自己的自定義視圖。
我的想法是創建一個UIView,其中有2個UILabel子視圖,每行一個文本。這樣我可以對每一行應用不同的字體。我嘗試了下面,但佈局似乎沒有工作。我需要線條成爲另一條線。下面是我試圖通過面具將第二行浮動到底部。
#define VIEWTAG_LINE1 1
#define VIEWTAG_LINE2 2
- (UIView*)pickerView:(UIPickerView *)thePickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView* v;
if (view)
v = view;
else
{
v = [[[UIView alloc] init] autorelease];
UILabel* l1 = [[[UILabel alloc] init] autorelease];
l1.tag = VIEWTAG_LINE1;
[v addSubview: l1];
UILabel* l2 = [[[UILabel alloc] init] autorelease];
l2.tag = VIEWTAG_LINE2;
l2.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
[v addSubview: l2];
}
UILabel* l1 = (UILabel*)[v viewWithTag: VIEWTAG_LINE1];
l1.text = [NSString stringWithFormat: @"row %d line 1", row];
[l1 sizeToFit];
UILabel* l2 = (UILabel*)[v viewWithTag: VIEWTAG_LINE2];
l2.text = [NSString stringWithFormat: @"row %d line 2", row];
[l2 sizeToFit];
[v sizeToFit];
return v;
}
這產生了下面的內容。有關獲取兩個UILabel視圖的任何建議,以便它們堆疊在一起形成所需的多行結果?
它可能無法正常工作,但你有沒有試過在UITableViewCell而不是簡單的UIView?因爲它確實正是你想要做風格明智的。 – HermioneGreen 2013-03-13 20:38:50