我使用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
我做到了,它什麼都沒做! –