0

我在 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 的左上角),这是合乎逻辑的。

很感谢任何形式的帮助!

4

1 回答 1

1

设定框架,而不是界限。Frame 确定层相对于其父层的定位方式。

layer.frame =copiedImageView.frame;

除非您应用了转换。然后,您可以通过分别设置边界和位置来以正确的方式进行操作。

于 2011-10-10T08:15:28.773 回答