поставить подвиды UIView перед его CALayer? - PullRequest
7 голосов
/ 01 июля 2011

Возможно ли это? По сути, я хочу дать своему UIView подпредставление, и чтобы это подпредставление было перед слоем представления (точнее, перед границей указанного слоя).

Конечно, я мог бы добиться желаемого эффекта, создав два подпредставления суперпредставления представления, одно поверх другого. Но я бы предпочел этого избежать, если это возможно.

Ответы [ 2 ]

4 голосов
/ 06 июля 2011

Я сам некоторое время искал это; я не верю, что это возможно. Как вы намекаете, я решил проблему, добавив подпредставление и родительский элемент к одному и тому же суперпредставлению «контейнер». Тогда нужно просто упорядочить два подпредставления, чтобы ваше подпредставление было выше другого и его границы.

1 голос
/ 17 сентября 2012

Я решил это с помощью следующей анимации, где мне нужно было, чтобы sourceViewController находился перед destinationViewController.Мне пришлось удалить sourceViewController для того, чтобы заново его вложить.Мой код выглядит так:

- (void) perform {

    UIViewController *sourceViewController = (UIViewController *) self.sourceViewController;
    UIViewController *destinationViewController = (UIViewController *) self.destinationViewController;
    UIView *parent = sourceViewController.view.superview;
    [sourceViewController.view removeFromSuperview];
    [parent addSubview: destinationViewController.view];
    [parent addSubview:sourceViewController.view];

    // Perform animation stuffs...

}
...