我有一个自定义的UITableViewCell。
class ProductRow: UITableViewCell {
@IBOutlet weak var iconStack: UIStackView!
@IBOutlet weak var prdImage: UIImageView!
@IBOutlet weak var prdPrice: UILabel!
@IBOutlet weak var prdTitle: UILabel!
override func awakeFromNib()
{
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
我通过扩展
加载UIImageViewextension UIImageView {
public func imageFromUrl(urlString: String)
{
let myUrl = URL(string: "https://" + MobMenu.domain + "/" + MobMenu.shop + "/prd/" + urlString);
let task = URLSession.shared.dataTask(with: myUrl!)
{
data, response, error in
guard let data = data, error == nil else
{
print("error=\(error)")
return
}
DispatchQueue.main.async
{
self.image = UIImage(data: data)
}
}
task.resume()
}
}
我通过tableview函数
更新行中的字段func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let myCell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! ProductRow
let prdDTO = prdList[indexPath.row];
//getURLImage(img : prdDTO.getPrdImg(), myCell : myCell)
myCell.prdTitle.text = prdDTO.getPrdTitle()
myCell.prdTitle.font = UIFont(name: "HelveticaNeue-Thin", size: 12)
myCell.prdPrice.text = prdDTO.getPrice()
myCell.prdImage.imageFromUrl(urlString: prdDTO.getPrdImg())
myCell.prdImage.contentMode = UIViewContentMode.scaleAspectFit
myCell.prdImage.clipsToBounds = true
}
问题是这行代码myCell.prdImage.contentMode = UIViewContentMode.scaleAspectFit。如果我删除它,一切都应该是它应该是,但如果我删除它,结果图像将太大。如果我把它留在那里,然而图像被推到tableview
我花了很多时间在Google上搜索,但无法解决问题。请帮忙。非常感谢
答案 0 :(得分:0)
首先,我建议您尝试提供适合自定义单元格类定义的方面。 您还应该将AutoTranslatingMasks设置为false并自己设置约束。 如果图像尺寸不太大,则应选择
image.renderingMode.alwaysOriginal
以便UITableViewCell不会更改