принести проблему SubviewSoft? - PullRequest
13 голосов
/ 22 сентября 2010

HI, У меня есть Parentview -> Несколько дочерних просмотров. когда я использую [selfDownSubviewToFront: childview] в parentview, он работает нормально. Но после добавления grandchildview в childview, когда я использую [self takeSubviewToFront: grandchildview] в родительском обзоре, это не сработало? любая помощь, пожалуйста?

Ответы [ 2 ]

59 голосов
/ 22 сентября 2010

Метод -[UIView bringSubviewToFront:] работает только для прямых детей, а не для внуков.Помните, что иерархия представления является деревом, и обычно представление знает только о своем «родителе» (или суперпредставлении) и его прямых «потомках» (или подпредставлениях).Вам нужно сделать что-то вроде этого:

// First, get the view embedding the grandchildview to front.
[self bringSubviewToFront:[grandchildview superview]];
// Now, inside that container view, get the "grandchildview" to front. 
[[grandchildview superview] bringSubviewToFront:grandchildview];
1 голос
/ 16 февраля 2016

мой вклад с быстрой версией из проверенного решения

self.bringSubviewToFront(self.grandchildview.superview!)
self.grandchildview.superview!.bringSubviewToFront(self.grandchildview)
...