以下标签被截断? 。有关如何显示MultiLine UILabel的任何建议吗?

时间:2018-02-11 14:24:41

标签: ios swift uilabel swift4

UILabel不会换行并显示多行。 根据文档,我的文本应该包含在单词边界上,并以2行显示。但是,这不会发生。我正在使用Swift 4和最新版本的XCode

    let instruction = UILabel()
    instruction.text = "Click And Touch Number To Make A  Choice"
    instruction.backgroundColor = .white
    instruction.textColor = .black
    instruction.font = UIFont.systemFont(ofSize: 20)
    instruction.lineBreakMode = .byWordWrapping
    instruction.textAlignment = .left
    instruction.numberOfLines = 0
    instruction.sizeToFit()        

2 个答案:

答案 0 :(得分:1)

要包装的标签应该具有框架,无论是框架布局是通过设置宽度值还是通过自动布局设置前导和尾随约束,使标签知道它的边界并在最右边界到另一条线时换行等等根据它的内容

    let instruction = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: 100, height: 100))
    instruction.text = "Click And Touch Number To Make A  Choice"
    instruction.backgroundColor = .white
    instruction.textColor = .black
    instruction.font = UIFont.systemFont(ofSize: 20)
    instruction.lineBreakMode = .byWordWrapping
    instruction.textAlignment = .left
    instruction.numberOfLines = 0
    instruction.sizeToFit()
    self.view.addSubview(instruction)
    instruction.center = self.view.center

enter image description here

答案 1 :(得分:1)

根据文件:

  

在某些情况下,如果视图没有超视图,则可能会将自身调整为屏幕范围。

但在你的情况下,它并没有。你只需要以某种方式限制标签的宽度,甚至不需要sizeToFit()(自动布局将完成它的工作),例如。

instruction.translatesAutoresizingMaskIntoConstraints = false
instruction.widthAnchor.constraint(equalToConstant: 200.0).isActive = true