我有一个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方法添加它们......没什么好看的......
答案 0 :(得分:0)
尝试转换“YOUR”_layerMgr.transform而不是创建一个新的:
例如:
[_layerMgr setTransform:CGAffineTransformScale (_layerMgr.transform, 2, 2)];