CALayer anchorPoint无法按预期使用CGAffineTransform

时间:2011-09-30 19:13:17

标签: cocoa-touch ipad core-animation calayer cgaffinetransform

我有一个CALayer,包含很少的子图层(CATextLayers)。 我正在使用一些常用手势(缩放,平移)在CALayer上应用转换。 除了缩放(缩放)朝左下角而不是屏幕中心完成外,一切都运行得很好。

我在CoreAnimation编程指南中找到了一些信息,我尝试将锚点设置到我的屏幕中心,以便每次转换都会对该锚点进行....但它似乎没有按预期工作

这是我的代码:

//在init函数中:

  

_layerMgr = [[CALayer alloc] init];

     

_layerMgr.frame = [[UIScreen mainScreen] bounds];

     

_layerMgr.anchorPoint = CGPointMake(0.5,0.5);

//在手势事件上完成:

  

CGAffineTransform tt = CGAffineTransformMakeTranslation(offset.x,   -offset.y);

     

CGAffineTransform st = CGAffineTransformMakeScale(scale,scale);

     

CGAffineTransform rt = CGAffineTransformMakeRotation(旋转);

     

transform = CGAffineTransformConcat(tt,CGAffineTransformConcat(   st,rt));

     

_layerMgr.transform = CATransform3DMakeAffineTransform(_transform);

也许问题来自我的子视图?我已经使用addSubView方法添加它们......没什么好看的......

1 个答案:

答案 0 :(得分:0)

尝试转换“YOUR”_layerMgr.transform而不是创建一个新的:

例如:

[_layerMgr setTransform:CGAffineTransformScale (_layerMgr.transform, 2, 2)];