圆角iPhone的最有效方式

时间:2011-11-17 22:52:24

标签: objective-c ios core-graphics calayer

现在我知道圆角的方法不同但最有效的方法是什么?

图层路线:

view.layer.cornerRadius = 15.0f;
view.layer.shouldRasterize = YES;

或某种核心图形路线:

void roundTheRect(CGContextRef context, CGRect rect, float ovalWidth, float ovalHeight)
{
    float fw, fh;
    if (ovalWidth == 0 || ovalHeight == 0) {
        CGContextAddRect(context, rect);
        return;
    }
    CGContextSaveGState(context);
    CGContextTranslateCTM (context, CGRectGetMinX(rect), CGRectGetMinY(rect));
    CGContextScaleCTM (context, ovalWidth, ovalHeight);
    fw = CGRectGetWidth (rect) / ovalWidth;
    fh = CGRectGetHeight (rect) / ovalHeight;
    CGContextMoveToPoint(context, fw, fh/2);
    CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);
    CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);
    CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);
    CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);
    CGContextClosePath(context);
    CGContextRestoreGState(context);
}

1 个答案:

答案 0 :(得分:3)

始终以最高水平工作,有时工作水平低是不值得的。 view.layer.cornerRadius = 15.0f; 适用于任何UIView