2011-07-01 17 views
7

Czy to możliwe? Zasadniczo chcę przekazać moje UIView do podglądu podrzędnego i mieć to wyszło przed warstwą widoku (bardziej szczegółowo, przed granicą tej warstwy).umieścić subviews o UIView przed jego CALayer?

Oczywiście mogłem osiągnąć pożądany efekt, wykonując dwa subviews z podglądu widoku, jeden na drugim. Ale wolałbym tego uniknąć, jeśli to możliwe.

Odpowiedz

4

Szukałem tego przez chwilę; nie wierzę, że to możliwe. Rozwiązałem problem, dodając podgląd i rodzica do tego samego "kontenerowego" podglądu. Wtedy jest to tylko kwestia zamawiania dwóch subviews, tak aby twoje wywiady były powyżej drugiego i jego granicy.

1

Rozwiązałem to za pomocą animacji segue, w której potrzebowałem, by sourceViewController znajdował się przed obiektem docelowymViewController. Musiałem usunąć sourceViewController w celu ponownego zagnieżdżenia go. Mój kod wygląda następująco:

- (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... 

} 
Powiązane problemy