Iphone 调整UITableViewCell文本标签的大小

Iphone 调整UITableViewCell文本标签的大小,iphone,cocoa-touch,uitableview,Iphone,Cocoa Touch,Uitableview,我有一个UITableViewCell,我想在右侧添加一个视图(除了附件视图)。我尝试将textLabel的大小设置为再窄几个像素,但它只是将其重新调整大小 有没有办法调整textLabel的大小?在UITableViewCellStyleDefault类型的UITableViewCell实例中,默认textLabel属性引用的对象无法调整大小,至少在我的经验中是这样。在这些情况下,最好的办法是创建自己的UITableViewCell子类,如果需要,可以使用代码甚至使用Interface Bui

我有一个UITableViewCell,我想在右侧添加一个视图(除了附件视图)。我尝试将textLabel的大小设置为再窄几个像素,但它只是将其重新调整大小


有没有办法调整textLabel的大小?

在UITableViewCellStyleDefault类型的UITableViewCell实例中,默认textLabel属性引用的对象无法调整大小,至少在我的经验中是这样。在这些情况下,最好的办法是创建自己的UITableViewCell子类,如果需要,可以使用代码甚至使用Interface Builder,并为其提供所需的布局。

实际上,如果创建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;
}

希望有帮助。

我注意到textLabel会调整大小以适应accessoryView。因此,如果希望标签使用整个单元格,可以将accessoryView设置为nil(我认为这是默认行为)。或者,例如,如果希望标签只包含单元格的左半部分,请将accessoryView设置为跨单元格右半部分的空UIView。(不必为空,您可以将内容放在其中…我的观点是它将缩小文本标签。)

您可以用这种最简单的方法调整UITableView单元格的大小。首先,看一下我的示例项目

它将向您展示如何通过创建约束以最简单的方式基于其内部组件调整uitableview单元的大小

    tblTest.estimatedRowHeight = 100 // This is where you can set your estimated row height
    tblTest.rowHeight = UITableViewAutomaticDimension
另一个重要事实是您的标签行:

它应该是0

为了让您理解,我在UIView中设置了UILabel,看看我是如何在其父UIView上创建约束的

如果你还需要帮助,尽管问


祝你好运

这只在重新加载手机时对我有效,有什么想法吗?@AdamCarter是的,这就是它的工作原理,除非你想在不同的时间和不同的事件中更改它。这对我非常有用。我确实有一个子类UITableViewCell,标签大小将继续返回到故事板默认值。我很感激你的建议!