iOS UIPickerView:如何限制滚动范围

iOS UIPickerView:如何限制滚动范围

问题描述:

当您滚动UIPickerView时,您可以在触摸板上上下移动手指 - 远高于和低于屏幕的大小。有没有办法将上下滚动范围限制在UIPickerView的区域?因此,一旦您将手指移动到UIPickerView之外,UIPickerView的滚动就会停止?我正在制作UIPIckerView作为游戏中的微调,我需要为此获得公平的游戏。iOS UIPickerView:如何限制滚动范围

// viewDidLoad中

UILongPressGestureRecognizer* gestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(pickerLongPressDetected:)]; 
    gestureRecognizer.minimumPressDuration = .001; 
    gestureRecognizer.cancelsTouchesInView = NO; 
    gestureRecognizer.delegate = self; 
    [self.rollerView addGestureRecognizer:gestureRecognizer]; 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    // return 
    return true; 
} 

-(void)pickerLongPressDetected:(UILongPressGestureRecognizer *)gesture 
{ 
    CGPoint touchPoint = [gesture locationInView:self.view]; 

    CGRect frame = self.rollerView.frame; 

    if(!CGRectContainsPoint(frame, touchPoint)) 
    { 
     //methods for when you scroll outside of your picker view's frame 
    } 
} 

你可以在UIPickerView中使用UITapGestureRecognizer,然后你就可以获得坐标。如果你在你需要的帧得到点然后做你的工作,否则返回