



"btn.png"] forState:UIControlStateNormal];    btn1.clipsToBounds = YES;        //2.按钮不存在背景图片    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];    btn2.frame = CGRectMake(100, 180, 100, 100);    btn2.layer.cornerRadius = 50;    btn2.backgroundColor = [UIColor blueColor];    [self.view addSubview:btn2];    btn2.clipsToBounds = YES;        //3.UIImageView 设置了图片+背景色;  离屏渲染    UIImageView *img1 = [[UIImageView alloc]init];    img1.frame = CGRectMake(100, 320, 100, 100);    img1.backgroundColor = [UIColor blueColor];    [self.view addSubview:img1];    img1.layer.cornerRadius = 50;    img1.layer.masksToBounds = YES;    img1.image = [UIImage imageNamed
"btn.png"];        //4.UIImageView 只设置了图片,无背景色;    UIImageView *img2 = [[UIImageView alloc]init];    img2.frame = CGRectMake(100, 480, 100, 100);    [self.view addSubview:img2];    img2.layer.cornerRadius = 50;    img2.layer.masksToBounds = YES;    img2.image = [UIImage imageNamed
"btn.png"];
CGFloat)radius                                 corners
UIRectCorner)corners                             borderWidth
CGFloat)borderWidth                             borderColor
UIColor *)borderColor                          borderLineJoin
CGLineJoin)borderLineJoin {        if (corners != UIRectCornerAllCorners) {        UIRectCorner tmp = 0;        if (corners & UIRectCornerTopLeft) tmp |= UIRectCornerBottomLeft;        if (corners & UIRectCornerTopRight) tmp |= UIRectCornerBottomRight;        if (corners & UIRectCornerBottomLeft) tmp |= UIRectCornerTopLeft;        if (corners & UIRectCornerBottomRight) tmp |= UIRectCornerTopRight;        corners = tmp;    }        UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);    CGContextRef context = UIGraphicsGetCurrentContext();    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);    CGContextScaleCTM(context, 1, -1);    CGContextTranslateCTM(context, 0, -rect.size.height);        CGFloat minSize = MIN(self.size.width, self.size.height);    if (borderWidth < minSize / 2) {        UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectInset(rect, borderWidth, borderWidth) byRoundingCorners:corners cornerRadii:CGSizeMake(radius, borderWidth)];        [path closePath];                CGContextSaveGState(context);        [path addClip];        CGContextDrawImage(context, rect, self.CGImage);        CGContextRestoreGState(context);    }        if (borderColor && borderWidth < minSize / 2 && borderWidth > 0) {        CGFloat strokeInset = (floor(borderWidth * self.scale) + 0.5) / self.scale;        CGRect strokeRect = CGRectInset(rect, strokeInset, strokeInset);        CGFloat strokeRadius = radius > self.scale / 2 ? radius - self.scale / 2 : 0;        UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:strokeRect byRoundingCorners:corners cornerRadii:CGSizeMake(strokeRadius, borderWidth)];        [path closePath];                path.lineWidth = borderWidth;        path.lineJoinStyle = borderLineJoin;        [borderColor setStroke];        [path stroke];    }        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    return image;}1、使用 了mask的layer(layer.mask)
2、需要进行裁剪的layer(cornerRadius、layer.masksToBounds / view.clipsToBounds)
3、设置了组透明度为true,并且透明度不为1的layer(allowsGroupOpacity/opacity)
4、添加了投影layer(show*)
5、设置了光栅化的layer(shouldRasterize)
6、绘制了文字的layer(UILabel、CATextLayer、Core Text等)
| 欢迎光临 firemail (http://www.firemail.wang:8088/) | Powered by Discuz! X3 |