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()
答案 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
答案 1 :(得分:1)
根据文件:
在某些情况下,如果视图没有超视图,则可能会将自身调整为屏幕范围。
但在你的情况下,它并没有。你只需要以某种方式限制标签的宽度,甚至不需要sizeToFit()
(自动布局将完成它的工作),例如。
instruction.translatesAutoresizingMaskIntoConstraints = false
instruction.widthAnchor.constraint(equalToConstant: 200.0).isActive = true