UILabel应该生成省略号但不起作用

时间:2017-06-18 10:18:25

标签: ios swift uitableview uilabel ellipsis

我有一个UITableView,并且通过对远程服务的调用来填充该单元格。 我已将UILabel lineBreakMode属性设置为NSLineBreakByTruncatingTail并将行设置为2.在单元格xib上,一切似乎都是正常的。这是截图:

enter image description here enter image description here

这是我在解析从远程服务检索到的JSON后用来填充文本的代码片段。

func  tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if (posts.count == 0){
            return tableView.dequeueReusableCell(withIdentifier:
                TableViewCellIdentifiers.emptyCell, for: indexPath)
        } else {
            let cell = tableView.dequeueReusableCell(withIdentifier:
                TableViewCellIdentifiers.postCell, for: indexPath) as! PostCell

            let post = posts[indexPath.row]
            cell.userNameLabel.text = post.userName
            cell.postTextLabel.text = post.text
            cell.timeLabel.text = post.time
            cell.distanceLabel.text = post.distance

            return cell
        }
    }

但是这里结果并没有产生省略号,但每件事都是叠加的 enter image description here

知道问题在哪里?

2 个答案:

答案 0 :(得分:0)

您似乎缺少约束。尝试设置从标签右边缘到右侧TimeDistance标签的约束。我会让所有标签都有一个固定的宽度,并设置所有约束Equal,UILabels正确对齐文本。

答案 1 :(得分:0)

这里的问题是因为您给出的宽度限制。黄色警告表示在运行时标签宽度可以超过任何限制。 Y位置或高度也未正确设置。您需要在运行时设置这两个约束,Label将采用适合文本长度的宽度。