【问题标题】:UIImageView downscale bottom spaceUIImageView 缩小底部空间
【发布时间】:2019-07-30 20:55:47
【问题描述】:

我有两个具有相同约束和锚点的图像。 当我缩小其中一个时,我在父视图(红色背景)和 UIImageView(绿色背景)之间得到空的底部空间。 左图比例为 100%,右图为 80%

约束代码:

imageView.heightAnchor.constraint(equalToConstant: 32).isActive = true
imageView.widthAnchor.constraint(equalToConstant: 32).isActive = true
imageView.centerXAnchor.constraint(equalTo: view.centerXAnchor, constant: 0).isActive = true
imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true

缩小代码:

imageView.transform = CGAffineTransform(scaleX: scale, y: scale)

如何将缩小的图像移动到视图的底线以避免 UIView 和 UIImageView 底部之间的空间?

更新:

同时设置imageView.contentMode = .bottom 也无济于事

【问题讨论】:

    标签: swift xcode


    【解决方案1】:

    使用UIImageView.contentMode:

    imageView.contentMode = .bottom
    

    阅读有关内容模式的更多信息here

    编辑:

    你不应该缩放 UIImageView。你正在做的事情有点奇怪,因为你正在缩小它,然后又用约束再次放大它。相反,scale the image itself

    【讨论】:

    • 我试过了,但是这种模式只是让图像变小了,并没有反映到 UIImageView。我更新了我的问题
    • 查看我的编辑。另外,你到底想要什么?您想要视图底部的图像还是红色视图底部的绿色视图?为什么不让红色视图成为图像视图?
    【解决方案2】:
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        imageView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: imageView.bounds.height - imageView.frame.height).isActive = true
    }
    

    before

    after re layout view 并在转换后调用 view.layoutIfNeeded()

    【讨论】:

    • 转换后调用 view.layoutIfNeeded()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2019-08-28
    • 2020-12-05
    相关资源
    最近更新 更多