我正在尝试创建一个像应用程序的Youtube。我没有在这个项目中使用IB。我遇到的问题是,当句子太大而不适合一行时,文本会被切断。我想显示第一句而不是像Original Youtube应用程序一样被切断。 UILabel的代码如下所示。
let titleLabel:UILabel = {
let label = UILabel()
label.text = "Linkin Park - Numb"
label.translatesAutoresizingMaskIntoConstraints = false
label.numberOfLines = 2
return label
}()
// titlelabel的约束
//top
addConstraint(NSLayoutConstraint(item: titleLabel, attribute: .Top, relatedBy: .Equal, toItem: thumbnailImageView, attribute: .Bottom, multiplier: 1, constant: 8))
//left
addConstraint(NSLayoutConstraint(item: titleLabel, attribute: .Left, relatedBy: .Equal, toItem: profileImageView, attribute: .Right, multiplier: 1, constant: 8))
//right
addConstraint(NSLayoutConstraint(item: titleLabel, attribute: .Right, relatedBy: .Equal, toItem: thumbnailImageView, attribute: .Right, multiplier: 1, constant: 0))
// height
titleLabelHeightConstraint = NSLayoutConstraint(item: titleLabel, attribute: .Height, relatedBy: .Equal, toItem: self, attribute: .Height, multiplier: 0, constant: 44)
addConstraint(titleLabelHeightConstraint!)
下面的图片可以说明我的意思。 My App
我还发布了原始Youtube App的图片。第一句话永远不会被原始Youtube应用程序中断。 Youtube App
有什么方法可以像我的应用程序中的Youtube一样显示文字吗?
答案 0 :(得分:1)
尝试这样做: -
label.lineBreakMode = .ByCharWrapping
label.numberOfLines = 0
答案 1 :(得分:1)
Hi just remove the height constraint
titleLabelHeightConstraint = NSLayoutConstraint(item: titleLabel, attribute: .Height, relatedBy: .Equal, toItem: self, attribute: .Height, multiplier: 0, constant: 44)
addConstraint(titleLabelHeightConstraint!)
and **add the bottom constraint to the label** as in current scenario the label does't have the bottom constraint so that label does't know how much increase .
答案 2 :(得分:0)
您对标签的高度约束进行了硬固定。请删除它以获取动态高度。