Swift 5 - Невозможно получить изображения для заполнения из массива - PullRequest
0 голосов
/ 12 апреля 2020

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

Я объявляю свой класс в отдельном файле swift:

import UIKit

class Tiles {
  var title: String?
  var image: UIImage?
  var display: String?

  init(title: String, image: UIImage, display: String) {
    self.title = title
    self.image = #imageLiteral(resourceName: "blank_whiteTile_48pt")
    self.display = display  
  }
}

А затем в представлении сбора заполните массив и затем сопоставьте массив с ячейками представление коллекции:

var tiles : [Tiles] = [Tiles(title: "Ceramic", image:#imageLiteral(resourceName: "ceramic_white"), display: "All"),
                       Tiles(title: "Marble", image: #imageLiteral(resourceName: "marble"), display: "All")]





override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! TileDisplay
    //define each cell
    cell.tiles = tiles[indexPath.item]

    return cell
}

Я также пытался обменять UIImage на UIImageView, но это не дало никаких других результатов.

1 Ответ

1 голос
/ 12 апреля 2020

В вашем инициализаторе вам нужно сделать следующее:

Удалить значение stati c, которое вы присвоили self.image. Присвойте свой аргумент изображения для self.image (таким образом, сделав его динамическим c) ...

Вы можете установить значение по умолчанию вашего аргумента, чтобы, если в вызове инициализации не было введено ни одного аргумента, вы автоматически использовали "# imageLiteral (resourceName: "blank_whiteTile_48pt") "...

Что сейчас происходит, если у вас есть жестко закодированное значение.

init(title: String, 
image: UIImage = #imageLiteral(resourceName: "blank_whiteTile_48pt"), 
display: String) {
    self.title = title
    self.image = image
    self.display = display

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...