Ios UITableViewCell中的两行';s textLabel,新行仅由文本中的换行符确定

Ios UITableViewCell中的两行';s textLabel,新行仅由文本中的换行符确定,ios,uitableview,newline,line-breaks,Ios,Uitableview,Newline,Line Breaks,我想格式化单元格的textLabel以在两行上显示文本,并用换行符确定第二行的起始位置。我的问题是,由于我不控制第一行中的文本,有时第一行中的文本会溢出到第二行,而我的第二行文本根本不会显示。指定UILineBreakModeWordWrap实际上有时甚至会将一个单词一分为二进行包装,这毫无意义(我使用第一行作为名称)。我需要两行和两行只为这个标签,因为这是所有的空间,在这个特定的细胞。我已经在使用detailTextLabel进行其他操作。我真的不想为此创建自定义单元格。可以按我的要求做吗?以

我想格式化单元格的textLabel以在两行上显示文本,并用换行符确定第二行的起始位置。我的问题是,由于我不控制第一行中的文本,有时第一行中的文本会溢出到第二行,而我的第二行文本根本不会显示。指定UILineBreakModeWordWrap实际上有时甚至会将一个单词一分为二进行包装,这毫无意义(我使用第一行作为名称)。我需要两行和两行只为这个标签,因为这是所有的空间,在这个特定的细胞。我已经在使用detailTextLabel进行其他操作。我真的不想为此创建自定义单元格。可以按我的要求做吗?

以下是您可以做的:

您可以将长字符串拆分为两个,并使用组件按字符串分隔,然后将每一部分拆分为两个,使用迭代大小with font:constrainedToSize:lineBreakMode计算符合默认textLabel宽度的最长字符串,然后将两个新制作的字符串附加一个“\n”字符。将其用作文本标签文本

这应该实现你想要做的。 但我强烈建议你帮自己一个忙,走自己的路。 出于若干原因:

  • 是的,创建自定义单元格通常需要更长的时间。但是,我认为在这种特殊情况下,定制要比实现上述功能更快。上面的实现甚至没有考虑截断字符串末尾的省略号。你可以把它加入到混合中,但这只会增加更多的时间和复杂性。有了自定义单元格和单个标签,类似的东西就变成了一个gimme
  • 自定义允许您轻松为两行文本指定自己的字体/大小。使用IB,这些字段的基本样式变得轻而易举。这是一个相当巧妙的奖金。特别是对于你的用户。您提到第一行文本是用于名称的,为什么不将其加粗,以便更好地将其与第二行文本区分开来
  • 如果你计划在将来创建和发布iOS应用程序,你将要制作很多自定义单元格。为什么不把这个作为练习呢

  • 如果需要有关创建自定义单元格的指导

    如果第一行太长而不适合,您希望执行什么操作?如果第一行太长,我希望截断它。我知道我可能需要做一个自定义单元格,但我发现对于这样一个简单的需求来说,它太单调乏味了。特别是因为我没有“默认”的单元格布局。在使用自定义单元格时,有很多额外的事情需要考虑。也许可以尝试修改detailTextLabel,使其与其他标签完全相同,只需将顶部标签作为顶行,将detailTextLabel作为底部?它会把你从一个自定义单元格中解救出来。那会有用的,除了我需要detailTextLabel来做其他事情。看起来苹果公司制作一个UILineBreakModeNewlineCharacter会做得很好…谢谢。这是一个很好的答案。我以前做过自定义单元格,但复杂的是它会带来一些东西,如用于滑动删除的contentview框架等。我想我必须对这个单元格进行自定义。但我确实喜欢你的建议,以防我决定不这么做。