Как получить штрихи, когда родительский взгляд имеет userInteractionEnabled, установленный в NO в iOS

Если у родительского представления есть userInteractionEnabled = NO, его subviews не будет принимать события касания, даже если для свойства userInteractionEnabled установлено значение YES.

Есть ли способ по-прежнему получать события касания в subviews?

Ответ 1

Чтобы получить представление, позволяющее касатьться сквозным, но прикоснитесь к касаниям его надзоров, дайте userInteractionEnabled в этом представлении YES и вместо этого используйте этот фрагмент:

-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    id hitView = [super hitTest:point withEvent:event];
    if (hitView == self) return nil;
    else return hitView;
}

Источник: http://cocoaheads.tumblr.com/post/2130871776/ignore-touches-to-uiview-subclass-but-not-to-its

Ответ 2

Установка родительского представления свойства userInteractionEnabled в NO также неявно устанавливает для свойств subviews userInteractionEnabled значение NO. Я не знаю, как получить сенсорные события в subview с использованием описанного вами подхода, но, возможно, вы могли бы создать представление, которое просто накладывает представления, с которыми вы хотите взаимодействовать, но не является родителем этих просмотров.

Ответ 3

Обходной задачей было бы отключить пользовательский интерфейс кнопок и т.д., вместо того, чтобы отключать взаимодействие пользователя со всем родительским представлением