Swift: невозможно обрезать изображение в stackView - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь расположить imageView внутри stackView и не смог обрезать изображение.Компоновка была выполнена правильно, когда изображение не было вставлено, как показано:

enter image description here

Однако при вставке фиктивного изображения (портретного изображения) для проверкиcontentMode и clipsToBounds, он растянулся, вот так:

enter image description here

Я прочитал эту запись и также пыталсярасположите 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)
            ])

Любой совет?

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