Ответ 1
Я думаю, что есть более эффективные решения этой проблемы, чем предлагаемые вами, но для прямого ответа на ваш вопрос: Подкласс UIButton наблюдает сенсорные события так же, как все остальные наблюдают события касания.
// In your UIButton subclass
- (instancetype)initWithFrame:(CGRect)frame {
self = [super buttonWithType:UIButtonTypeCustom];
if (self) {
[self addTarget:self action:@selector(didTouchButton) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)didTouchButton {
// do whatever you need to do here
}
Важное примечание: вы не можете использовать [UIButton buttonWithType:]
для создания своей кнопки, вы должны использовать init
или initWithFrame:
. Несмотря на то, что UIButton имеет инициализатор удобства, initWithFrame:
по-прежнему является назначенным инициализатором.