iOS头像效果的实现(边框、阴影、等效果)

效果图


屏幕快照 2017-04-21 下午1.08.21.png

代码如下:

//添加一个圆形图片,带内边框
         UIImageView *headImage=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
         [headImage setBackgroundColor:[UIColor blueColor]];
         headImage.layer.cornerRadius=50;      //设置圆形效果是根据这个imageVeiw的宽度来设定的
         headImage.image=[UIImage imageNamed:@"bitmap360.jpg"];
         headImage.contentMode=UIViewContentModeScaleAspectFill;
         headImage.clipsToBounds=YES;         //这里必须设置将图片剪切成圆形,而阴影效果是在园外的,所以不可以在这个ImageView添加阴影
      headImage.layer.borderWidth=3;        //虽然不可以添加阴影效果,但是可以添加一个内边框效果,感觉蛮好看的
         headImage.layer.borderColor=[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.6].CGColor;//设置颜色和透明度
        [self.view addSubview:headImage];
         //添加背景
         CALayer *layer=[[CALayer alloc]init];
        layer.position=headImage.layer.position;        //这里是个人喜好这么写
         layer.bounds=headImage.bounds;
         layer.cornerRadius=headImage.layer.cornerRadius;
         layer.backgroundColor=[UIColor blackColor].CGColor;  //这里必须设置layer层的背景颜色,默认应该是透明的,导致设置的阴影颜色无法显示出来
         layer.shadowColor=[UIColor grayColor].CGColor;     //设置阴影的颜色
         layer.shadowRadius=5;               //设置阴影的宽度
        layer.shadowOffset=CGSizeMake(2, 2);      //设置偏移
        layer.shadowOpacity=1;
         [self.view.layer addSublayer:layer];
        [self.view bringSubviewToFront:headImage];
         //添加手势
        UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickedTheImage)];//响应方法没写
         headImage.userInteractionEnabled=YES;   ///必须设置用户交互,手势才有用
        [headImage addGestureRecognizer:tap];

总结和注意事项
1.给imageView添加了图片并且设置了clipsToBounds后不可显示外部的阴影效果了,因为阴影效果就是在外部设置的,一经剪切就没有了,所以要再加一个CALayer来显示这个阴影效果。
2.给imgeView添加图片时要设置clipsToBounds=YES;这样才可以将图片设置为圆形;
3.imageView的边界效果是
headImage.layer.borderWidth=3;
headImage.layer.borderColor=[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.6].CGColor;
4.要在CALayer层显示阴影效果,必须设置CALayer的背景颜色
5.添加CALayer层之后要将ImageView设置到最前端
6.手势添加后要设置手势的交互,不然不能响应
headImage.userInteractionEnabled=YES

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,712评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,519评论 5 13
  • 标签: 一、目的:实现一个带有立体感效果的图像 二、效果图: 三、组成介绍: 1、一个UIImageView(用来...
    第七号菜鸟阅读 8,829评论 2 4
  • 转载://www.greatytc.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 11,471评论 0 13
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 9,210评论 1 4