#浅析CALayer

2016-12-21  本文已影响18人  Z了个L

// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end

// ViewController.m

#import "ViewController.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet UIView *redView;
@property (weak, nonatomic) IBOutlet UIImageView *imageV;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self UIViewLayer];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    
    //只有在旋转的时候才能看3D
    [UIView animateWithDuration:0.5 animations:^{
        
        // 旋转
//        self.imageV.layer.transform = CATransform3DMakeRotation(M_PI, 0.5, 0, 0);
//        self.imageV.layer.transform = CATransform3DMakeScale(0.5, 0.5, 0);
//        self.imageV.layer.transform = CATransform3DTranslate(self.imageV.layer.transform, 100, 0, 0);
        self.imageV.layer.transform = CATransform3DRotate(self.imageV.layer.transform, M_PI, 0.5, 0, 0);
        // 把结构体转成对象
        // 通过KVC做一些快速平移旋转,缩放
//         NSValue *value = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(M_PI, 1, 1, 0)];
//        [self.imageV.layer setValue:@(M_PI) forKeyPath:@"transform.scale.x"];
    }];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {

    //设置边框(边框宽度往里走的)
    self.imageV.layer.borderColor = [UIColor greenColor].CGColor;
    self.imageV.layer.borderWidth = 3;

    //设置阴影
    self.imageV.layer.shadowColor = [UIColor blueColor].CGColor;
    self.imageV.layer.shadowOpacity = 1;
    self.imageV.layer.shadowOffset = CGSizeMake(-10, 10);
    self.imageV.layer.shadowRadius = 10;

    //设置圆角
    self.imageV.layer.cornerRadius = 50;
    //超过根层以久的内容就会自动裁剪掉
    self.imageV.layer.masksToBounds = YES;

//    NSLog(@"%@",self.imageV.layer.sublayers);
//    NSLog(@"%@",self.imageV.layer.contents);
}


- (void)UIViewLayer {

    //设置边框(边框宽度往里走的)
    self.redView.layer.borderColor = [UIColor greenColor].CGColor;
    self.redView.layer.borderWidth = 3;
    //设置阴影
    self.redView.layer.shadowColor = [UIColor blueColor].CGColor;
    self.redView.layer.shadowOpacity = 1;
    self.redView.layer.shadowOffset = CGSizeMake(-10, 10);
    self.redView.layer.shadowRadius = 10;

    //设置圆角
    self.redView.layer.cornerRadius = 50;
}


@end


上一篇下一篇

猜你喜欢

热点阅读