将文本标签在中间并根据下面标签中的文本行数移动

时间:2018-08-09 12:50:08

标签: swift uilabel constraints

我的UILabel固定在单元格的顶部,就像UIImage一样,但是如果下面的文本带有f.e。 1行(它也在UILabel中)我的顶部UILabel在其他地方。 这是我的约束和标签声明。感谢所有尝试解决我的问题的人:)我尝试在UILabels上使用sizeToFit方法

var albumImage: UIImageView = {
    let view = UIImageView()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.contentMode = .scaleAspectFit
    return view
}()

var albumName: UILabel = {
    let view = UILabel()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.numberOfLines = 0
    view.sizeToFit()
    return view
}()

var bandName: UILabel = {
    let view = UILabel()
    view.translatesAutoresizingMaskIntoConstraints = false
    view.sizeToFit()
    return view
}()

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    drawLayout()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("ERROR")
}



func drawLayout(){

    let guide = self.safeAreaLayoutGuide


    //albumImage
    addSubview(albumImage)
    addSubview(albumName)
    addSubview(bandName)

    albumImage.heightAnchor.constraint(equalToConstant: 50).isActive = true
    albumImage.widthAnchor.constraint(equalToConstant: 50).isActive = true
    albumImage.leadingAnchor.constraint(equalTo: guide.leadingAnchor, constant: 8).isActive = true
    albumImage.topAnchor.constraint(equalTo: self.topAnchor, constant: 8).isActive = true
    albumImage.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -8).isActive = true

    //albumTitle
    albumName.topAnchor.constraint(equalTo: bandName.bottomAnchor).isActive = true
    albumName.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: -8).isActive = true
    albumName.leadingAnchor.constraint(equalTo: albumImage.trailingAnchor, constant: 8).isActive = true
    albumName.trailingAnchor.constraint(equalTo: guide.trailingAnchor, constant: -8).isActive = true

    //bandName
    bandName.topAnchor.constraint(equalTo: albumImage.topAnchor).isActive = true
    bandName.leadingAnchor.constraint(equalTo: albumImage.trailingAnchor, constant: 8).isActive = true
}

0 个答案:

没有答案