2010-09-03 7 views
0

есть ли возможность определить, будет ли отображаться uiview obj. представьте: у вас есть 2 uiviews в uiscrollview. теперь вы будете переключаться с одного взгляда на первый взгляд на второй. первый вид теперь НЕ находится в окне просмотра. теперь вы вернетесь к первому виду. и теперь я хочу получать уведомления о том, что это представление находится в видовом экране или отображается повторно. то же самое должно быть для второго представления. Я не нашел обратного вызова или что-то вроде этого.определить, отображается ли uiview

+0

Вы должны быть более конкретными. Какой жест? Я догадываюсь, что это ударило. Проведите по экрану влево/вправо, чтобы сдвинуть два вида в рамке и выйти из него? –

+0

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

ответ

0

Вы убедитесь, что ваш UiViewController переопределяет viewWillAppear: (до того, как он появляется, этот метод вызывается) или viewDidAppear: (после вызова этого метода).

См: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewWillAppear:

+0

Вы это правильно, но проблема в том, что это представление есть в библиотеке, которая доставляется клиентам. и клиенты не должны делать такого переопределения. Я знаю, что есть возможность определить класс custome uiviewcontroller, который будет делать это, и все uiviewcontrollers должны унаследовать от него, но это слишком много для программистов приложений. они должны только инициализировать uiview и определять postioni. достаточно. Я думаю, что это невозможно. –

0

Это зависит от того, что вы подразумеваете под "переключателем". Если одно представление просто прокручивается из видимой области scrollview, но по-прежнему остается прикрепленным к нему как подчиненное, тогда вы можете проверить, перекрываются ли границы вашего вида с видимой областью scrollviews.

Вы можете сделать это с помощью метода UIScrollView DelegatescrollViewDidScroll:, чтобы реализовать проверку на перекрытия при прокрутке пользователя.

Если, однако, ваш вид фактически удален из области просмотра, тогда вы можете захотеть подклассифицировать UIView и реализовать willMoveToSuperview:, чтобы проверить, было ли снова добавлено представление в прокрутку.

Смежные вопросы