//
// ViewController.m
// 图层的基本使用
//
#import "ViewController.h"
#import "UIImage+CZ.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imgView;
@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.
//获取圆角图片
UIImage *image = [UIImage cornerImageWithImageName:@"papa" cornerRadius:10 borderWidth:2 borderColor:[UIColor redColor]];
// 学习CALayer的属性
//autoLayout影响的尺寸设置
// 设置阴影颜色
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(150, 150);
// 设置内容 一般设置图片,并且的图片的数据类型为CGImageRef
self.redView.layer.contents = (id)[UIImage imageNamed:@"papa"].CGImage;
/*
*1.如果你设置了masksToBounds为YES,阴影是不出,原因,阴影也被切掉了
*2.如果你想有圆角的效果,又想有阴影,图片本来就有圆角效果
*3.获取话说:自己把图片转换成有圆角的图片,再显示
*/
}
- (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
// 图层的基本使用
//
#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];//图层里有一张图片
#warning 图层的大小一定要设置
//图层设置大小
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