UIImageView 缩小底部空间
Posted
技术标签:
【中文标题】UIImageView 缩小底部空间【英文标题】:UIImageView downscale bottom space 【发布时间】: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
也无济于事
【问题讨论】:
【参考方案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()以上是关于UIImageView 缩小底部空间的主要内容,如果未能解决你的问题,请参考以下文章