我和CALayers有一段时间的麻烦。我创建了一个添加到UIImageView的图层。我希望这个图层在屏幕上获得与另一个视图相同的位置,就好像它是它的副本一样。但是当图层被添加到UIImageView时,它的坐标在NSLog中与“复制”视图相同,但是图层位置永远不会相同,每次我尝试看到不同的东西。我应该错过一些东西。
CALayer*layer=[CALayer layer];
layer.bounds =copiedImageView.bounds;
layer.contents=copiedImageView.layer.contents;
CGPoint theCenter=[targetImageView convertPoint:copiedImageView.center fromView:self.view];
[layer setPosition:theCenter];
[targetImageView.layer addSublayer:layer];
copiedImageView.layer.hidden=YES;
如果我明确地设置了layer.position它似乎工作(例如(0,0)层中心总是在targetImageView的左上角),这是合乎逻辑的。
非常感谢任何帮助!
答案 0 :(得分:1)
设置框架,而不是边界。 Frame确定图层相对于其父图层的位置。
layer.frame =copiedImageView.frame;
除非您已应用转换。然后你通过分别设置边界和位置大致以正确的方式进行。