2016-12-30 3 views
0

Я пытаюсь создать демонстрационное приложение, которое имеет TabBarViewController, а также 4 вкладки (4 различных ViewControllers на раскадровке)CollectionView Cell щелкнул развернуть новый вид

На первой вкладке, которая является первой ViewController, я есть коллекцияView с ячейками с ImageView и несколькими ярлыками.

Что я пытаюсь сделать, когда вы нажимаете на ячейку, она расширяется на весь экран, и вид все еще остается в первой вкладке из панели вкладок, только теперь, когда вид внутри ViewController изменилось на новое представление, которое представляет собой расширенное представление выбранной ячейки, и когда вы прокручиваете вниз, просмотр коллекции продолжается, и вы можете щелкнуть другую ячейку, и она будет расширяться и так далее ... пока вы можете в любое время нажать назад и показывает последнюю ячейку, которая была расширена на вид

Надеюсь, я был достаточно ясен о том, что я пытаюсь сделать. Теперь плохо добавить код того, что у меня уже

import UIKit 

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 


    var imagesArray = [] 

    var imageSizes = [CGSize]() 

    var labelsArray = [""] 

    var descArray = [""] 



    @IBOutlet weak var collectionView: UICollectionView! 


    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.collectionView.delegate = self 
     self.collectionView.dataSource = self 

     for i in 0..<imagesArray.count { 

      let currImg = imagesArray[i] 
      let currHeight = currImg.size.height 
      let currSize = CGSize(width: 150, height: currHeight + 125) 
      imageSizes.append(currSize) 
     } 



     } 





    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return imagesArray.count 
    } 

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionVCe 

     cell.cellImg.image = imagesArray[indexPath.row] 
     cell.descLabel.text = descArray[1] 
     cell.itemLabel.text = labelsArray[0] 


      cell.cellImg.contentMode = .scaleAspectFill 
     cell.layer.cornerRadius = 9 

     cell.backgroundColor = UIColor.red 
     cell.cellImg.backgroundColor = UIColor.blue 




     return cell 
    } 

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
     return imageSizes[indexPath.row] 
    } 

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { 
     return UIEdgeInsetsMake(0, 25, 0, 25) 
    } 

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { 
     return 10 

    } 

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
     if let cell = collectionView.cellForItem(at: indexPath) { 
      cell.frame = collectionView.frame 

     } 
    } 



override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
     } 


} 

ответ

0

Вы перезагружать вид коллекции, а также назвать размер делегата зрения коллекции

+0

Добро пожаловать на переполнение стека! Пожалуйста, добавьте в свой ответ какой-то код, который демонстрирует, что вы имеете в виду. –

Смежные вопросы