创建新的UITableView
时,我可以进行设置
cell.imageView。从理论上讲,这不是应该显示图像吗?
是在UITableViewCell
内实际显示图像以创建自定义单元格子类的唯一方法吗?
这是我正在使用的代码:
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = UITableViewCell (style: UITableViewCellStyle.value1, reuseIdentifier: "cell")
cell.textLabel?.text = practices[indexPath.row].name
cell.detailTextLabel?.text = practices[indexPath.row].address?.displayString()
//this doesn't show an image
cell.imageView?.clipsToBounds = true
cell.imageView?.contentMode = .scaleAspectFill
cell.imageView?.image = practices[indexPath.row].logo
return (cell)
}
答案 0 :(得分:3)
您应该让一个单元出队,而不是每次都分配一个新单元:
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
// Configure the cell
cell.imageView?.image = practices[indexPath.row].logo
return cell
}
按照其他人的建议,在您的xcassets中添加测试图像,以验证问题是否出在Practices数组中。
答案 1 :(得分:1)
是在单元格中实际显示图像的唯一方法是创建一个 服装细胞?
不,那不是真的。您也可以按照以下步骤进行设置:
function Code(){
var spreadsheet = SpreadsheetApp.openById("<spreadsheet_id>")
var form = FormApp.openById("<form_id>")
}
在您的代码中
public static void Main(string[] args)
{
Console.WriteLine("string");
var threads = new Thread[5];
for (int i = 0; i < threads.Length; ++i)
{
threads[i] = new Thread(() => {
Thread.Sleep(1000);
Console.WriteLine("smth");
}) { IsBackground = true };
threads[i].Start();
}
}
请检查cell.imageView?.image = some UIImage
实际有一个cell.imageView?.image = practices[indexPath.row].logo
也可以使用practices[indexPath.row].logo
UIImage
代替每次在dequeueReusableCell
中分配它
答案 2 :(得分:0)
请检查:
if practices[indexPath.row].logo is UIImage {
print("My logo is not UIImage")
cell.imageView?.image = nil
} else {
print("My logo is UIImage")
cell.imageView?.image = practices[indexPath.row].logo
}