gpt4 book ai didi

swift - UIImageView 与aspectToFil 并仅裁剪图像的顶部

转载 作者:行者123 更新时间:2023-11-30 11:27:08 25 4
gpt4 key购买 nike

我有一个垂直大的长图像,例如 500pt x 1000pt。

我正在尝试显示图像的最底部。所以,我想剪掉图像的顶部。

但是,contentMode =spectToFil 裁剪图像的顶部和底部,并显示图像的中间。

下面有说明图片。

还有什么更好的办法吗?

注意:我无法使用contentMode = Bottom。因为图片太大了。

aspectToFil

最佳答案

您可以裁剪图像CGImage.cropping(to: CGRect)

CGRect 的原点设置为要开始裁剪的右上角,并将大小设置为所需裁剪的大小。然后从该 cgImage 初始化图像。

let foo = UIImage(named: "fooImage")
guard let croppedCGImage = foo?.cgImage?.cropping(to: CGRect(x: 200, y: 200, width: 375, height: 400) else { return }
guard let croppedImage = UIImage(cgImage: croppedCGImage) else { return }

Apple Documentation

Playground 预览 enter image description here

编辑:使用@IBDesignable@IBInspectable添加示例

Video showing storyboard/nib usage

@IBDesignable
class UIImageViewCroppable: UIImageView {

@IBInspectable public var isCropped: Bool = false {
didSet { updateImage() }
}

@IBInspectable public var croppingRect: CGRect = .zero {
didSet { updateImage() }
}

func updateImage() {
guard isCropped else { return }
guard let croppedCGImage = image?.cgImage?.cropping(to: croppingRect) else { return }
image = UIImage(cgImage: croppedCGImage)
}
}

关于swift - UIImageView 与aspectToFil 并仅裁剪图像的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50619748/

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