我正在尝试根据Pan手势移动一组CALayers。
我正在使用此代码:
-(void)handlePanFrom:(UIPanGestureRecognizer *)recognizer {
float newX = 0;
for (CALayer *layer in self.layer.sublayers)
{
[ layer setPosition:CGPointMake(layer.frame.origin.x + 50, layer.frame.origin.y)];
}
}
但是CALayers正朝着屏幕的一侧移动
我的问题是,我做错了吗?
CALayers不应该以这种方式移动吗?
谢谢!
答案 0 :(得分:1)
该位置实际上位于中心而不是原点(除非您更改了锚点,但我假设您没有)。
如果你想让图层向右移动50个点,那么你应该将你的位置改为中心+ 50.这样:
[layer setPosition:CGPointMake(layer.position.x + 50, layer.position.y)];
您永远不会使用平移手势识别器的值,因此对于每个平移事件,您将每层向右移动50个点。如果你的意思是“CALayers正在向屏幕的一侧移动”,那么这就是你做错了。层就像你告诉他们一样移动。