我有一个结构来存储已经捆绑在应用程序中的图片的名称和图像名称,如下所示
struct City { var name: String
var imageName: String }
class firstViewController: UIViewController
let cities = [City(name:"City00", imageName:"city_00"),
City(name:"City01", imageName:"city_01"),
City(name:"City02", imageName:"city_02")]
在displayViewController中,我有一个变量nowCityImages
来存储从firstViewcontroller中选择的数据
class displayViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate {
var nowCityImages: [String] = []
现在我想在tableview中显示城市的图像
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let myCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CityCell
let outCityImages = nowCityImages[indexPath.item]
// This is not displaying any images
myCell.cityImage.image = UIImage(named:outCityImages)
return myCell
}
如果我使用print(outCityImages)
,我会将输出视为例外
City00
City02
但我不知道如何替换tableview单元格中的City00 with city_00
和City02 with city_02
,以便显示图片。
答案 0 :(得分:0)
如果末尾的数字是2位数字:
var str = "City00"
let index = str.index(str.endIndex, offsetBy: -2)
var str1 = str.substring(to: index).lowercased()
var str2 = str.substring(from: index)
let name = "\(str1)_\(str2)" //city_00
答案 1 :(得分:0)
您是否可以更改为获取nowCityImages的代码
var nowCityImages: [String] = cities.filter(){$0.imageName}
现在它将根据需要返回图像名称。