少说废话直接上代码
CGSize size = view.bounds.size;
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(contextRef, 1);
CGContextSetStrokeColorWithColor(contextRef, [UIColor clearColor].CGColor);
CGContextSetFillColorWithColor(contextRef, view.backgroundColor.CGColor);
view.backgroundColor = [UIColor clearColor];
CGFloat halfBorderWidth = 1 / 2.0;
CGFloat width = size.width;
CGFloat height = size.height;
CGContextMoveToPoint(contextRef, width - halfBorderWidth, radius + halfBorderWidth);
if (corner == UIRectCornerAllCorners) {
CGContextAddArcToPoint(contextRef, width - halfBorderWidth, height - halfBorderWidth, width - radius - halfBorderWidth, height - halfBorderWidth, radius); // 右下角角度
CGContextAddArcToPoint(contextRef, halfBorderWidth, height - halfBorderWidth, halfBorderWidth, height - radius - halfBorderWidth, radius); // 左下角角度
CGContextAddArcToPoint(contextRef, halfBorderWidth, halfBorderWidth, width - halfBorderWidth, halfBorderWidth, radius); // 左上角
CGContextAddArcToPoint(contextRef, width - halfBorderWidth, halfBorderWidth, width - halfBorderWidth, radius + halfBorderWidth, radius); // 右上角
}
else {
if (corner & UIRectCornerBottomRight) {
CGContextAddArcToPoint(contextRef, width - halfBorderWidth, height - halfBorderWidth, width - radius - halfBorderWidth, height - halfBorderWidth, radius); // 右下角角度
CGContextMoveToPoint(contextRef, width - radius - halfBorderWidth, height - halfBorderWidth);
}
else {
CGContextAddLineToPoint(contextRef, width - halfBorderWidth, height - halfBorderWidth); // 右下角角度
}
if (corner & UIRectCornerBottomLeft) {
CGContextAddArcToPoint(contextRef, halfBorderWidth, height - halfBorderWidth, halfBorderWidth, height - radius - halfBorderWidth, radius); // 左下角角度
CGContextMoveToPoint(contextRef, halfBorderWidth, height - radius - halfBorderWidth);
}
else {
CGContextAddLineToPoint(contextRef, halfBorderWidth, height - halfBorderWidth); // 左下角角度
}
if (corner & UIRectCornerTopLeft) {
CGContextAddArcToPoint(contextRef, halfBorderWidth, halfBorderWidth, width - halfBorderWidth, halfBorderWidth, radius); // 左上角
CGContextAddLineToPoint(contextRef, width - halfBorderWidth, halfBorderWidth);
}
else {
CGContextAddLineToPoint(contextRef, halfBorderWidth, halfBorderWidth); // 左上角
}
if (corner & UIRectCornerTopRight) {
CGContextAddArcToPoint(contextRef, width - halfBorderWidth, halfBorderWidth, width - halfBorderWidth, radius + halfBorderWidth, radius); // 右上角
CGContextAddLineToPoint(contextRef, width - halfBorderWidth, radius + halfBorderWidth);
}
else {
CGContextAddLineToPoint(contextRef, width - halfBorderWidth, halfBorderWidth); // 右上角
}
CGContextAddLineToPoint(contextRef, width - halfBorderWidth, radius + halfBorderWidth);
}
CGContextDrawPath(contextRef, kCGPathFillStroke);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[view viewWithTag:1999999] removeFromSuperview];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
imageView.frame = view.frame;
imageView.tag = 1999999;
[view insertSubview:imageView atIndex:0];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)