Изображение профиля обрезается в UITableViewCell - PullRequest
0 голосов
/ 08 мая 2018

У меня есть простой пользовательский UITableViewCell, который имеет изображение профиля слева, заголовок и detailsLabel справа. Я использовал ограничения Auto Layout, чтобы установить все виды на экране. Но текст detailsLable короткий и изображение профиля обрезается.

Дайте мне знать, как это исправить. Я мог бы сделать изображение маленьким, которое короче высоты заголовка и надписи вместе, но мне нужно большое изображение.

enter image description here

// adding subviews
contentView.addSubview(profileImageView)
contentView.addSubview(nameLabel)
contentView.addSubview(jobTitleDetailedLabel)

// constraint for the views  

    profileImageView.topAnchor.constraint(equalTo:self.contentView.topAnchor,     constant:10).isActive = true
    profileImageView.leadingAnchor.constraint(equalTo:self.contentView.leadin    gAnchor, constant:10).isActive = true
profileImageView.widthAnchor.constraint(equalToConstant:50).isActive = true
profileImageView.heightAnchor.constraint(equalToConstant:50).isActive = true

    nameLabel.topAnchor.constraint(equalTo:self.contentView.topAnchor, constant:10).isActive = true
nameLabel.leadingAnchor.constraint(equalTo:self.profileImageView.trailingAnchor,  constant:10).isActive = true
nameLabel.trailingAnchor.constraint(equalTo:self.contentView.trailingAnchor).isActive = true

jobTitleDetailedLabel.topAnchor.constraint(equalTo:self.nameLabel.bottomAnchor).isActive = true
jobTitleDetailedLabel.leadingAnchor.constraint(equalTo:self.profileImageView.trailingAnchor, constant:10).isActive = true
jobTitleDetailedLabel.trailingAnchor.constraint(equalTo:self.contentView.trailingAnchor).isActive = true
jobTitleDetailedLabel.bottomAnchor.constraint(equalTo:self.contentView.bottomAnchor, constant:-10).isActive = true

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Удостоверьтесь, что нижняя привязка contentView ячейки была ограничена как greatThanOrEqualTo для нижней привязки profileImageView и нижней привязки jobTitleDetailedLabel. Ячейка будет расширяться в зависимости от того, что больше.

Так что вам нужно удалить ограничение нижней привязки jobTitleDetailedLabel и добавить:

contentView.bottomAnchor.constraint(greaterThanOrEqualTo: profileImageView.bottomAnchor, constant: 10).isActive = true
contentView.bottomAnchor.constraint(greaterThanOrEqualTo: jobTitleDetailedLabel.bottomAnchor, constant: 10).isActive = true

Также установите для contentHuggingPriority nameLabel значение high, чтобы гарантировать, что nameLabel сохраняет свою собственную высоту (высоту, которую занимает текст).

nameLabel.setContentHuggingPriority(UILayoutPriority.defaultHigh, for: .vertical)

Наконец, установите высоту строки ячейки на UITableviewAutomaticDimension в раскадровке или с помощью кода - tableView.rowHeight = UITableViewAutomaticDimension

0 голосов
/ 08 мая 2018

Просто добавьте ограничение высоты jobTitleDetailedLabel, чтобы оно равнялось greaterThanOrEqualToConstant profileImageView height + 10 для поля

потому что, если jobTitleDetailedLabel высота меньше, чем Image hight, это сделает его небольшим рядом ячеек

self.jobTitleDetailedLabel.heightAnchor.constraint(greaterThanOrEqualToConstant: 60).isActive = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...