Почему мое подвид окна показывает, но не обрабатывает никаких касаний? - PullRequest
1 голос
/ 17 января 2011

У меня UIWindow структурировано в Интерфейсном Разработчике как:

  • окно
    • DrawingView (пользовательский UIView)
    • панель инструментов (UIToolbar)

Там, где обрабатываются DrawingView, с помощью touchesBegan и т. Д. Однако, когда я пытаюсь добавить 'someView' (пользовательский UIView), на котором есть кнопки UIB в качестве подпредставления окна, кнопки не получаютлюбой из прикосновений.

Я создаю 'someView' с помощью:

[[[UIApplication sharedApplication] keyWindow] addSubview:someView]; 

SomeView 'хорошо отображается в верхней части DrawingView, но касания, кажется, не регистрируются вообще,и пройти через DrawingView.Почему это так?

Еще одна странная вещь - то, что backgroundColor someView всегда кажется ясным, даже если я устанавливаю его на что-то еще программно или в IB.

Кроме того, когда я создаю someViewиспользуя

[[UIPopoverController alloc] initWithContentViewController:someView];

он работает нормально, обрабатывает прикосновения и все.Причина, по которой я хочу добавить его в качестве подпредставления, заключается в том, что мне нужен более общий способ добавления someView, который также работает на iphone.

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Я нашел решение (хакерским способом).

Мне пришлось добавить 'someView' в качестве подпредставления DrawingView, которое появляется поверх drawView, когда оно показано, и позволяет мне программно настроить someView с помощью кнопок UIB, которые получают прикосновения.

Я думаю, это потому, что drawView - это представление OpenGL, которое переопределяет layerClass, который делает что-то необычное с тем, как представления организованы для получения касаний. Я думаю.

0 голосов
/ 17 января 2011

Убедитесь, что флаг userInteractionEnabled установлен на всех родительских представлениях, которые должны получать прикосновения.

...