Проблема с bringSubviewToFront?

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

Ответ 1

Метод -[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];

Ответ 2

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

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