我正在使用Swift 4,由于这些在线图像的高度,我想获取在线图像并调整表格视图单元格的高度和表格视图的高度。我正在使用SDWebImage
来显示在线图像,这是代码:
var images = ["http://styliee.com/images/products/6d9vH1Kk2r.jpeg","http://styliee.com/images/products/6d9vH1Kk2r.jpeg"]
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ProductImageTableViewCell", for: indexPath) as! ProductImageTableViewCell
let imageUrl = URLs.productImageUrl + self.product.images[indexPath.row].name
cell.adImage.sd_setImage(with: URL(string: imageUrl))
cell.layoutIfNeeded()
cell.layoutSubviews()
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
但是它不能正常工作, 有帮助吗?
答案 0 :(得分:0)
Try This
@IBOutlet var tablViewHight : NSLayoutConstraint!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "imgCell", for: indexPath) as! imgCell
if let image = UIImage(named:"6d9vH1Kk2r.jpeg") {
let ratio = image.size.height / image.size.width
// Make the frame the right size to show the thumbnail
let cellFrame = CGRect(x: 0, y: 0, width: tableView.contentSize.width, height: tableView.contentSize.width * ratio)
let imageView = cell.imgShow // image view constraints pin all edges to the cell edges
imageView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
imageView?.contentMode = .scaleAspectFit
imageView?.image = image
tablViewHight.constant = cellFrame.height
}
return cell
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}