CAShapeLayer 的缩放问题(transform.scale)

rollrock1987 2014-07-09 09:55:01
{

UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
btn.backgroundColor = [UIColor grayColor];
btn.layer.cornerRadius = 50;
[self.view addSubview:btn];

[btn addTarget:self action:@selector(clicked) forControlEvents:UIControlEventTouchUpInside];


UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 100, 100) cornerRadius:50];

layer = [CAShapeLayer layer];
layer.path = [path CGPath];
layer.fillColor = [[UIColor clearColor] CGColor];
layer.lineCap = kCALineCapRound;
layer.lineWidth = 1.0;
layer.strokeColor = [[UIColor redColor] CGColor];

[btn.layer addSublayer:layer];

}


-(void)clicked
{
NSLog(@"clicked");

CABasicAnimation * anim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
anim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(3, 3, 1)];
anim.duration = 3.0;

[layer addAnimation:anim forKey:@"animateTransform"];

}


一个按钮,圆形的,按钮的layer上放置了一个 CAShapeLayer,填充为透明,边框为红色的。
按钮点击的时候,边框从按钮的中心点向四周放大。

现在的现象是,layer居然往右下角放大移动,并且边框大小也变大了。
请问我的代码哪里出现了问题?
谢谢~~~
...全文
377 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
华哥JJ 2014-07-19
  • 打赏
  • 举报
回复
楼主 问题解决没呢 也碰到了类似的问题呢
rollrock1987 2014-07-11
  • 打赏
  • 举报
回复
艾玛 木有人

29,031

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧