很简单的一份代码,相信各位吴彦祖以及梁朝伟都会只是会有点浪费时间,废话不多说,上代码。
- (void)drawRect:(CGRect)rect {
// Drawing code
CGSize arrowSize = CGSizeMake(10, 10);
CGFloat cornerRadius = 4;// 圆角角度
CGFloat selfWidth = rect.size.width;
CGFloat selfHeight = rect.size.height;
// 获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// 矩形填充颜色
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextMoveToPoint(context, cornerRadius, 0);
CGFloat rightContetMaxX = selfWidth - arrowSize.width;
CGContextAddArcToPoint(context, rightContetMaxX, 0, rightContetMaxX, selfHeight/2 - arrowSize.height/2, cornerRadius);
CGContextAddLineToPoint(context, rightContetMaxX, selfHeight/2 - arrowSize.height/2);
CGContextAddArcToPoint(context, selfWidth, selfHeight/2, rightContetMaxX, selfHeight/2 + arrowSize.height/2, 2);
CGContextAddArcToPoint(context, rightContetMaxX, selfHeight/2 + arrowSize.height/2, rightContetMaxX, selfHeight, 2);
CGContextAddArcToPoint(context, rightContetMaxX, selfHeight, 0, selfHeight, cornerRadius);
CGContextAddArcToPoint(context, 0, selfHeight, 0, selfHeight - cornerRadius, cornerRadius);
CGContextAddArcToPoint(context, 0, 0, cornerRadius, 0, cornerRadius);
CGContextDrawPath(context, kCGPathFill);
// 必须要在调用super之前绘制完成否则会出现当前view中的文字无法显示问题。
[super drawRect:rect];
}
simulator_screenshot_2C49A3B5-B9AA-47E6-99DC-4D5C98BA1032.png
网友评论