ios - 如何将 UIEdgeInsets 应用于 CGImage?

标签 ios swift cgimage

如何将 UIEdgeInsets(或其某些变体)应用于 CGImage?这是我最终要实现的目标,但是 CGImage 在转换为 CGImage 之前无法识别应用于 UIImage 的底部插图>.

var image = someUIImage
image = image.withAlignmentRectInsets(UIEdgeInsets(top: 0, left: 0, bottom: (image.size.height / 2), right: 0))
let imageCG: CGImage = image.cgImage!
layer.contents = imageCG


而且我无法直接将插图应用于 CGImage(如此处所示)。

let image = someUIImage.cgImage!
image. // can't apply any inset here
layer.contents = image

解决方法?

最佳答案

您不能将 UIEdgeInsets 应用于 CGImage,因为 CGImage 没有 alignmentRectInsets 属性. UIImage 存储了一些 CGImage 没有的属性,包括 alignmentRectInsets

请注意,alignmentRectInsets 属性的存在是为了影响自动布局如何构成包含图像的 UIImageViewUIImageView 根据其 UIImagealignmentRectInsets 设置自己的 alignmentRectInsets。自动布局然后在计算 UIImageView 的框架时使用对齐矩形。

自动布局不适用于图层,因此 CALayer 不需要 alignmentRectInsets 属性。

换句话说,您的要求没有任何意义。

如果您修改您的问题以解释您想要的视觉效果,我可能会就如何获得它提供建议。

关于ios - 如何将 UIEdgeInsets 应用于 CGImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46201806/

相关文章:

ios - Sprite-kit physicsBody apply脉冲

ios - 如何在 iOS 中使用 OpenGL 播放视频?

iOS 图片上传到 AWS S3 Bucket 非常慢

来自 UIImage/CGImage 的 iOS 图层蒙版?

ios - 从返回 CGImageRef 的 C 函数将 UnsafeRawPointer 转换为 CGImage 会使 Swift 4 崩溃

ios - 在 Swift 中获取坐标 (x,y) 处 UILabel 的值

ios - UITextView 的动态圆角半径

swift - MPMoviePlayerController 自定义控件( subview )

ios - 在 Swift 中动态创建 uiviewcontroller

ios - 加载 UIImage 并删除原始文件