2016-06-17 12 views
0

Ich versuche, ein Carousel in TableViewCell zu erstellen und bin fast da, habe aber Schwierigkeiten bei der Implementierung der UIPageControl in meiner TableView, so dass CollectionViewCell (was innerhalb TableViewCell) Item bekam habe ich es auf UIPageControl zeigen kann,Problem beim Ändern der CurrentPage von UIPageControl, die in einer TableViewCell ist

habe ich versucht, die unten Lösung und begegnet (für mich vielleicht seltsam es ist nur) ein seltsames Verhalten, wenn die Ansicht Lasten und ich meine ändern item (die in collectionViewCell ist) current der Pagecontrol ist ist nicht ändern, aber nach dem Scrollen bis zum Ende von TableView und kommt wieder nach oben seine Arbeit gut,

Angenommen, Sie haben 6 Zeilen und scrollen nach unten zu Zeile 6 und wenn Sie dann zu Zeile 5 scrollen und das Element ändern, funktioniert das pageControl. Wenn Sie so weitermachen, bis es den oberen Rand erreicht, wird es gut funktionieren gehen aus Reihe 5 bis 6 und Zeile 6 des Elements ändern dann sein gehen nicht

ich bin initialisiert meine pageControl in cellForRowAtIndexPath arbeiten:

pagerControll = cell.pageControll 

dann versuchen, die Position zu ändern, indem Sie auf Scroll des content~~POS=TRUNC hören

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) } 
} 

eine Idee, warum das passiert ?? oder wie das zu beheben ??

Ps, wenn Frage ist nicht klar genug ist, dann lassen Sie mich wissen, werde ich etwas ausführlicher

UPDATE hinzufügen:

wenn Lasten Ansicht und bin Änderung der Artikel von collectionViewCell die folgenden Zelle Pagecontrol die current im Wandel

Antwort

0

nach angepisst immer, wir haben es

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