You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码设置UIImageView约束后无法按比例适配屏幕尺寸问题

问题描述

我创建的CollectionViewCell垂直空间有限,希望在垂直方向放置UIImageView与Label,且UIImageView可随屏幕尺寸伸缩。但目前ImageView垂直方向已变大,图片却因水平尺寸固定无法维持比例。

相关代码
private lazy var assetImageView: UIImageView = {
    let imageView = UIImageView()
    imageView.backgroundColor = .red
    imageView.translatesAutoresizingMaskIntoConstraints = false
    imageView.tintColor = .secondaryLabel
    imageView.contentMode = .scaleAspectFit
    imageView.setContentHuggingPriority(.defaultLow, for: .vertical)
    imageView.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
    return imageView
}()

func configureViews() {
    contentView.addSameSizeConstrained(subView: containerView)
    containerView.addSubview(assetImageView)
    containerView.addSubview(assetTypeLabel)
    containerView.addSubview(assetCountLabel)

    NSLayoutConstraint.activate([
        assetImageView.leadingAnchor.constraint(
            equalTo: containerView.leadingAnchor,
            constant: AppLayoutGuidance.spacing
        ),
        assetImageView.topAnchor.constraint(equalTo: containerView.topAnchor, constant: AppLayoutGuidance.spacingHalf),

        assetTypeLabel.leadingAnchor.constraint(
            equalTo: assetImageView.trailingAnchor,
            constant: AppLayoutGuidance.spacingHalf
        ),
        assetTypeLabel.trailingAnchor.constraint(
            equalTo: containerView.trailingAnchor,
            constant: -AppLayoutGuidance.spacing
        ),
        assetTypeLabel.centerYAnchor.constraint(equalTo: assetImageView.centerYAnchor),

        assetCountLabel.leadingAnchor.constraint(equalTo: assetImageView.leadingAnchor),
        assetCountLabel.trailingAnchor.constraint(equalTo: assetTypeLabel.trailingAnchor),
        assetCountLabel.topAnchor.constraint(
            equalTo: assetImageView.bottomAnchor,
            constant: AppLayoutGuidance.spacingHalf
        ),
        assetCountLabel.bottomAnchor.constraint(
            equalTo: containerView.bottomAnchor,
            constant: -AppLayoutGuidance.spacingHalf
        ),
    ])
}
模拟器界面截图

模拟器界面截图


内容的提问来源于stack exchange,提问作者Ogün Birinci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:32:05