прикосновения subViewBegan: withEvent: селектор не вызывается - PullRequest
0 голосов
/ 22 августа 2011

В следующем коде я создал объект 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.

Есть идеи о том, как это произойдет и что мне делать?

Спасибо.

1 Ответ

0 голосов
/ 22 августа 2011

Не думаю, что вам нужно создавать категорию и добавлять touchesBegan: чтобы это работало. Вы гарантировали, что label.userInteractionEnabled = YES;?

...