我在CollectionViewCell中有2个标签和1个图像视图。我可以在单元格中设置图像,但我无法在Cell中设置标签。 CollectionViewCell类:
class CollectionViewCell: UICollectionViewCell {
@IBOutlet weak var weatherIcon: UIImageView!
@IBOutlet weak var degreeLbl: UILabel!
@IBOutlet weak var dateTimeLbl: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
}
我如何在我的视图中使用它控制器:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.fiveDaysWeather.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(
withReuseIdentifier: "collectionViewCell", for: indexPath) as! CollectionViewCell
if fiveDaysWeather.count > 0{
let forecast = fiveDaysWeather[indexPath.row]
let icon = forecast.icon!
if let url = URL(string: "http://openweathermap.org/img/w/\(icon).png"){
if let data = try? Data(contentsOf: url) {
cell.weatherIcon.image = UIImage(data:data)!
}
}
cell.dateTimeLbl?.text = forecast.hour!
cell.degreeLbl?.text = "\(forecast.tempMax!)°"
}
return cell
}
我添加了一个模拟器屏幕和我的故事板截图。谢谢你的帮助。
答案 0 :(得分:0)
也许你需要注册课程。在CollectionViewController类的viewDidLoad方法中尝试这个。
self.collectionView.registerClass(CollectionViewCell.self, forCellReuseIdentifier: "collectionViewCell")
你也应该检查弱变量是否存在。在代码的这一行放置一个断点并检查标签/其他项目:
cell.dateTimeLbl?.text = forecast.hour!