我有一個UILabel自定義表格單元格。我想要的可以用兩種方法完成。iphone自定義表格單元格,UILabel需要滾動
1-查找包含長文本的標籤的高度,並設置rowHeight以使整個文本可見。
2-使UILabel可滾動,以便用戶可以用手上/下移動文本以讀取整個字符串。
你可以請教我做哪一個怎麼做?
我有一個UILabel自定義表格單元格。我想要的可以用兩種方法完成。iphone自定義表格單元格,UILabel需要滾動
1-查找包含長文本的標籤的高度,並設置rowHeight以使整個文本可見。
2-使UILabel可滾動,以便用戶可以用手上/下移動文本以讀取整個字符串。
你可以請教我做哪一個怎麼做?
如果您的文本是靜態的並且不會動態更改,則應使用第一個選項。您可以緩存結果,因此無論何時刷新表格,都不必重新計算文本。您可以使用sizeWithFont:constrainedToSize:lineBreakMode來計算實際文字大小。
對於行高:應該使用tableView:heightForRowAtIndexPath:而不是rowHeight,因爲rowHeight將更改所有行的高度 - 不僅是單個單元格。
一個表格中的可滾動文本視圖:在我看來 - 它看起來像一個應用程序的廉價解決方案,並使它有點業餘。
我建議不要在大多數情況下使用第一個選項,因爲這取決於字符串的長度,它可能會使您的表格單元變大。
至於第二個選項:您應該能夠將UIScrollView作爲子視圖添加到表視圖單元格中。滾動視圖可以包含完整大小的文本標籤,並讓您在固定大小的單元格中滾動瀏覽它們。
我們有沒有關於如何做的例子?即時通訊新的iPhone,抱歉 竊聽。 - 帕諾斯9分鐘前
UIScrollView *scroller = [[UIScrollView alloc]initWithFrame:cell.frame];
scroller.contentSize = CGSizeMake(280, 100);
UILabel *test = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];
test.text = @"This would be your label.";
[scroller addSubview:test];
[cell addSubview:scroller];
這將使一個UIScrollView,並在TableCell的 '細胞' 的標籤。這將工作,但我不認爲這是最好的解決方案,因爲它將是一個已經提供滾動的tableview內的滾動視圖。我的建議是調整rowheigth。
這將以編程方式發生,我承擔?另外,該標籤如何工作?它的寬度是有限的嗎?多一點信息第一.. – Martol1ni
感謝您的快速答案。是的,我以編程方式創建自定義單元格。現在,我將行高設置爲88,在單元格中我有 contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(10,35,340,44)]; contentLabel.tag = 2; contentLabel.font = [UIFont systemFontOfSize:15]; contentLabel.textAlignment = UITextAlignmentLeft; contentLabel.lineBreakMode = UILineBreakModeWordWrap; contentLabel.numberOfLines = 0; contentLabel.text = contentText; [cell.contentView addSubview:contentLabel]; 它打破了罰款,但如果文本更長,它不顯示。 – Panos
請更新您的原始文章,以便代碼可顯示。 – Martol1ni