iOS圖層layer操做

#####圖層layer #####1.操做view圖層(代碼加註釋) #####1.1屬性操做git

#pragma mark - layerView
-(void)layView{
    //背景顏色
    self.lView.layer.backgroundColor=[UIColor yellowColor].CGColor;
    //線寬度
    self.lView.layer.borderWidth=1;
    //圖層的顏色都是核心繪圖框架,cg開頭
    //線條顏色
    self.lView.layer.borderColor=[UIColor redColor].CGColor;
    //陰影不透明度
    self.lView.layer.shadowOpacity=1;
    //陰影偏移量
    self.lView.layer.shadowOffset=CGSizeMake(5, 5);
    //圓角
    self.lView.layer.cornerRadius=20;
}

#####1.2變換操做github

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //圖層的3D變換
    //縮放
    [UIView animateWithDuration:1 animations:^{
        self.lView.layer.transform=CATransform3DScale(self.lView.layer.transform, 0.5, 0.5, 0.5);

        self.lView.layer.transform=CATransform3DMakeRotation(M_PI, 1, 1, 0);
    }];

    //
}

#####2. UIImageView的圖層操做 #####2.1 UIImageView的圖層操做框架

-(void) imageLayer{
    CALayer *layer=[CALayer layer];
    layer.frame=CGRectMake(0, 0, 200, 200);
    layer.backgroundColor=[UIColor redColor].CGColor;
    //    layer.contents=[UIImage imageNamed:@"阿狸頭像"];
    layer.contents=(id)[UIImage imageNamed:@"阿狸頭像"].CGImage;
    [self.imageView.layer addSublayer:layer];
}

#####2.2 UIImageView的圖層裁剪操做dom

圖片
-(void) imageLayer2{
    CALayer *layer=[CALayer layer];
    layer.frame=CGRectMake(0, 0, 200, 200);
    layer.backgroundColor=[UIColor redColor].CGColor;
    layer.cornerRadius=100;
    //    layer.contents=[UIImage imageNamed:@"阿狸頭像"];
    layer.contents=(id)[UIImage imageNamed:@"阿狸頭像"].CGImage;
    //超出主層邊框的內容所有裁剪掉
    layer.masksToBounds=YES;
    //添加邊框
    layer.borderColor=[UIColor greenColor].CGColor;
    layer.borderWidth=2;
    [self.imageView.layer addSublayer:layer];
}

#####3.隱式動畫動畫

  • 全部非root layer,也就是手動建立的calayer對象,纔會有隱式動畫。
- (void)viewDidLoad {
    [super viewDidLoad];
    self.layer=[CALayer layer];
    self.layer.frame=CGRectMake(150, 350, 80,80);
    self.layer.backgroundColor=[UIColor blueColor].CGColor;
    [self.view.layer addSublayer:self.layer];
}

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //
    CGFloat angle=(arc4random_uniform(360)+1)/(M_PI*2);
    self.layer.transform=CATransform3DMakeRotation(angle, 0, 0, 1);
}

#####4.源代碼詳細地址.net

相關文章
相關標籤/搜索