Центрировать изображение в ImageView внутри TableView - PullRequest
0 голосов
/ 19 июня 2020

Как центрировать ImageView внутри TableViewCell? Что бы я ни пробовал, оно выравнивается по левой стороне ...

Вот мой код для класса настраиваемых ячеек:

class CustomImageCell: UITableViewCell {

@IBOutlet weak var productImage: UIImageView!

override func awakeFromNib() {
    super.awakeFromNib()
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
}

override func layoutSubviews() {
    super.layoutSubviews()
    // Customize imageView like you need
    
}

}

А вот мой код для TableView (по крайней мере, та часть, где будет отображаться изображение):

    case 0:
           let cell = tableView.dequeueReusableCell(withIdentifier: "image", for: indexPath) as! CustomImageCell
//            cell.imageView?.contentMode = .scaleAspectFit
            cell.imageView?.image = MachineData.shared.machineImage
            cell.imageView?.addAspectRatioConstraint()
            
            return cell

А вот ограничения для imageview:

Constraints

Ограничения 2

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Актуальная проблема связана со ссылкой на просмотр изображения. tableViewCell имеет изображение по умолчанию, доступ к которому может получить cell.imageView. Теперь вы используете изображение по умолчанию вместо productImage.

Изображение должно быть productImage, а не imageView.

 cell.productImage.image = MachineData.shared.machineImage

Надеюсь, это исправит.

0 голосов
/ 19 июня 2020

попробуйте добавить ограничения программно следующим образом: сначала установите для вашего imageView translatesAutoresizingMaskIntoConstraints значение false

yourImageView.translatesAutoresizingMaskIntoConstraints  = false

после этого добавьте свой imageView и установите ограничения сверху и снизу:

addSubview(yourImaview)
    yourImaview.topAnchor.constraint(equalTo: topAnchor, constant: 5).isActive = true
    yourImaview.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -5).isActive = true
    yourImaview.widthAnchor.constraint(equalToConstant: 100).isActive = true
    yourImaview.centerXAnchor.constraint(equalTo: centerXAnchor).isActive = true

сейчас в контроллере табличного представления установите heightForRowAt с суммой высоты imageView + нижнее и верхнее пространство:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 190
}

Я полагаю, что вы можете ответить на него в раскадровке, назначить верхние и нижние ограничения с относительным пространством и установить heightForRowAt ... надеюсь на эту помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...