Я пытаюсь расположить imageView
внутри stackView
и не смог обрезать изображение.Компоновка была выполнена правильно, когда изображение не было вставлено, как показано:
Однако при вставке фиктивного изображения (портретного изображения) для проверкиcontentMode
и clipsToBounds
, он растянулся, вот так:
Я прочитал эту запись и также пыталсярасположите imageView
внутри UIView
перед укладкой в stackView, но он все равно даст тот же результат.Обратите внимание, что я хотел бы, чтобы мои две метки приняли его intrinsicContentSize
, поскольку titleLabel
может занимать 1 или 2 строки.Я бы хотел, чтобы imageView корректировался соответствующим образом.
Моя реализация:
let drawingPreviewImageView: UIImageView = {
let iv = UIImageView()
iv.translatesAutoresizingMaskIntoConstraints = false
iv.image = UIImage(named: "testImage")
iv.backgroundColor = .lightGray
iv.contentMode = .scaleAspectFill
iv.clipsToBounds = true
iv.layer.masksToBounds = true
return iv
}()
let stackView = UIStackView(arrangedSubviews: [
drawingPreviewImageView,
numberLabel,
titleLabel,
])
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.axis = .vertical
stackView.spacing = 4
stackView.isLayoutMarginsRelativeArrangement = true
stackView.layoutMargins = UIEdgeInsets(top: 4, left: 4, bottom: 4, right: 4 )
addSubview(stackView)
NSLayoutConstraint.activate([
stackView.topAnchor.constraint(equalTo: topAnchor),
stackView.leadingAnchor.constraint(equalTo: leadingAnchor),
stackView.trailingAnchor.constraint(equalTo: trailingAnchor),
stackView.bottomAnchor.constraint(equalTo: bottomAnchor)
])
Любой совет?