0

我有UICollectionView裏面UITableViewCell。我想要啓用或禁用基於兩者的contentOffset的滾動UICollectionViewUITableView。例如,在UICollectionView的ViewController中,我有一個代碼 -scrollEnabled內部外部UIScrollView的scrollViewDidScroll需要兩次刷卡

- (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]; 
    } 

} 

但啓用滾動不會立即生效。第一次滾動不啓用或禁用_collectionView但在第二次滾動它按預期工作。我們不能在動態中啓用滾動(僅在一次滑動/滾動中)?

回答

0

scrollViewDidScroll來回調用收集視圖的彈跳動畫。出於這個原因,一旦它的動畫設置scrollEnabled = true後其設置scrollEnabled = false。 嘗試檢查範圍如0到10或某個閾值。

或者你可以試試這個:

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

    } else { 
     _collectionView.scrollEnabled = true; 

    } 

} 
+0

感謝您的答案,但它不會因爲閾值。 _collectionView.scrollEnabled = true/false即時調用,但爲了看到我需要結束滾動並再次滾動的效果。這一次它將按預期工作。 – Vashum