如何解决更改 UICollectionView 单元格内容
我希望在我的 CollectionView 单元格的背景中有一个进度条(= 状态栏)。我想使用 UIView(通过更改其宽度)来实现这一点。这是它的外观(“statusbar”:绿色背景 UIView):
我的代码:
import UIKit
class MyCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var statusbar: UIView!
override func layoutSubviews() {
// cell rounded section
self.layer.cornerRadius = 15.0
self.layer.masksToBounds = true
super.layoutSubviews()
statusbar.frame = CGRect(x: 0,y: 0,width: 5,height: self.frame.height)
}
}
extension MyCollectionViewCell{
func setStatusbar(completedTasks: Int,totalTasks: Int){
print(self.frame.width)
let newWidth = 80 //(self.frame.width * (CGFloat(completedTasks / totalTasks)))
statusbar.backgroundColor = .orange
statusbar.frame = CGRect(x: 0,width: newWidth,height: Int(self.frame.height))
reloadInputViews()
}
}
然后这样称呼它:
func collectionView(_ collectionView: UICollectionView,cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// get a reference to our storyboard cell
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier,for: indexPath as IndexPath) as! MyCollectionViewCell
// Use the outlet in our custom class to get a reference to the UILabel in the cell
cell.myLabel.text = self.items[indexPath.row] // The row value is the same as the index of the desired text within the array.
cell.backgroundColor = UIColor(rgb: 0xF444444)
cell.setStatusbar(completedTasks: 5,totalTasks: 25) //!!! HERE !!!
return cell
}
问题:
它不会改变 UIView 的宽度(保持宽度 = 5,应该是宽度 = 80)
编辑: 这是它的样子:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。