UIScrollView、泛感知识别器和iOs 4

UIScrollView、泛感知识别器和iOs 4,ios,ios4,uigesturerecognizer,uipangesturerecognizer,Ios,Ios4,Uigesturerecognizer,Uipangesturerecognizer,我有一个可滚动的视图,我需要的手势识别器,将在不滚动主视图的情况下启动 我使用了以下代码: UISwipeGestureRecognizer *upRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(upSwipeHandle:)]; upRecognizer.direction

我有一个可滚动的视图,我需要的手势识别器,将在不滚动主视图的情况下启动

我使用了以下代码:

UISwipeGestureRecognizer *upRecognizer = 
    [[UISwipeGestureRecognizer alloc] initWithTarget:self 
                                              action:@selector(upSwipeHandle:)];
upRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
[upRecognizer setNumberOfTouchesRequired:2];
[controller.view addGestureRecognizer:upRecognizer];
[[controller.scrollView panGestureRecognizer]
    requireGestureRecognizerToFail:upRecognizer];

但它似乎只适用于iOS 5。如何在iOS 4中使用相同的识别器?

我使用UIgestureRecognitor委托方法解决了我的问题

加上

upRecognizer.delegate = self;
这种方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

    if ([gestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
        return YES;
    }

    return NO;
}  

我遇到了同样的问题。我在4.3模拟器中运行了类似的代码,但该代码失败了,因为scrollView.panGestureRecognizer仅在iOS 5.0+中可用

我通过向UIScrollView添加一个类别解决了这个问题

@interface UIScrollView(panGestureRecognizer)
@end
@implementation UIScrollView(panGestureRecognizer)
// iOS5 has a panGestureRecognizer property
// Add a getter for iOS 4.3+
- (UIPanGestureRecognizer *)panGestureRecognizer
{
    for (UIGestureRecognizer *gestureRecognizer in self.gestureRecognizers)
    {
        if ([gestureRecognizer isKindOfClass: [UIPanGestureRecognizer class]]) {
            return (UIPanGestureRecognizer *)gestureRecognizer;
        }
    }
    return nil;
}
@end