利用CAShapeLayer能够制作出随意的几何图形,把它作为UIImageView的遮罩,达到把图片做成圆形效果。
imgView = [[UIImageView alloc]initWithFrame:CGRectMake(10, 35, 80, 80)]; imgView.image = [UIImage imageNamed:@"ma.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; imgView.layer.mask = shape; [self.view addSubview:imgView];
以下在补充一个方法:
[m_photo.layer setCornerRadius:CGRectGetHeight([m_photo bounds]) / 2];//设置圆形半径 m_photo.layer.masksToBounds = YES; m_photo.layer.borderWidth = 1;//设置外环宽度 m_photo.layer.borderColor = [[UIColor greenColor] CGColor];//设置外环颜色 m_photo.layer.contents = (id)[[UIImage imageNamed:@"index.png"] CGImage];//设置图片