1

次のコードは、IOS 5 では問題なく動作しましたhandleTapGestureが、IOS 6 では呼び出されません。何が変わったのですか?

- (id)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
        [self addGestureRecognizer:tap];
    }
    return self;
}

- (void)handleTapGesture:(UITapGestureRecognizer *)recognizer
{
    MessageNib *cell = self;
    MessageView *view = (MessageView *)[[[NSBundle mainBundle] loadNibNamed:@"MessageView" owner:self options:nil] objectAtIndex:0];
    view.message = cell.message;

    [[NSNotificationCenter defaultCenter] postNotificationName:NEW_SUB_PAGE object:view];
}
4

2 に答える 2

0

alloc init の後に numberOfTaps を設定する必要があると思います

tap.numberOfTapsRequired = 1;

または、initWithCoder が呼び出されなかった可能性もあります。

于 2012-10-01T19:53:14.713 に答える
0

タップ可能にしたいアイテムの上に「ファントム」ボタン(別名、コンテンツのないボタン)を配置Touch Up Insideするだけで、タップジェスチャコードを呼び出すイベントをボタンに添付しました。

とにかく、これはまともな瞬間的なハックです。

于 2012-10-01T22:00:40.803 に答える