2010-01-05 97 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上创建约束。

如果您仍然需要任何帮助,只需询问。

祝你好运

相关问题