2011-12-16 24 views
1

は、私は、その細胞が90°(そう、彼らは左右スクロール)、同様のここで説明されているものに回転さUITableViewsが含まれているのUITableViewを持っている:私はセルの一つにスクロール入れ子になったUITableViewが正しくバウンスしないのはなぜですか?

http://marcanton.io/blog/nested-orthogonal-tableviews/

エンド(例えばコンテンツの左端または右端まで)は、期待どおりにバウンスします。しかし、すでに終了していて、コンテンツの終わりを越えてスクロールしようとすると(たとえば、スクロールして右にスクロールしようとすると、さらにスクロールして右にスクロールします)、まったくバウンドせず、時には誤ってスクロールの試みをタップとして解釈します。

UIScrollViewを作成して、別のUIScrollViewを90度回転させた場合も同じことが起こります。したがって、ネストされたスクロールビューの問題であると思われます。

私は UITableViewをサブクラス化し、そのようなすべての UIGestureRecognizerDelegateのメソッドをオーバーライドしてみました:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
    return YES; 
} 

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

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return YES; 
} 

をしかし、それは(私は必要ありません同時水平方向と垂直方向のスクロールを、許可以外の)効果がありません。

答えて

1

内側のテーブルビューが90度回転していることとは関係ありません。観測されたバウンス(およびその欠如)の動作は、スーパービューと同じ軸に沿ってスクロールするネストされたスクロールビューと完全に一致しています。

UIでは、内側と外側のテーブルビューは異なる軸に沿ってスクロールするように見えますが、回転変換のために背後では両方ともそれぞれのy軸に沿ってスクロールしています。したがって、システムは、それらが同じ軸に沿ってスクロールしているかのように扱います。

0

回転したUITableViewをUIScrollView内にラップすると、問題が解決されたことがわかりました(これがなぜあなたにとってうまくいかなかったのか分かりません)。

関連する問題