您的位置:首页 > 移动开发 > IOS开发

IOS之CALayer基本使用

2016-04-21 23:10 525 查看
自定义视图的layer
(void)myView_CALayer
{
UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 100, 100)];
[myView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:myView];
// 1) 圆角半径
myView.layer.cornerRadius = 50.0f;
// 2) 阴影
// 因为Core Animation是跨平台的,基于QuartzCore框架,是因为UIKit框架,仅能适用于iOS平台
// 在Core Animation中不能使用任何跟UI有关的方法
// 要设置阴影除了颜色之外,还需要指定其他偏移量和透明度参数
// 1> 阴影颜色
[myView.layer setShadowColor:[UIColor lightGrayColor].CGColor];
// 2> 阴影偏移量
[myView.layer setShadowOffset:CGSizeMake(0, 10)];
// 3> 阴影的透明度
[myView.layer setShadowOpacity:1.0f];
// 3) 边框
[myView.layer setBorderColor:[UIColor whiteColor].CGColor];
[myView.layer setBorderWidth:3.0f];
}
2.UIImageView的layer
- (void)myImageLayer_CALayer
{
UIImage *image = [UIImage imageNamed:@"test.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
[imageView setFrame:CGRectMake(50, 50, 200, 200)];

[self.view addSubview:imageView];

// 1. 圆角半径
// 提示,在imageView中,图层不止一个,如果要实现圆角效果,需要设置一个遮罩属性
// masksToBounds属性可以让imageView中的所有子图层跟随imageView一起变化
imageView.layer.cornerRadius = 50.0f;
[imageView.layer setMasksToBounds:YES];

// 2. 阴影
// 提示,如果设置了masksToBounds属性,imageView的阴影效果无效
[imageView.layer setShadowColor:[UIColor redColor].CGColor];
[imageView.layer setShadowOffset:CGSizeMake(10.0, 10.0)];
[imageView.layer setShadowOpacity:1.0];

// 3. 边框
[imageView.layer setBorderColor:[UIColor blueColor].CGColor];
[imageView.layer setBorderWidth:3.0f];

// 4. 形变属性,在CALayer中的形变属性是3D的,不再是2D的
// 提示,形变参数使用set方法时,只能应用一种形变
// 1> 平移属性(向上移动100个点)
//    [imageView.layer setTransform:CATransform3DMakeTranslation(0, -100, 0)];
//    // 2> 缩放属性
//    [imageView.layer setTransform:CATransform3DMakeScale(0.5, 1.0, 1.0)];
//    // 3> 旋转属性
//    // 提示:通常在旋转时指定z轴即可,要延哪个轴旋转,指定一个数值1.0即可
//    // 图像本身没有厚度,如果按照x或y旋转90度,图像是不可见的。
//    [imageView.layer setTransform:CATransform3DMakeRotation(M_PI_2, 0, 0, 1.0)];
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios CALayer