在更改TableViewCell内部的UIPageControl的CurrentPage时出现问题

时间:2016-06-17 14:00:50

标签: ios swift swift2 uicollectionview uipagecontrol

我正在尝试在tableViewCell中创建一个Carousel并且几乎在那里但是在我的TableView中实现UIPageControl时遇到困难,这样当CollectionViewCell(在tableViewCell里面)项目被更改时我可以在UIPageControl上显示它,

我尝试了下面的解决方案并遇到了一个奇怪的行为(可能只对我来说很奇怪),当View Loads和我改变我的item(在collectionViewCell中)时,PageControl的currentPage没有改变但滚动后直到tableView的结尾并回到顶部它的工作正常,

假设您有6行并向下滚动到第6行然后当您向上滚动到第5行并更改其项目时pageControl将起作用,如果您继续这样做直到达到顶部它将会正常工作但是如果你从第5行到第6行并更改第6行的项目,那么它将无法正常工作

我正在pageControl中初始化cellForRowAtIndexPath

  pagerControll = cell.pageControll

然后通过侦听ScrollView的contentOffSet

来尝试更改位置
override func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

if scrollView != tableView {

    if scrollView.contentOffset.x >= self.view.frame.size.width && scrollView.contentOffset.x < (self.view.frame.size.width * 2){

        pagerControll.currentPage = 1
    }else if  scrollView.contentOffset.x >= (self.view.frame.size.width * 2 )  {
        pagerControll.currentPage = 2

    }else {

        pagerControll.currentPage = 0
    }

    print(scrollView.contentOffset) }
}

知道为什么会这样吗?或者如何解决这个问题?

如果问题不够明确,请告诉我,我会添加更多细节

更新:

当视图加载并且正在更改collectionViewCell的项目时,下面单元格的pageControl的currentPage正在更改

1 个答案:

答案 0 :(得分:0)

在生气之后,我们做了它

    override func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

        if scrollView != tableView {

           let currentCells =  tableView.visibleCells
            let cell = currentCells[0] as! NotesTableViewCell

            if scrollView.contentOffset.x >= self.view.frame.size.width && scrollView.contentOffset.x < (self.view.frame.size.width * 2){

                cell.pageControll.currentPage = 1
            }else if  scrollView.contentOffset.x >= (self.view.frame.size.width * 2 )  {

                cell.pageControll.currentPage = 2

            }else {

                cell.pageControll.currentPage = 0
            }
        }

    }

enter image description here