如何在UIImageView中添加箭头?

Mas*_*adi 1 uiview uiimageview uiimage ios

我必须在箭头中UIImageView.它可能就像一个透明的空间UIImageView.附上样本图像并用黄色框突出显示. 在此输入图像描述

Leo*_*Leo 6

使用遮罩,例如,您有200*100的图像 在此输入图像描述

CAShapeLayer * shapeLayer = [CAShapeLayer layer];
UIBezierPath * bezierPath = [UIBezierPath bezierPath];
[bezierPath moveToPoint:CGPointMake(0, 0)];
[bezierPath addLineToPoint:CGPointMake(0,100)];
[bezierPath addLineToPoint:CGPointMake(10,100)];
[bezierPath addLineToPoint:CGPointMake(20,90)];
[bezierPath addLineToPoint:CGPointMake(30, 100)];
[bezierPath addLineToPoint:CGPointMake(200,100)];
[bezierPath addLineToPoint:CGPointMake(200, 0)];
[bezierPath closePath];
shapeLayer.path = bezierPath.CGPath;
self.imageview.layer.mask = shapeLayer;
Run Code Online (Sandbox Code Playgroud)

注意:剪辑部分仍然可以捕捉触摸事件或手势作为一部分Imageview,您可以重写pointInside为忽略触摸事件

编辑关于它的工作原理

你只需要创建你喜欢的任何形状,关于代码我只是创建这样的形状,然后使用这个形状来设置蒙版

所以,如果你想制作一个右箭头,只需创建一个这样的形状

CAShapeLayer * shapeLayer = [CAShapeLayer layer];
UIBezierPath * bezierPath = [UIBezierPath bezierPath];
[bezierPath moveToPoint:CGPointMake(0, 0)];
[bezierPath addLineToPoint:CGPointMake(0,100)];
[bezierPath addLineToPoint:CGPointMake(170,100)];
[bezierPath addLineToPoint:CGPointMake(180,90)];
[bezierPath addLineToPoint:CGPointMake(190, 100)];
[bezierPath addLineToPoint:CGPointMake(200,100)];
[bezierPath addLineToPoint:CGPointMake(200, 0)];
[bezierPath closePath];
shapeLayer.path = bezierPath.CGPath;
Run Code Online (Sandbox Code Playgroud)

形状截图

所以,你需要的是

  • 找出你想要的形状(轮廓面具形状)
  • 使用bezierPath绘制
  • 设置面具