我使用UIImageView,titleLabel和描述标签附带的默认UITableViewCell。我想为我的UIImageView有一个固定的大小,所以所有的图像都是相同的大小。目前,它看起来像这样:UIImageView内置UITableViewCell iOS中的固定大小11
的单元格的行高度为“自动”,在这里是UITableView中的性能。
我怎样才能让我的UIImageView固定大小?
的图像被异步下载,如下图所示:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
let dish = self.dishes[indexPath.row]
cell.textLabel?.text = dish.title
cell.imageView?.image = UIImage(named: "placeholder")
cell.detailTextLabel?.text = dish.description
cell.imageView?.setImageFor(url: URL(string: dish.imageURL)!) { image in
cell.imageView?.image = image
cell.imageView?.translatesAutoresizingMaskIntoConstraints = false
cell.imageView?.widthAnchor.constraint(equalToConstant: 50)
cell.imageView?.heightAnchor.constraint(equalToConstant: 50)
cell.setNeedsLayout()
}
return cell
}
的UIImageView + Additions.swift
func setImageFor(url :URL, completion: @escaping (UIImage) ->()) {
DispatchQueue.global().async {
let data = try? Data(contentsOf: url)
if let data = data {
let image = UIImage(data: data)
DispatchQueue.main.async {
completion(image!)
}
}
}
}
尝试设置'imageView.contentMode = .scaleAspectFit'。 – krlb
我做到了,它什么都没做! –