Я понимаю, что подчеркивание технически обосновано. Проверьте:
https://developer.mozilla.org/en/underscores_in_class_and_id_names
"... errata к спецификации, опубликованной в начале 2001 года, сделана подчеркивает законность в первый раз ».
Статья, указанная выше, никогда не использует их, затем предоставляет список браузеров, которые их не поддерживают, все из которых, по крайней мере, по числу пользователей , long-redundant.
В документации ищите Объекты Респондента и Цепочка Респондента
, можно "совместно использовать" касания между объектами путем передачи касанию цепочки респондента. Ваш UIButton имеет респондента/контроллер, который получает события UITouch, мое предположение - то, что, как только он формовал свою интерпретацию сообщения, которое он возвращает - касание обработали и избавились.
Apple предлагает что-то вроде этого (на основе типа касания, конечно):
[self.nextResponder touchesBegan:touches withEvent:event];
Вместо того, чтобы избавиться от сенсорного события это передается.
Sub классифицировал UIButton:
MyButton.h
#import <Foundation/Foundation.h>
@interface MyButton : UIButton {
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event ;
@end
MyButton.m
#import "MyButton.h"
@implementation MyButton
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
printf("MyButton touch Began\n");
[self.nextResponder touchesBegan:touches withEvent:event];
}
@end
Я знаю, что этому вопросу два года (и он уже ответил), но тем не менее ...
Когда я попробовал это сам, прикосновения были перенаправлены, но кнопки больше не вели себя как кнопки. Я также передал прикосновения к «супер», и теперь все хорошо.
Итак, для начинающих, которые могут наткнуться на это, вот как должен выглядеть код:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[super touchesBegan:touches withEvent:event];
[self.nextResponder touchesBegan:touches withEvent:event];
}