Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用.png将UIView剪辑到UIIimage(UIImageView)_Objective C_Ios_Cocoa Touch - Fatal编程技术网

Objective c 使用.png将UIView剪辑到UIIimage(UIImageView)

Objective c 使用.png将UIView剪辑到UIIimage(UIImageView),objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我有几张UIImage的。它们都是.png格式的。我需要将另一个图像或UIView剪辑到UIImage的不透明部分。一些图像的外部边缘具有一定的透明度。如果我使用clipsToBounds,它将仅剪辑到UIImageView的帧,而不是实际图像。如果我把线剪到相同的高度,它的中心看起来很好,但我需要将线的位置偏离中心,有时向右或向左。请看照片以便更好地解释。我已经尝试了一些使用核心Gaphics的方法,但遗憾的是,我还没有找到解决方案 您可以尝试使用CALayer的mask属性。 它允许您定义

我有几张UIImage的。它们都是.png格式的。我需要将另一个图像或UIView剪辑到UIImage的不透明部分。一些图像的外部边缘具有一定的透明度。如果我使用clipsToBounds,它将仅剪辑到UIImageView的帧,而不是实际图像。如果我把线剪到相同的高度,它的中心看起来很好,但我需要将线的位置偏离中心,有时向右或向左。请看照片以便更好地解释。我已经尝试了一些使用核心Gaphics的方法,但遗憾的是,我还没有找到解决方案


您可以尝试使用
CALayer
mask
属性。 它允许您定义

可选层,其alpha通道用作选择的遮罩 在图层背景和合成图层的结果之间 图层内容及其过滤背景

要将视图遮罩为.png,请将遮罩层的
内容设置为
CGImageRef

记住导入
QuartzCore
框架

您可以尝试使用
CALayer
mask
属性。 它允许您定义

可选层,其alpha通道用作选择的遮罩 在图层背景和合成图层的结果之间 图层内容及其过滤背景

要将视图遮罩为.png,请将遮罩层的
内容设置为
CGImageRef

记住导入
QuartzCore
框架

看看CALayer的mask属性。您可以设置一个图层,该图层的不透明度将用作视图图层(yourUIImageView.layer.mask)的alpha信息

例如,您可以使用CAGradientLayer向视图添加alpha渐变,或者使用其他UIImageview的层(如果它具有alpha通道)


编辑:Jenox速度更快,提供了更多信息,所以他的答案应该标记为正确

看看CALayer的掩码属性。您可以设置一个图层,该图层的不透明度将用作视图图层(yourUIImageView.layer.mask)的alpha信息

例如,您可以使用CAGradientLayer向视图添加alpha渐变,或者使用其他UIImageview的层(如果它具有alpha通道)

编辑:Jenox速度更快,提供了更多信息,所以他的答案应该标记为正确