Как перейти к следующему контроллеру представления, если я на последней странице представления uicollection.его горизонтальный переход и пейджинг включен - PullRequest
0 голосов
/ 18 марта 2019
@IBOutlet weak var collectionView: UICollectionView!

override func viewDidLoad() {
    super.viewDidLoad()
    self.collectionView.isPagingEnabled = true
}

@IBAction func onBackButtonTap(_ sender: Any) {
    //    if collection view is on first page i have to pop  
    // self.navigationController?.popViewController(animated: true)
    let collectionBounds = self.collectionView.bounds
    let contentOffset = CGFloat(floor(self.collectionView.contentOffset.x - collectionBounds.size.width))
    self.moveCollectionToFrame(contentOffset: contentOffset)

}

@IBAction func onNextButtonTap(_ sender: Any) {
    // if collection view is on last page i have to push to another view controller 
    let collectionBounds = self.collectionView.bounds
    let contentOffset = CGFloat(floor(self.collectionView.contentOffset.x + collectionBounds.size.width))
    self.moveCollectionToFrame(contentOffset: contentOffset)

}

func moveCollectionToFrame(contentOffset : CGFloat) {
    let frame: CGRect = CGRect(x : contentOffset ,y : self.collectionView.contentOffset.y ,width : self.collectionView.frame.width,height : self.collectionView.frame.height)
    self.collectionView.scrollRectToVisible(frame, animated: true)
}

Как перейти к следующему контроллеру представления, если я на последней странице UICollectionView? Его горизонтальный переход и пейджинг включены.

1 Ответ

0 голосов
/ 19 марта 2019

Вы можете проверить текущий видимый индекс и проверить, является ли он последней или первой ячейкой. И на основании этого вы можете предпринять действия по нажатию или выталкиванию контроллера вида

  var currentIndexPath:IndexPath = collectionView.indexPathsForVisibleItems.last!

        if currentIndexPath.row == yourArray.count - 1 {
            print("last row, we'll push")
        }

        if currentIndexPath.row == 0 {
            print("first row, we'll pop")
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...