swift - 如何使用swift以编程方式在选择器视图中为图像设置占位符
问题描述
我有一个pickerview
显示图像的。我从缓存中挑选图像,所以需要一些时间。我希望当没有从缓存加载图像时,我的本地图像在那里显示为占位符图像。当从缓存加载图像时,它会显示图像。我是 ios 开发的新手,所以我不确定如何在选取器视图中将图像显示为占位符。如果有人有任何想法,请告诉我。
我试图在viewForRow
从缓存中获取图像之前设置图像功能。但它不起作用。
myImageView.image = UIImage(named:"no-image")
myImageView = UIImageView(image : UIImage(named: "imagename"))
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let carrier = self.carriers.object(at: row) as! NSDictionary
vehicleName = carrier.value(forKey: kcarrierName) as! String
vehicleID = carrier.value(forKey: kId) as! Int
self.vehicleType.text = vehicleName
self.currentVehicle.text = vehicleName
self.truckType = self.vehicleType.text!
self.truckType = self.currentVehicle.text!
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let carrier = self.carriers.object(at: row) as! NSDictionary
vehicleImage = carrier.value(forKey: kImage) as! String
let viewForImage = UIView()
var myImageView = UIImageView()
self.rotAngle = 90 * (.pi/180)
myImageView.frame = CGRect(x : 0, y : 0, width: 90, height: 90)
myImageView.cacheImage(urlString: vehicleImage)
myImageView.transform = CGAffineTransform(rotationAngle: self.rotAngle)
return myImageView
}
我希望选择器视图中显示的所有图像的占位符图像
解决方案
首先分配默认图像。然后从缓存中获取图像。直到图片从服务器下载或从缓存中获取,将显示默认的本地图片
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let carrier = self.carriers.object(at: row) as! NSDictionary
vehicleImage = carrier.value(forKey: kImage) as! String
let viewForImage = UIView()
var myImageView = UIImageView()
self.rotAngle = 90 * (.pi/180)
myImageView.frame = CGRect(x : 0, y : 0, width: 90, height: 90)
myImageView.image = UIImage(named:"no-image")
myImageView.cacheImage(urlString: vehicleImage)
myImageView.transform = CGAffineTransform(rotationAngle: self.rotAngle)
return myImageView
}