UILabel设置多行展示省略号时由于存在空行不展示省略号的问题?

当我们设置最大行数numberOfLines的时候,如果超过了最大行数UILabel就会在我们设置的最后一行出现...省略号,但是当最大行数内有空行时,则省略号不出现,UITextView也会出现一样的情况。
即如果我们设置最大行数为三行,那么文字\n文字\n文字\n文字\n文字的这种样式会展示为:

文字
文字
文字...

\n文字\n文字\n文字\n文字\n文字则会展示为:


文字
文字

可以看到,一旦前三行出现了空行,那么UILabel和UITextView默认出现的省略号就消失不见了。
对于这种情况,有人有解决方案吗?我的做法是直接在空行上加一个空格占位,让空行不在是空行,但是这种做法毕竟是取巧的做法。我想知道我们有没有一些比较好的做法可以解决这个问题的?

阅读 2.8k
1 个回答
 let caseStrings = [
                "\n\n\n\n\n\n                      456545645645445",
                "文字\t文字\n文字\n文字\n文字",
                "文字\n文字\n文字\n文字\n文字",
                "\n文字\n文字\n文字\n文字\n文字",
                "\n 文字\n文字\n文字\n文字\n文字",
                " \n 文字\n文字\n文字\n文字\n文字",
                "\t 文字\n文字\n文字\n文字\n文字",
                " \n \n 文字\n文字\n文字\n文字\n文字"
        ];
  var errorStr = caseStrings.randomElement() ;
  if errorStr!.starts(with: "\n") {
      errorStr!.removeFirst();
  }
  mylabel.text = errorStr;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏