gpt4 book ai didi

ios - 如何在 UIImageView 中获取 UIImage 的 x 和 y 位置?

转载 作者:行者123 更新时间:2023-11-28 05:42:13 24 4
gpt4 key购买 nike

当我们使用 scaleAspectFill 在 UIImageView 中设置它时,我想获得 UIImage 的原始 x 和 y 位置。

正如我们在 scaleAspectFill 中所知道的,一些部分被剪裁了。因此,根据我的要求,我想获得 x 和 y 值(它可能是 - 我不知道的值。)。

这是图库中的原图

original image

现在我将上面的图片设置为我的应用 View 。

Clipped image in my view

所以像上面的情况,我想得到它被剪裁的图像的隐藏 x, y 位置。

谁能告诉我如何得到它?

最佳答案

使用以下扩展

extension UIImageView {

var imageRect: CGRect {
guard let imageSize = self.image?.size else { return self.frame }

let scale = UIScreen.main.scale

let imageWidth = (imageSize.width / scale).rounded()
let frameWidth = self.frame.width.rounded()

let imageHeight = (imageSize.height / scale).rounded()
let frameHeight = self.frame.height.rounded()

let ratio = max(frameWidth / imageWidth, frameHeight / imageHeight)
let newSize = CGSize(width: imageWidth * ratio, height: imageHeight * ratio)
let newOrigin = CGPoint(x: self.center.x - (newSize.width / 2), y: self.center.y - (newSize.height / 2))
return CGRect(origin: newOrigin, size: newSize)
}

}

用法

let rect = imageView.imageRect
print(rect)

界面测试

let testView = UIView(frame: rect)
testView.backgroundColor = UIColor.red.withAlphaComponent(0.5)
imageView.superview?.addSubview(testView)

关于ios - 如何在 UIImageView 中获取 UIImage 的 x 和 y 位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56216119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com