【发布时间】:2016-03-27 13:36:12
【问题描述】:
在带有 swift 的 Xcode 7 中,我尝试使用资产文件夹中的图标显示在普通原型 tableview 单元格的图标槽中。
我的代码编译并且应用程序运行良好,在表格中显示所有正确的行文本标题,但所有单元格都使用我(可能是愚蠢地)输入到原型表格单元格的属性检查器中的图标。
默认情况下,style=Basic 表格单元格在情节提要的标题左侧没有图标。但是...如果您在 image=MyAssetsIconName 的 assets 文件夹中添加图标图像的名称,UI 构建器会自动将 UIImageView 添加到表格行单元格的左端。当然,所有行都会显示您选择的图像。这是我的应用目前所做的。
但我想更改每一行的图标图像,以便任何行上的图像与我显示的文本行匹配。因此,我尝试在创建每个行单元格时为其分配一个新图像(来自资产文件夹)。我在将文本标题分配给单元格后立即进行了分配。
这是我的代码,运行良好(但不显示我想要的图像)。
class TsbReportsCell: UITableViewCell {
@IBOutlet weak var Title: UILabel!
@IBOutlet weak var Detail: UILabel!
@IBOutlet weak var Icon: UIImageView!
...
}
在表格视图控制器中:
In the table view controller class:
// define datasources
var reportnames = [String]()
var reportimages = [String]()
override func viewDidLoad() {
super.viewDidLoad()
reportnames = ["Balance Report",
"Routine Report",
"Low Quality Report"]
reportimages = ["enter.png",
"exterior.png",
"export.png"]
}
override func tableView(tableView:.... {
// all this code works fine
let cell = tableView.dequeueReusableCellWithIdentifier...
let row = indexPath.row
cell.Title.text = reportnames[row]
// here are the lines that seem to have no effect at all
let rowimage = UIImage(named: reportimages[row])
cell.Icon = UIImageView(image: rowimage)
return cell
}
任何想法我做错了什么?我在表格单元格行的属性中命名了一个图像,只是为了让 UI 构建器为我添加 imageview 占位符。但也许我永远不允许覆盖该图像,即使我可以为它创建一个出口。
这似乎是一个很简单的问题,但我搜索了至少 20 个帖子,网络,文档,我仍然找不到任何东西。谢谢
【问题讨论】:
标签: xcode swift uitableview