0

私はUITableViewCellの内部UICollectionViewを持つが必要です。 UICollectionViewUITableViewの両方のcontentOffsetに基づいて、スクロールを有効または無効にしたかったのです。は2回のスワイプ

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y == 0) { 
     _collectionView.scrollEnabled = false; 
     // This will enable _tableView scroll which is implemented in UITableView's ViewController 
     [_delegate toggleScroll:true]; 

    } else { 
     _collectionView.scrollEnabled = true; 
     // This will disable _tableView scroll which is implemented in UITableView's ViewController 
     [_delegate toggleScroll:false]; 
    } 

} 

しかし、スクロールがすぐには影響しない可能 - たとえば、UICollectionViewののViewControllerの内側に私は、コードを持っています。最初のスクロールでは、_collectionViewが有効または無効にされませんが、2番目のスクロールでは正常に動作します。オンザフライでスクロールを有効にすることはできません(1回のスワイプ/スクロールでのみ)。

答えて

0

scrollViewDidScrollコレクションビューのバウンドアニメーションのために前後に呼び出されます。その理由のために、アニメーション設定後にscrollEnabled = falseの設定をしたら、scrollEnabled = true。 0〜10やしきい値などの範囲でチェックしてみてください。

それともあなたはこれを試すことができます。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y <= 10) { 
     _collectionView.scrollEnabled = false; 

    } else { 
     _collectionView.scrollEnabled = true; 

    } 

} 
+0

あなたの答えに感謝しかし、そのないためのしきい値。 _collectionView.scrollEnabled = true/falseは即座に呼び出しますが、効果を見るにはスクロールを終了してもう一度スクロールする必要があります。今回は期待どおりに動作します。 – Vashum

関連する問題