你可以用戶view.layer.cornerRadius
設置圓角。
編輯:使用以下
layer.mask = MTDContextCreateRoundedMask(layer.bounds, topleftRadius, topRightRadius, bottomLeftRadius,bottomRightRadius);
這是支持的方法。
static inline UIImage* MTDContextCreateRoundedMask(CGRect rect, CGFloat radius_tl, CGFloat radius_tr, CGFloat radius_bl, CGFloat radius_br)
{
CGContextRef context;
CGColorSpaceRef colorSpace;
colorSpace = CGColorSpaceCreateDeviceRGB();
context = CGBitmapContextCreate(NULL, rect.size.width, rect.size.height, 8, 0, colorSpace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorSpace);
if (context == NULL) {
return NULL;
}
CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect);
CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect);
CGContextBeginPath(context);
CGContextSetGrayFillColor(context, 1.0, 0.0);
CGContextAddRect(context, rect);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);
CGContextSetGrayFillColor(context, 1.0, 1.0);
CGContextBeginPath(context);
CGContextMoveToPoint(context, minx, midy);
CGContextAddArcToPoint(context, minx, miny, midx, miny, radius_bl);
CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius_br);
CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius_tr);
CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius_tl);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathFill);
CGImageRef bitmapContext = CGBitmapContextCreateImage(context);
CGContextRelease(context);
UIImage *theImage = [UIImage imageWithCGImage:bitmapContext];
CGImageRelease(bitmapContext);
return theImage.layer.mask;
}
爲什麼不使用layer.cornerradius? – 2013-04-23 09:09:38
right @ LithuT.V我發表了那個答案,然後再發表評論:) – 2013-04-23 09:11:04
@ LithuT.V我已更新我的問題。 – Mert 2013-04-23 09:17:42