2014-02-12 1 views
0

У меня есть пользовательский вид (1) в раскадровке, и при инициализации этого представления он создает другое представление (2) и добавляет его как подвью. В представлении 2 реализованы штрихиBegan, touchsMoved и т. Д. Контроллер вида реализовал touchhesEnded. Когда я запускаю его и делаю прикосновения, вызываются только вызовы контроллера доступа. Я не знаю, почему вид 2 не поднимает прикосновения.Сенсорный ввод не распознается, полностью отключен

Похоже, что изображение 2 загружено должным образом, так как появляется настраиваемый фон.

Я попытался явно установить userInteractionEnabled.

Теперь, получите это. Если я перезапущу iOS-симулятор и запустил его, он отлично работает! Но нет, если я запустил его во второй раз. И он никогда не работает, когда я запускаю его на фактическом ipad.

Я не ожидаю, что кто-нибудь научится знать, в чем проблема, но любые советы о том, как отлаживать это, будут высоко оценены!

Редактировать: код инициализации для просмотра 1 ...

self.myView2 = [[View2 alloc] initWithFrame:self.bounds]; 
[self addSubview:self.myView2]; 
+0

Может ли ваше мнение быть выпущенным, когда вы пытаетесь его коснуться? – Larme

+0

Как вы пытаетесь добавить новое представление в инициализацию? Не могли бы вы предоставить образец кода? – mrosales

+0

@ Larme Я использую ARC. – rmp251

ответ

0

Для касания произойдет, есть 4 условия:

  1. View должны быть userInterctionenabled.
  2. вид Родитель должен быть userInteractionenabled
  3. View должны быть в рамках родительского вида
  4. View не должны быть скрыты.

Проверьте, все в порядке или нет

+0

Спасибо за предложение. Я проверил эти вещи, и они, похоже, удовлетворены. – rmp251

0

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

Конечно, эта ситуация произошла бы, если вы установите setClipsToBounds в FALSE в родительском представлении.

View 2 может быть больше, чем точки зрения (1)

+0

Спасибо за предложение. Это не так. Вы можете увидеть мой ответ. – rmp251

0

Оказывается, что галочка "AUTORESIZE подвиды" был виновником. Я разработал раскладку в портрете и тестировал ее в ландшафте. Кажется, что в ландшафтном режиме родительское представление исчезало из-за поворота, но каким-то образом детское представление оставалось, давая вид, что все было хорошо.

Когда я снял флажок «Autoresize Subviews» в родительском представлении, он сработал.

Почему ротация заставит родительский вид исчезнуть вне меня (я тестировал без детского просмотра, и это то, что произошло). И почему детское мнение могло остаться без родителя, также вне меня. Если кто-нибудь может осветить этот свет, я был бы счастлив узнать что-то. Но сейчас я просто счастлив, что мне не нужно стрелять в себя.

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

  • Нет связанных вопросов^_^