如何在 TableView 中制作进度视图?
How to make a Progress View in a TableView?
我正在尝试在 TableView 上制作进度视图。
我成功创建了progressview,但是如果动画是true bar就消失了,如果是false bar就满了...我不明白为什么。
这是我的代码:
这是我的追加方法:
if formazione == formazione {
guestInfoList.append("Formazione: \(formazione)%")
}
这里是完整的出列函数:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var countdowncell = tableView.dequeueReusableCell(withIdentifier: "countdowncell", for: indexPath)
//countdown
if indexPath.row == 9{
countdowncell.textLabel?.text = calcolaCountdown()
}else{
countdowncell.textLabel?.text = guestInfoList[indexPath.row]
}
//Creazione Progress View
if indexPath.row == 12 {
cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
let progressView = UIProgressView(progressViewStyle: .default)
//setting height of progressView
let transform = CGAffineTransform(scaleX: cell.frame.size.width, y: cell.frame.size.height)
progressView.transform = transform
cell.contentView.addSubview(progressView)
//**//inserisci valore formazione
progressView.setProgress(Float(formazione), animated: false)
}
return countdowncell
}
Ps: 如果我想将进度视图放在单元格的右侧?
编辑
我终于成功了!谢谢马特!!
if indexPath.row == 12 {
var cell = tableView.dequeueReusableCell(withIdentifier: "formprogresscell", for: indexPath)
let progressView = UIProgressView(progressViewStyle: .default)
//setting height of progressView
progressView.frame = CGRect(x: 230, y: 20, width: 130, height: 130)
progressView.progress += 0.5
progressView.rightAnchor.accessibilityActivate()
//**//inserisci valore formazione
progressView.setProgress(Float(formazione), animated: true)
progressView.progressTintColor = UIColor.red
cell.textLabel?.text = "Formazione: \(formvalue)%"
cell.contentView.addSubview(progressView)
}
问题是您在创建进度视图后对它做了什么:
let progressView = UIProgressView(progressViewStyle: .default)
您没有给 progressView
任何 frame
。因此它没有。特别是,它没有宽度。因此它是不可见的。
给它一个框架可以解决你的两个问题:你给视图一个宽度,你给它一个原点,这样你就可以把它放在内容视图中你想要的地方。 (但实际上你应该使用自动布局,而不是框架。)
我正在尝试在 TableView 上制作进度视图。
我成功创建了progressview,但是如果动画是true bar就消失了,如果是false bar就满了...我不明白为什么。
这是我的代码:
这是我的追加方法:
if formazione == formazione {
guestInfoList.append("Formazione: \(formazione)%")
}
这里是完整的出列函数:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var countdowncell = tableView.dequeueReusableCell(withIdentifier: "countdowncell", for: indexPath)
//countdown
if indexPath.row == 9{
countdowncell.textLabel?.text = calcolaCountdown()
}else{
countdowncell.textLabel?.text = guestInfoList[indexPath.row]
}
//Creazione Progress View
if indexPath.row == 12 {
cell = UITableViewCell(style: .default, reuseIdentifier: "Cell")
let progressView = UIProgressView(progressViewStyle: .default)
//setting height of progressView
let transform = CGAffineTransform(scaleX: cell.frame.size.width, y: cell.frame.size.height)
progressView.transform = transform
cell.contentView.addSubview(progressView)
//**//inserisci valore formazione
progressView.setProgress(Float(formazione), animated: false)
}
return countdowncell
}
Ps: 如果我想将进度视图放在单元格的右侧?
编辑
我终于成功了!谢谢马特!!
if indexPath.row == 12 {
var cell = tableView.dequeueReusableCell(withIdentifier: "formprogresscell", for: indexPath)
let progressView = UIProgressView(progressViewStyle: .default)
//setting height of progressView
progressView.frame = CGRect(x: 230, y: 20, width: 130, height: 130)
progressView.progress += 0.5
progressView.rightAnchor.accessibilityActivate()
//**//inserisci valore formazione
progressView.setProgress(Float(formazione), animated: true)
progressView.progressTintColor = UIColor.red
cell.textLabel?.text = "Formazione: \(formvalue)%"
cell.contentView.addSubview(progressView)
}
问题是您在创建进度视图后对它做了什么:
let progressView = UIProgressView(progressViewStyle: .default)
您没有给 progressView
任何 frame
。因此它没有。特别是,它没有宽度。因此它是不可见的。
给它一个框架可以解决你的两个问题:你给视图一个宽度,你给它一个原点,这样你就可以把它放在内容视图中你想要的地方。 (但实际上你应该使用自动布局,而不是框架。)