Всегда сохранять данные в первой ячейке UICollectionView

У меня есть UICollectionView, и я хочу всегда сохранять данные (изображения) в первой ячейке, а старые данные переходят в следующие ячейки. Поэтому, когда я сохраняю новую фотографию, она появляется в первой ячейке, я пробовал с indexpath.row == 0 {} в cellForRowAtIndexPath, но он сохраняет только в первой ячейке, в других ячейках ничего нет. Могу ли я инвертировать индекс сохранения или сделать это по-другому ??

Так есть у кого-нибудь идеи, что я могу сделать там ??

  override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return picture.count
}

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("BookPicCell", forIndexPath: indexPath) as! BookPicCell

    let cellcore = picture[indexPath.row]



    if indexPath.row == 0 {
         cell.BookImage.image = UIImage(contentsOfFile: cellcore.foto!)

    }



    return cell
}

Спасибо за вашу помощь.


person Hindus    schedule 28.03.2016    source источник


Ответы (1)


Вам нужно создать массив UIImages и добавить новое изображение в начало этого массива:

pictures.insert(newImage, atIndex : 0)

После того, как вы вставили новое изображение, вам нужно перезагрузить UICollectionView, используя:

self.collectionView.reloadData()

Вы не хотите сортировать свои данные внутри cellForItemAtIndexPath

person Emptyless    schedule 28.03.2016
comment
Я использую основные данные и сохраняю изображение как строку, поэтому у меня есть этот код `let newpic=NSEntityDescription.insertNewObjectForEntityForName(EveryPicture, inManagedObjectContext: self.mgdContext) as! EveryPicture newpic.everyfoto?.insert(bildPfad, atIndex: 0)` с вставкой возникает ошибка, которая не может преобразовать строку в type Character. Я никогда не слышал от Персонажа, могу ли я преобразовать это? - person Hindus; 29.03.2016
comment
Если вы знаете, что они имеют строковый тип, вы можете проверить, не сработало ли ваше приведение, уточнив компилятор. использование: let imagesArray : [String] = ... as! [Нить]. Таким образом, вы узнаете, есть ли у вас массив String или что-то еще. - person Emptyless; 29.03.2016