CAShapeLayer把图片做成圆形效果

来源:互联网 发布:php面试代码题 编辑:程序博客网 时间:2024/04/29 08:52

第一种方法:直接传入视图和直径即可

  1. -(void)setRoundedView:(UIImageView *)roundedView toDiameter:(float)newSize   
  2. {     
  3.  CGPoint saveCenter = roundedView.center;     
  4.  CGRect newFrame =CGRectMake(roundedView.frame.origin.x, roundedView.frame.origin.y, newSize, newSize);    
  5.  roundedView.frame = newFrame;    
  6.  roundedView.layer.cornerRadius = newSize / 2.0;    
  7.  roundedView.center = saveCenter; 
  8. }

第二种方法:

CAShapeLayer把图片做成圆形效果

利用CAShapeLayer可以制作出任意的几何图形,把它作为UIImageView的遮罩,达到把图片做成圆形效果。

        //创建个人主页头部的用户头像

        self.userHead = [[UIImageView alloc]initWithFrame:CGRectMake(10, 35, 80, 80)];
        self.userHead.image = [UIImage imageNamed:@"start.jpg"];
        
        //创建圆形遮罩,把用户头像变成圆形
        UIBezierPath* path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(40, 40) radius:40 startAngle:0 endAngle:2*M_PI clockwise:YES];
        CAShapeLayer* shape = [CAShapeLayer layer];
        shape.path = path.CGPath;
        self.userHead.layer.mask = shape;

        [self addSubview:self.userHead];



原文地址:http://blog.csdn.net/kingsley_cxz/article/details/9671917


0 0