2016-07-30 3 views
1

У меня есть UICollectionViewController с 3 строками, в первом indexPath (0) Я хочу добавить UIView. Когда я запускаю приложение, он работает, но когда я иду в другой контроллер и возвращаюсь, UIView находится в других строках. Это код:indexPath.row reload in UICollectionView

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
    let customCell = collectionView.dequeueReusableCellWithReuseIdentifier(customCellId, forIndexPath: indexPath) as! CustomCell 
    customCell.nameLabel.text = "\(label2.text) \(materie[indexPath.row])" 
    customCell.setupViews() 
    if indexPath.row == 0 { 
     customCell.setupUIView() 
     customCell.nameLabel.text = "" 
    } 

    return customCell 
} 

При запуске приложения на экране:

launch screen app

Когда я иду в другой контроллер и вернуться, экран:

screen

+0

Try вызова 'reloadData()' в '' viewWillAppear: – Eilon

+0

Почему бы вам не создать customCell с вашей точки зрения внутри него? – Lamar

+0

reloadData() не работает, я попробовал. Как я могу создать несколько customCell? –

ответ

0

Причина, по которой синий квадрат повторяется в другой ячейке, заключается в том, что коллекцияView повторно использует одну и ту же ячейку.

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 

    let customCell = ollectionView.dequeueReusableCellWithReuseIdentifier(customCellId, forIndexPath: indexPath) as! CustomCell 

    // HERE YOU HAVE TO RESET THE CELL TO DEFAULT VALUES 
    // LIKE REMOVING THE BLUE SQUARE VIEW 
    customCell.view2.removeFromSuperview() 

    if indexPath.row == 0 { 
     customCell.setupUIView() 
     customCell.nameLabel.text = "" 
    } else { 
     customCell.nameLabel.text = "\(label2.text) \(materie[indexPath.row])" 
     customCell.setupViews() 
    } 

    return customCell 
} 
+0

Результат тот же. Я пробовал, но он не работает –

+0

@AndreaToso Удалил ли вы синий квадрат перед настройкой представления? – pableiros

+0

Это код: http://pastebin.com/qWDkvghA –