引入兩個(gè)類拓展 UIView+LM.h 和 CALayer+LMXYWH.h
http://www.reibang.com/p/03d38e6e25f9
#import "ViewController.h"
@interface ViewController ()<CALayerDelegate>
@property (strong,nonatomic)UIView *layerView;
@end
@implementation ViewController
#pragma mark - 控制器生命周期
- (void)viewDidLoad {
[super viewDidLoad];
[self setupUI];
}
#pragma mark - setupUI
-(void)setupUI
{
self.view.backgroundColor = [UIColor grayColor];
self.layerView = [[UIView alloc]init];
self.layerView.backgroundColor = [UIColor whiteColor];
self.layerView.W = 200;
self.layerView.H = 200;
self.layerView.center = SCREEN_CENTER;
[self.view addSubview:self.layerView];
//CALayer 的 contents 屬性 展示一張圖片
UIImage *image = [UIImage imageNamed:@"girl1.jpeg"];
self.layerView.layer.contents = (__bridge id)image.CGImage;
//1.1
//contentsGravity 決定內(nèi)容在圖層的邊界中的對(duì)齊方式
self.layerView.layer.contentsGravity = kCAGravityResizeAspect;
//contentsScale 目的不是放大0孀小癣朗!
//contentsGravity 會(huì)影響 contentsScale
//contentsScale 用來(lái)判斷在繪制圖層的時(shí)候應(yīng)該為寄宿圖創(chuàng)建的空間大小力穗, 和需要顯示的圖片的拉伸度电媳,類似于UIView中的contentScaleFactor
/**
//1.2
self.layerView.layer.contentsGravity =kCAGravityCenter;
self.layerView.layer.contentsScale = image.scale;
//2 maskToBounds
self.layerView.layer.masksToBounds = YES;
*/
//3 contentsRect 顯示寄宿圖中一個(gè)子域 0-1之間 是相對(duì)值
//self.layerView.layer.contentsRect = CGRectMake(0, 0, 0.5, 0.5);
//4 contentsCenter 在 Interface Builder 里可以配置 Stretching
// self.layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);
}
@end
QQ20170416-233618.png