UIImage не отображается в UITableViewCell - PullRequest
0 голосов
/ 12 мая 2019

Я добавил UIImage в свое приложение для iOS и хотел показать их в своем пользовательском UITableViewCell.Там будут разные изображения в зависимости от того, какая дорожка выбрана.Итак, в моей модели я создал следующий код, который является оператором switch.

class GrandPrix {
let grandPrix: String!
let firstDriver: String!
let secondDriver: String!
let thirdDriver: String!
var trackIconName = ""

init(grandPrix: String, firstDriver: String, secondDriver: String, thirdDriver: String){
    self.grandPrix = grandPrix
    self.firstDriver = firstDriver
    self.secondDriver = secondDriver
    self.thirdDriver = thirdDriver
}

func updateTrackicon(grandPrix: String) -> String {
    switch (grandPrix) {
    case "Australian GP":
        return "Australian"
    case "Bahrain GP":
        return "Bahrain"
    case "Chinese GP":
        return "Chinese"
    case "Azerbaijan GP":
        return "Azerbaijan"
    case "Spanish GP":
        return "Chinese"
    case "Monaco GP":
        return "Monaco"
    case "Canadian GP":
        return "Canadian"
    case "French GP":
        return "French"
    case "Austrian GP":
        return "Austrian"
    case "British GP":
        return "British"
    case "German GP":
        return "German"
    case "Hungarian GP":
        return "Hungarian"
    case "Belgian GP":
        return "Belgian"
    case "Italian GP":
        return "Italian"
    case "Singapore GP":
        return "Singapore"
    case "Russian GP":
        return "Russian"
    case "Japanese GP":
        return "Japanese"
    case "American GP":
        return "United States"
    case "Brazilian GP":
        return "Brazilian"
    case "Abu Dhabi GP":
        return "Abu Dhabi"
    default :
        return "no track"
    }
   }
 }

Теперь в мой UITableViewClass я включил следующий код, который покажет UIImage в ячейке

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! GrandPrixTableViewCell
    let race = self.grandPrix[indexPath.row]
    // Configure the cell...
    cell.grandPrix.text = race.grandPrix
    cell.firstPostion.text = race.firstDriver
    cell.secondPosition.text = race.secondDriver
    cell.thirdPostion.text = race.thirdDriver
    cell.trackImage.image = UIImage(named: race.updateTrackicon(grandPrix: race.grandPrix))

    return cell
}

Я подключил ячейку и проверил, что размер UIImages вполне соответствует размеру UIImage в раскадровке.Когда я запускаю приложение, появляется текст, но не изображение.Любая помощь будет принята.

Ниже приведен код, объясняющий, откуда поступает массив.

import UIKit

class PredictorTableViewController: UITableViewController {

var predictorTrack = ""
var firstDriver = ""
var secondDriver = ""
var thirdDriver = ""

var grandPrix = [GrandPrix]() { didSet {self.tableView.reloadData()} }

Я подумал об этом и попытался изменить cellForRowAt indexPath на следующий код.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
 let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! GrandPrixTableViewCell
    let race = self.grandPrix[indexPath.row]
    // Configure the cell...
    cell.grandPrix.text = race.grandPrix
    cell.firstPostion.text = race.firstDriver
    cell.secondPosition.text = race.secondDriver
    cell.thirdPostion.text = race.thirdDriver
    race.trackIconName = race.updateTrackicon(grandPrix: race.grandPrix)
    cell.trackImage.image = UIImage(named: race.trackIconName)

    return cell
}

Я думал, что это покажет Track UIImage, но, к сожалению, я все еще не получаю изображение.

1 Ответ

1 голос
/ 13 мая 2019

Возможно, это ошибка именования. Убедитесь, что имя совпадает или нет.

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