Я добавил 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, но, к сожалению, я все еще не получаю изображение.