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 回答