UITableViewCell Комплексное расположение - PullRequest
0 голосов
/ 10 марта 2019

Визуализация: введите описание изображения здесь

Я использовал макет UIStackView, часть изображения использует UICollectionView.

UITableViewCell:

let nameStackView = UIStackView(arrangedSubviews: [name, time])
    nameStackView.axis = .vertical

    let userStackView = UIStackView(arrangedSubviews: [avatar, nameStackView])
    userStackView.axis = .horizontal
    userStackView.spacing = 10

    let headerStackView = UIStackView(arrangedSubviews: [userStackView, describeLabel])
    headerStackView.isLayoutMarginsRelativeArrangement = true
    headerStackView.layoutMargins = UIEdgeInsets(top: 15, left: 15, bottom: 15, right: 15)
    headerStackView.axis = .vertical
    headerStackView.spacing = 10

    let commentStackView = UIStackView(arrangedSubviews: [UIView(), commentButton, likeButton])
    commentStackView.isLayoutMarginsRelativeArrangement = true
    commentStackView.layoutMargins = UIEdgeInsets(top: 15, left: 15, bottom: 20, right: 15)

    rootStackView = UIStackView(arrangedSubviews: [headerStackView, collectionView, commentStackView])
    rootStackView.translatesAutoresizingMaskIntoConstraints = false
    rootStackView.axis = .vertical
    contentView.addSubview(rootStackView)

    NSLayoutConstraint.activate([
        avatar.widthAnchor.constraint(equalToConstant: 34),
        avatar.heightAnchor.constraint(equalToConstant: 34),
        rootStackView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 0),
        rootStackView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: 0),
        rootStackView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 0),
        rootStackView.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0)])

Код является основной частью макета, не считая элементов, он должен быть понятен.

Сложная часть - это макет высоты UICollectionView. Есть хороший способ?

...