CALayer 想解释

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/S_xiajinghan/article/details/52585553
 CALayer *layer = [CALayer layer];
    layer.
backgroundColor = [UIColor redColor].CGColor;
    layer.
bounds = CGRectMake(0, 0, 100, 100);
    layer.
position = CGPointMake(200, 100);
    layer.
cornerRadius = 10;
    layer.
masksToBounds = YES;
    layer.
contents = (id)[UIImage imageNamed:@"lufy"].CGImage;
    [
self.view.layer addSublayer:layer];
}

也可以设置阴影 阴影的 范围 透明度
    // 阴影颜色
   
self.purpleView.layer.shadowColor = [UIColor blueColor].CGColor;
   
// 阴影偏差
   
self.purpleView.layer.shadowOffset = CGSizeMake(20, 20);
   
// 阴影不透明度
    self.purpleView.layer.shadowOpacity = 0.5

隐式 动画:
    self.layer.backgroundColor = [UIColor blueColor].CGColor;
    [
CATransaction begin]; // 开启事务
    [
CATransaction setDisableActions:YES];
   
   
self.layer.position = CGPointMake(100, 200);
   
self.layer.opacity = 0.5;
   
    [CATransaction commit]; // 提交事务
展开阅读全文

CALayer 坐标转换的问题

08-01

[img=https://img-bbs.csdn.net/upload/201408/01/1406862420_64488.jpg][/img]rn如果所示rn我需要实现的功能是 上面的圆圈的中心点 ,以中间的 (240,160)为中心点,围绕着半径为100的虚线圆圈做圆周运动。rn数据如下:rnrn上面ROUND在屏幕上的坐标:(220,40,40,40)rn圆周运动R=100rn圆周运动中心点 (240,160)rnrn UIButton * _btn;rn在viewDidLoad里面rnrn[code=objc]rnrn 在viewDidLoad里面rn CGRect rect = CGRectMake(220,40,40,40);rn _btn = [[UIButton alloc]initWithFrame:rect];rn _btn.layer.cornerRadius = 40/2;rn rn _btn.backgroundColor = [UIColor redColor];rn rn [self.view addSubview:_btn];rn//////////////////////////////////////////////////////////////////////////////////////////////////////////////rnrn-(void)startAnimrnrn //rn CGRect rect = CGRectMake(x, y, 100*2, 100*2);rn rn CAKeyframeAnimation *orbit = [CAKeyframeAnimation animation];rn orbit.keyPath = @"position";rn orbit.path = CFAutorelease(CGPathCreateWithEllipseInRect(rect, NULL));rn orbit.duration = 4;rn orbit.additive = YES;rn orbit.repeatCount = HUGE_VALF;rn orbit.calculationMode = kCAAnimationPaced;rn orbit.rotationMode = kCAAnimationRotateAuto;rn rn [_btn.layer addAnimation:orbit forKey:@"orbit"];rnrn[/code]rnrnrn现在的疑问是 CGRect rect = CGRectMake(x, y, 100*2, 100*2); 里面的 x,y 应该怎么确定,不知道怎么算出来。rn关于 layer的原点,锚点什么的 我都看过文档了,但是就是不对。rn这里的x,y是相对于谁的桌标呢?是在self.view的坐标呢 还是 _btn的坐标?rnrnrn 论坛

没有更多推荐了,返回首页