2013-06-09 24 views
7

この問題が発生しています。UIScrollViewのバウンスが無効になっているとスクロールインジケータがスクロールします

私は(などのUITableViewなど誘導体はまた、影響を受けているので)UIScrollViewの中でバウンス無効にした場合、基本的に、それが一番上にユーザーがスクロールした場合に立ち往生し、スクロールインジケータを取得することが可能ですし、その後、別のジェスチャーで、スクロールを継続しようとしますクイックスワイプを使って

これが発生すると、ユーザーがスクロールしたりスクロールビューをタップしない限り、スクロールインジケーターは消えません。最大の問題は、スクロールビューがそのタップをキャプチャするので、テーブルセルをタップしようとすると、初めて何も起こりません。

私は私のデバイスとシミュレータの両方のベアボーンアプリでこれをテストしましたが、それはUIScrollViewの一般的な問題であり、バウンスを無効にしているようです。しかし、私が言ったように、私はインターネット上でこれについて他の言及を見つけることはできません。

これは単なるバグですか?これは予想される動作ですか?私は何か間違っているのですか?これがバグであれば、誰かが回避策や修正を知っていますか?

+0

必要に応じて使用し、キーボードを辞任などのスクロールタッチ上の他のアクションを実行するにはタップジェスチャーdelgate方法

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (self.scrollView.superview != nil) { if ([touch.view isKindOfClass:[UIButton class]]||[touch.view.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview.superview.superview isKindOfClass:[UITableViewCell class]]||[touch.view.superview isKindOfClass:[UITableViewCell class]]) // we touched our control surface { return NO; // ignore the touch } } return YES; // handle the touch } 

//を実装して、あなたのインタフェースファイルにデリゲートUIGestureRecognizerDelegateを追加私は同じ、または今でも同様の問題を抱えています。私は今、バウンスを可能にすると思います...あなたが言うように、この問題が発生すると、次のタップはテーブルビューで「飲み込まれる」ので、セルを選択するためには2回タップする必要があります。 – Jonny

+0

こんにちは、この動作の解決策を見つけましたか?ありがとう。 – apascual

答えて

0

スクロールビューのタップジェスチャーを追加しましたか?

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resignsKeyboard)]; 
    [self.scrollView addGestureRecognizer:singleTap]; 
    singleTap.numberOfTapsRequired = 1; 
    singleTap.delegate = self; 

-(void) resignsKeyboard 
{ 
    [self.view endEditing:YES]; 
    [self.scrollView setContentOffset:CGPointMake(0,0) animated:YES]; 
} 
関連する問題