如何绘制三角形UIButton

时间:2015-05-19 01:30:40

标签: ios uibutton core-graphics cgcontext

我真的挖了IFTTT右下角按钮,如图所示(右下角)。

enter image description here

我尝试使用CGContextUIBezierPath来匹配效果,但我根本不了解这一点。有没有人对如何实现这一点有一些想法/代码?

谢谢!

2 个答案:

答案 0 :(得分:5)

首先使用CAShapeLayer创建遮罩

CAShapeLayer * shapeLayer = [CAShapeLayer layer];
//Use these to create path
CGMutablePathRef path = CGPathCreateMutable();
// CGPathMoveToPoint
// CGPathAddLines
shapeLayer.path = path;

然后设置按钮的掩码

yourbutton.layer.mask = shapeLayer
yourbutton.masksToBounds = YES;

视图示例

  CAShapeLayer * shapeLayer = [CAShapeLayer layer];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, nil, 0, CGRectGetHeight(self.testview.frame));
CGPathAddLineToPoint(path, nil, CGRectGetWidth(self.testview.frame), 0);
CGPathAddLineToPoint(path, nil, CGRectGetWidth(self.testview.frame), CGRectGetHeight(self.testview.frame));
CGPathCloseSubpath(path);
shapeLayer.path = path;
self.testview.layer.masksToBounds = YES;
self.testview.layer.mask = shapeLayer;

屏幕截图:

enter image description here

答案 1 :(得分:0)

制作一个方形按钮,将三角形图像放入其中。那也不行吗?为了使幻觉更好,请为onclick()事件和ontouch()绘制单独的图像。禁用默认按钮和按钮单击动画以使其看起来真实。