CollectionViewCell顶部的按钮可以阻止collectionView滚动

时间:2018-01-22 20:36:56

标签: swift scroll uibutton uicollectionview

我有一个带有一些单元格的collectionView。 在每个单元格的顶部,我有一个按钮,所以当我按下按钮时,视图会切换到另一个控制器。

我现在的问题是,当我触摸单元格并尝试滚动时,它不会 (因为它上面的按钮)

对于UIScrollView中的相同问题,有这种方法:

override func touchesShouldCancel(in view: UIView) -> Bool {
    // Makes the scrollView scrollable when there's a button on top.
    return true
}

我也尝试过这种方法:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    print("Nothing")
}

没有任何反应。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

试试这个:

func viewDidLayoutSubviews() {

   super.viewDidLayoutSubviews()
   self.scroller.isScrollEnabled = true
}

根据马克肯尼迪的答案,在这里:UIButton inside UIScrollView disables scrolling

答案 1 :(得分:0)

使用Dim tbl As ListObject Set tbl = ThisWorkbook.Sheets("Example Sheet").ListObjects("YourTable") Dim formulaText As String formulaText = "=IF([@Reach]>=100000,5,IF([@Reach]>=50000,3,IF([@Reach]>=10000,2,1)))" tbl.ListColumns("Reach Analysis").DataBodyRange.Formula = formulaText viewDidLoad()的{​​{1}}方法。我希望它能解决你的问题。

答案 2 :(得分:0)

在按钮点击方法中检查CollectionView是否正在滚动。通过像这样

if collectionView.isDragging || collectionView.isDecelerating {
 //`Don't go to Another View Controller`
}

试一试。