iOS 11中UITableViewCell内UIImageView的固定大小
我使用默认的UITableViewCell,它附带UIImageView、标题标签和描述标签。我希望我的UIImageView有一个固定的大小,以便所有图像都具有相同的大小。目前看来是这样的: 单元格的行高为“自动”,以下是UITableView的属性 如何将UIImageView设置为固定大小 图像以异步方式下载,如下所示:iOS 11中UITableViewCell内UIImageView的固定大小,ios,uitableview,Ios,Uitableview,我使用默认的UITableViewCell,它附带UIImageView、标题标签和描述标签。我希望我的UIImageView有一个固定的大小,以便所有图像都具有相同的大小。目前看来是这样的: 单元格的行高为“自动”,以下是UITableView的属性 如何将UIImageView设置为固定大小 图像以异步方式下载,如下所示: override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPa
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+添加。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!)
}
}
}
}
您正在尝试更改
完成块处理程序内UIImageView
的高度锚定
和宽度锚定
。您不应该这样做,如果需要,请确保正在更新主线程中的布局
您的UIImageView
的顶部、底部、前导和尾随定位点
可能等于超级视图
,在您的情况下,它是tableViewCell
,并且假定您的UITableViewCell
具有自动高度。这些结果导致UIImageView
的大小不相等
由于您使用的是interface builder,请尝试按如下方式布局您的UIImageView
:
如您所见,我的UIImageView
具有固定的宽度和高度
最后,别忘了设置你的UIImageView
的contentMode
并勾选cliptobunds
为是。试着设置imageView.contentMode=.scaleAspectFit
。我做了,它什么也没做!谢谢imageView.image设置在主线程内。我已经粘贴了setImageURL的代码。由于某些原因,我无法在UIImageView上设置任何约束,如图所示。同样,我使用的是默认的UITableViewCell,而不是创建原型单元格。也许这是Xcode 9中的一个bug。您可以:)。单击TableViewCell并将其样式设置为“自定义”。试试看。如果我的风格是定制的,那么我就不能设置任何东西!没关系。我将创建一个自定义的原型单元并使用它。这取决于您。只是别忘了将自定义UITableViewCell注册到UITableView,并选择一个有用的答案:)我已经完成了所有设置,但仍在努力。由于我的图像有一个垂直方向,它总是扩展到单元格的高度,尽管有固定的高度限制。克里普托邦成功了!