Main.storyboard
ViewConroller.m
//
// ViewController.m
// 7A10.图层基本使用
//
// Created by huan on 16/2/3.
// Copyright © 2016年 huanxi. All rights reserved.
//
#import "ViewController.h"
#import "UIImage+CZ.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIView *redView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//学习CALayer的属性
//获取圆角图片
UIImage *image = [UIImage cornerImageWithImageName:@"papa" cornerRadius:10 borderWidth:2 borderColor:[UIColor redColor]];
//设置阴影(一定要配合透明度)
self.redView.layer.shadowColor = [UIColor blackColor].CGColor;
//设置阴影的透明度
self.redView.layer.shadowOpacity = 0.5;
//设置阴影的位置
self.redView.layer.shadowOffset = CGSizeMake(150, 150);
//设置内容 一般设置图片,并且的图片的数据类型为CGImageRef
self.redView.layer.contents = (id)image.CGImage;
/**
*1.如果设置了masksToBounds为Yes,阴影会不出来,原因,阴影也被切掉了
*2.如果你想有圆角的效果。又想有阴影,图片本来就有圆角效果
*3. 换句话说,自己把图片转换有圆角的图片,再显示
*/
}
-(void)test1{
//autoLayout影响的尺寸设置
//设置尺寸
self.redView.layer.bounds = CGRectMake(0, 0, 150, 150);
//设置边框的颜色(一定要设置宽度)
self.redView.layer.borderColor = [UIColor blackColor].CGColor;
//设置边框的宽度
self.redView.layer.borderWidth = 2;
//设置背景颜色
self.redView.layer.backgroundColor = [UIColor greenColor].CGColor;
//设置圆角效果
self.redView.layer.cornerRadius = 10;
//如果圆角周边的剪掉的话,设置一个属性
self.redView.layer.masksToBounds = YES;
//设置阴影(一定要配合透明度)
self.redView.layer.shadowColor = [UIColor blackColor].CGColor;
//设置阴影的透明度
self.redView.layer.shadowOpacity = 0.5;
//设置阴影的位置
self.redView.layer.shadowOffset = CGSizeMake(50, 50);
//设置内容 一般设置图片,并且的图片的数据类型为CGImageRef
self.redView.layer.contents = (id)[UIImage imageNamed:@"papa"].CGImage;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
UIImage+CZ.h
#import <UIKit/UIKit.h>
@interface UIImage (CZ)
//把一张图片,裁剪成圆角的效果,可设置圆角大小、边框、边框颜色的新图片
+(UIImage *)cornerImageWithImageName:(NSString *)imageName cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor;
@end
UIImage+CZ.m
//
// UIImage+CZ.m
// 7A10.图层基本使用
//
// Created by huan on 16/2/4.
// Copyright © 2016年 huanxi. All rights reserved.
//
#import "UIImage+CZ.h"
@implementation UIImage (CZ)
+(UIImage *)cornerImageWithImageName:(NSString *)imageName cornerRadius:(CGFloat)cornerRadius borderWidth:(CGFloat)borderWidth borderColor:(UIColor *)borderColor{
//生成一张新图片
UIImage *sourceImage = [UIImage imageNamed:imageName];
//1.开启一个位图上下文
UIGraphicsBeginImageContextWithOptions(sourceImage.size, NO, 0.0);
//2.把图片画在 位图上下文
//2.1 图片要剪裁成圆角
CALayer *layer = [CALayer layer];//图层里有一张图片
//图层设置大小(一定要设置)
layer.bounds = CGRectMake(0,0, sourceImage.size.width, sourceImage.size.height);
//设置内容
layer.contents = (id)sourceImage.CGImage;
//设置圆角
layer.cornerRadius = cornerRadius;
//裁剪
layer.masksToBounds = YES;
//边框
layer.borderWidth = borderWidth;
//边框的颜色
layer.borderColor = borderColor.CGColor;
[layer renderInContext:UIGraphicsGetCurrentContext()];
//3.从位图上下文 获取新图片
UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext();
//4.结束位图的编辑
UIGraphicsEndImageContext();
//5.返回新图片
return newImg;
}
@end
运行结果