UITapGestureRecognizer 不会在 IOS 6 中触发



以下代码在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];
}

我想你必须在分配初始化后设置taps的数量

tap.numberOfTapsRequired = 1;

或者另一种可能性是initWithCoder没有被调用。

最终只是在我的项目上放置了一个"幻影"按钮(又名没有内容的按钮),我想点击并将一个Touch Up Inside事件附加到调用我的点击手势代码的按钮上。

无论如何,这是一个不错的瞬间黑客。

最新更新