CALayer координирует ошибочное поведение - PullRequest
0 голосов
/ 10 октября 2011

У меня некоторое время проблемы с 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), что логично.

Любая помощь очень ценится!

1 Ответ

1 голос
/ 10 октября 2011

Установите рамку, а не границы.Frame определяет расположение слоя относительно его родительского слоя.

layer.frame =copiedImageView.frame;

Если только вы не применили преобразование.Затем вы делаете это примерно правильным образом, отдельно устанавливая границы и положение.

...