2010-01-05 100 views
10

我有一個UITableViewCell,我想向右側添加視圖(除附件視圖外)。我試圖將textLabel的大小設置爲幾個像素較窄,但它只是調整大小。調整大小UITableViewCell textLabel

有什麼方法可以調整textLabel的大小嗎?

回答

8

無法調整UITableViewCellStyleDefault類型的UITableViewCell實例中默認textLabel屬性所引用的對象的大小,至少不是我的經驗。在這些情況下,最好的辦法是在代碼中創建自己的UITableViewCell的子類,如果需要的話也可以使用Interface Builder創建自己的子類,併爲其提供所需的佈局。

- (void)layoutSubviews { 
[super layoutSubviews]; //The default implementation of the layoutSubviews 

CGRect textLabelFrame = self.textLabel.frame; 
textLabelFrame.size.width = _textLabelMaxWidth; 
self.textLabel.frame = textLabelFrame; 
} 

希望它能幫助:

16

其實,如果你創建的UITableViewCell子類,並重寫layoutSubviews方法就可以調整。

+0

這隻適用於我單元格重新加載,任何想法? – 2013-03-16 22:09:24

+0

@AdamCarter是的,這是如何工作的,除非你想在不同的時間和不同的事件中改變它。 – 2013-03-26 10:22:23

+1

這對我來說非常有用。我確實有一個UITableViewCell的子類,標籤大小將繼續返回到故事板默認值。我很欣賞這個建議! – mikeho 2014-05-17 02:52:39

1

我注意到textLabel調整大小以適應accessoryView。所以如果你想讓標籤使用整個單元格,你可以將accessoryView設置爲零(我認爲這是默認行爲)。或者,例如,如果您希望標籤僅佔用單元格的左半部分,請使accessoryView成爲橫跨單元右半部分的空UIView。 (不一定是空的,你可以把東西放在那裏......我的觀點是它會縮小文本標籤。)

0

你可以用這種最簡單的方法來調整UITableView Cell的大小。首先,看看我的示例項目。

ResizableUIView

它會告訴你如何可以將其內部組件中最簡單的方式創建約束調整的UITableView細胞羣。

tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height 
    tblTest.rowHeight = UITableViewAutomaticDimension 

另一個重要的事實是你的標籤行: enter image description here

應該

爲了讓你明白,我設置的UILabel裏面的UIView,看看我是怎麼在其父UIView上創建約束。

如果您仍然需要任何幫助,只需詢問。

祝你好運

相關問題