我有一个UITableViewCell,我想在右边添加一个视图(除了附件视图)。我尝试将textLabel的大小设置为更窄的几个像素,但它只是将其重新调整大小。
有没有办法调整textLabel的大小?
答案 0 :(得分:17)
实际上,如果您创建UITableViewCell子类并覆盖layoutSubviews方法,则可以调整其大小:
- (void)layoutSubviews {
[super layoutSubviews]; //The default implementation of the layoutSubviews
CGRect textLabelFrame = self.textLabel.frame;
textLabelFrame.size.width = _textLabelMaxWidth;
self.textLabel.frame = textLabelFrame;
}
希望它有所帮助。
答案 1 :(得分:8)
默认textLabel属性在UITableViewCellStyleDefault类型的UITableViewCell实例中引用的对象无法调整大小,至少不符合我的经验。在这些情况下,最好的想法是在代码中创建自己的UITableViewCell子类,如果需要,甚至可以使用Interface Builder创建,并为其提供所需的布局。
答案 2 :(得分:1)
我注意到textLabel调整大小以容纳accessoryView。因此,如果您希望标签使用整个单元格,您可以将accessoryView设置为nil(我认为这是默认行为)。或者,例如,如果您希望标签仅占用单元格的左半部分,则将accessoryView设置为跨越单元格右半部分的空UIView。 (不一定是空的,你可以把东西放在那里......我的观点是它会收缩textLabel。)
答案 3 :(得分:0)
您可以用这种最简单的方式调整UITableView Cell的大小。首先,看看我的示例项目。
它将向您展示如何通过创建约束以最简单的方式在其内部组件上调整uitableview单元格的大小。
tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height
tblTest.rowHeight = UITableViewAutomaticDimension
应该 0
为了让你明白,我在UIView里面设置了UILabel,看看我是如何在它的父UIView上创建约束的。
如果您仍需要任何帮助,请询问。
祝你好运