2016-10-18 4 views
0

У меня есть массив:Swift изменить UIImage в UICollectionViewCell из массива

var categoryImages = ["image1","image2","image3","image4"] 

и это, как я пытаюсь получить изображения для изменения:

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let myCell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyCell", for: indexPath as IndexPath) 
    myCell.backgroundColor = UIColor.blue 

    let size = CGRect(x: 0, y: 0, width: 100, height: 100) 

    var imageview: UIImageView = UIImageView(frame: size) 

    let image: UIImage = UIImage(named: categoryImages[indexPath]) 
    imageview.image = image 
    myCell.contentView.addSubview(imageview) 
    return myCell 
} 

Однако эта линия:

let image: UIImage = UIImage(named: categoryImages[indexPath]) 

выдает эту ошибку:

Cannot subscript a value of type '[String]' with an index of type 'IndexPath'

Может кто-нибудь мне помочь: мне нужны изображения, которые находятся в массиве для загрузки в UICollectionViewCells. Не как фоновое изображение, однако, я хотел бы, чтобы они были изображениями, которые я могу разместить и т. Д.

Заранее спасибо.

+0

'IndexPath' не является' Int', который вы используете для получения значения из индекса. 'IndexPath' можно рассматривать как цепочку' Int'. Вам нужно получить правильный указатель из пути, используя 'section' /' item'/'row' (какой из наборов вы должны проверить сами, это зависит от деталей вашего вида коллекции). – user28434

ответ

3

попробовать это:

let image: UIImage = UIImage(named: categoryImages[indexPath.row]) 

Ваш categoryImages массив, так что вам нужно, чтобы получить элементы из него по их индексам.

0

Вам необходимо получить доступ к массиву изображений, используя строку: indexPath.row.

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