Каков наилучший способ создания слоя для отслеживания сенсорных событий? - PullRequest
0 голосов
/ 18 августа 2010

Мне нужно разместить информационный экран над основным интерфейсом, но мне нужно, чтобы он был в альфа-режиме, чтобы вы могли видеть интерфейс под ним. Однако, когда я касаюсь экрана, интерфейс под ним все еще работает.

Каков наилучший метод перехвата сенсорных событий, чтобы они не проходили? Я пытался добавить пользовательскую кнопку UIB размером с экран, но это тоже не сработало: (

К сожалению, здесь слишком много кода для публикации. Представление состоит из сотен строк, но важным моментом является добавление наложенного подпредставления, которое выглядит следующим образом:

InfoScreen *infoScreen = [[UIView alloc] initWithFrame:self.view.frame];
UIButton *invisibleButton = [UIButton buttonWithType:UIButtonTypeCustom];
invisibleButton.frame = self.view.frame;

[self.view addSubview:invisibleButton];
[self.view addSubview:infoScreen];

Я использую прикосновения Beg, touchesMoved, touchS закругленные и touchCancelled в представлении ниже. Возможно, поэтому прикосновения проходят?

Спасибо!

: - Джо

1 Ответ

0 голосов
/ 18 августа 2010

Если вы хотите остановить все от ответа (например, для временного блока), вы можете использовать

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];

и

[[UIApplication sharedApplication] endIgnoringInteractionEvents];

Это не будет работать, если вам нужно прикосновение, чтобы отменить это состояние ;-). В этом случае прозрачный UIView поверх вашего фона выполнит работу. Если это не так, отправьте код.

...