我想在点击save按钮后从tableview获取数据。但是当用户第二次更改值时,相同的值两次追加。[
[在此处输入图像说明][1]
][2]
协议按钮选择{func tapStar(IndexPath:IndexPath,star:Int)}
类LeavedayDetailScell:UITableViewCell{
@IBOutlet weak var leaveDateLabel: UILabel!
@IBOutlet weak var leaveDateName: UILabel!
@IBOutlet weak var firstButton: UIButton!
@IBOutlet weak var seconButton: UIButton!
@IBOutlet weak var fullButton: UIButton!
var delegate:ButtonSelect?
var indexpath:IndexPath?
@IBAction func bittonPressed(_ sender: UIButton) {
delegate?.tapStar(indexPath: indexpath!, star: sender.tag)
}
}
类DayDetailsController:UIViewController
@IBAction func ButtonPressed(_sender:UIButton){
// i want to submit tableview result with radio button value change this place
//示例如
//[“03/27/2021+1”,“03/28/2021+2”]
//我的结果
//[“03/27/2021+1”,“03/28/2021+2”,“03/27/2021+3”,“03/28/2021+2”]//相同值两次
}
}
扩展DayDetailsController:UITableViewDelegate,UITableViewDataSource{func tableView(_tableView:UITableView,numberOfRowsInSection section:Int)->Int{
return listDayDetailsData.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier:"LeaveDayDetailsCell",for: indexPath) as! LeaveDayDetailsCell
cell.leaveDateLabel.text = listDayDetailsData[indexPath.row]["BreakDate"] as? String ?? "-"
cell.leaveDateName.text = listDayDetailsData[indexPath.row]["DateName"] as? String ?? "-"
cell.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
cell.layer.borderWidth = 2
dayDetailsTableView.rowHeight = 132.00
cell.delegate = self
cell.indexpath = indexPath
return cell
}
}
扩展DayDetailsController:按钮选择{
func tapStar(indexPath: IndexPath, star: Int) {
let cell = dayDetailsTableView.cellForRow(at: indexPath) as! LeaveDayDetailsCell
if star == 1{
cell.firstButton.setImage(UIImage(named: "radioFull.png"), for: .normal)
cell.seconButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
cell.fullButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
totalvalue = star
}
else if star == 2{
cell.firstButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
cell.seconButton.setImage(UIImage(named: "radioFull.png"), for: .normal)
cell.fullButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
totalvalue = star
}
else if star == 3{
cell.firstButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
cell.seconButton.setImage(UIImage(named: "radioBlank.png"), for: .normal)
cell.fullButton.setImage(UIImage(named: "radioFull.png"), for: .normal)
totalvalue = star
}
answerValue.append("\(listDayDetailsData[indexPath.row]["BreakDate"] as! String) + \(totalvalue)")
print(answerValue,"****answer")
}
}
在listDayDetailsData中保留星计数,并根据按钮点击更新值
离开
class LeaveDayDetailsCell: UITableViewCell {
@IBOutlet weak var leaveDateLabel: UILabel!
@IBOutlet weak var leaveDateName: UILabel!
@IBOutlet weak var firstButton: UIButton!
@IBOutlet weak var seconButton: UIButton!
@IBOutlet weak var fullButton: UIButton!
}
DayDetailsController扩展
extension DayDetailsController:UITableViewDelegate,UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return listDayDetailsData.count
}
@objc func firstButtonPressed(sender: UIButton) {
let index = sender.tag
// Update star value in listDayDetailsData[index]
// Reload single row at index 0
dayDetailsTableView.reloadRows(at: [IndexPath(row: index, section: 0)], with: .none)
}
@objc func secondButtonPressed(sender: UIButton) {
let index = sender.tag
// Update star value in listDayDetailsData[index]
// Reload single row at index 0
dayDetailsTableView.reloadRows(at: [IndexPath(row: index, section: 0)], with: .none)
}
@objc func fullButtonPressed(sender: UIButton) {
let index = sender.tag
// Update star value in listDayDetailsData[index]
// Reload single row at index 0
dayDetailsTableView.reloadRows(at: [IndexPath(row: index, section: 0)], with: .none)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier:"LeaveDayDetailsCell",for: indexPath) as! LeaveDayDetailsCell
// cell.leaveDateLabel.text = listDayDetailsData[indexPath.row]["BreakDate"] as? String ?? "-"
// cell.leaveDateName.text = listDayDetailsData[indexPath.row]["DateName"] as? String ?? "-"
cell.layer.borderColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
cell.layer.borderWidth = 2
cell.firstButton.tag = indexPath.row
cell.seconButton.tag = indexPath.row
cell.fullButton.tag = indexPath.row
cell.firstButton.addTarget(self, action: #selector(firstButtonPressed(sender:)), for: .touchUpInside)
cell.firstButton.addTarget(self, action: #selector(secondButtonPressed(sender:)), for: .touchUpInside)
cell.firstButton.addTarget(self, action: #selector(fullButtonPressed(sender:)), for: .touchUpInside)
switch listDayDetailsData[indexPath.row]["Star"] as! Int {
case 1:
// Update your cell buttons
break
case 2:
// Update your cell buttons
break
case 3:
// Update your cell buttons
break
default:
// Default case
break
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 132.00
}
}
专业提示:
使用对象来保存数据比使用字典更好
例如
struct DayDetails {
var breakDate: String
var dateName: String
var stars: Int
//....
}
还有第三方库可用于处理星级UI以及https://github.com/evgenyneu/cosmos
我正在尝试使用selenium和Python单击这个单选按钮。 我有 但它不允许我点击它。我如何使用名称、值或类、值等的组合来点击? 关于如何使用硒,是否有一个很好的信息来源?因为我所发现的大部分是在java上使用的,而我使用的是Python。 编辑:使用XPATH
Java代码: 错误代码:
问题内容: 我正在一个项目中,我想获取选定的tableview数据,但我正在使用FXML。 我有无FXML的代码,但无法将其用于FXML。 码: TestController: 现在我想知道我该如何编码以从tableview获取选定的数据 请帮我。 谢谢。 问题答案: 如果要选择行索引,请使用
问题内容: 所以我试图获取我选择的行的textLabel的值。我尝试打印它,但是没有用。经过研究,我发现该代码有效,但仅在Objective-C中有效。 我找不到Swift的任何解决方案。虽然可以打印indexpath.row,但这不是我所需要的。 所以我该怎么做?或此代码的“快速版本”是什么? 问题答案: 试试这个:
我已经搜索了前面的一些问题,并没有能够纠正--我是一个完全的新手,所以请原谅我的无知...尝试使用以下方法选择页面上的第三个“单选”按钮: 结果是: “消息:没有此类元素:找不到元素:{”method“:”XPath“,”Selector“:”//[@id=“Wizard_Tabs”]/div/div[1]/div/ul/li[3]/input“}”
我的网页上有一个表单,如下所示: 如何在Javascript中提取当前选定单选按钮(没有提交操作)的值?我想要的是以下几点: