В следующем коде я создал объект MTLabel
и объект UIButton
, изменил их фрейм, затем добавил UIButton
в качестве подпросмотра 'MTLabel'
MTLabel* label = [MTLabel labelWithTitle:title];
label.frame = ...
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[rightButton addTarget:self
action:@selector(didSelectStore:)
forControlEvents:UIControlEventAllEvents];
[label addSubview:rightButton];
rightButton.frame = ...;
[an addLabel:label];
После этого оба UIView
s появляется на экране, однако didSelectStore:
никогда не вызывается при касании этого rightButton
.
Так как MTLabel
определен в сторонней библиотеке, у меня нет ее исходного кода.Поэтому я пишу такую категорию:
@implementation MTLabel(button)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
}
......
@end
После этого [rightButton touchesBegan:event:]
по-прежнему не вызывается, не говоря уже об этом действии.
Таким образом, сенсорные события не работают так, как ожидалось вэтот subView.
Есть идеи о том, как это произойдет и что мне делать?
Спасибо.