,可以通过以下步骤实现:
以下是一个示例代码,演示如何在UITableViewCell中显示来自URL的图像:
import UIKit
class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var imageView: UIImageView!
func configure(with imageURL: URL) {
// 检查缓存中是否存在图像
if let cachedImage = imageCache.object(forKey: imageURL.absoluteString as NSString) {
imageView.image = cachedImage
} else {
// 下载图像数据
URLSession.shared.dataTask(with: imageURL) { (data, response, error) in
if let error = error {
print("下载图像出错:\(error)")
return
}
// 将图像数据转换为UIImage对象
if let data = data, let image = UIImage(data: data) {
// 将图像保存到缓存中
imageCache.setObject(image, forKey: imageURL.absoluteString as NSString)
// 在主线程更新UI
DispatchQueue.main.async {
self.imageView.image = image
}
}
}.resume()
}
}
}
// 图像缓存
let imageCache = NSCache<NSString, UIImage>()
在UITableView的数据源方法中,可以调用configure方法来设置UITableViewCell的图像:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
// 获取图像的URL
let imageURL = URL(string: "https://example.com/image.jpg")!
// 设置UITableViewCell的图像
cell.configure(with: imageURL)
return cell
}
这样,UITableView中的每个UITableViewCell都会根据其对应的URL显示相应的图像。
领取专属 10元无门槛券
手把手带您无忧上云