gpt4 book ai didi

ios - tableview 数据无法在 swift 中正确显示

转载 作者:行者123 更新时间:2023-11-28 08:05:09 24 4
gpt4 key购买 nike

enter image description here

具有三个复选框[in,out,absent] 的Tableview 如果单击任何一个复选框[in,out,absent] 则调用Json 服务 并在 tableview 中显示数据,除 [Out] 复选框外,所有工作正常。如果我单击 [outlabel:11:54 PM] 等输出标签处的 [out] 复选框结果,则必须显示。它显示为空在 [outlabelg: ],如果我在 tableview 中单击下一个单元格 [out checkbox] 更新了私有(private) [out:Labledata] 数据并显示选定的单元格 [out:lable]data 。请在我做错的地方帮助我

这是表格 View 代码

func numberOfSections(in tableView: UITableView) -> Int {

return (attendanceInfo.count == 0) ? 0 : 1

}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return attendanceInfo.count

}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell =
tableView.dequeueReusableCell(
withIdentifier: "DetailsCell", for: indexPath) as! AttendanceDetailsTableViewCell

let row = (indexPath as NSIndexPath).row


cell.InButton.tag = row

cell.OutButton.tag = row

cell.AbsentButton.tag = row

let maskLayer = CAShapeLayer()

let bounds = cell.bounds

maskLayer.path = UIBezierPath(roundedRect: CGRect(x: 5, y: 3, width: bounds.width-15, height: bounds.height-15), cornerRadius: 2).cgPath
cell.layer.mask = maskLayer


if(attendanceInfo.count>0){

let attendance = attendanceInfo[row] as AttendanceInfo

cell.AttendnceLabel.textColor = UIColor(red: CGFloat(0x00)/255
,green: CGFloat(0xB1)/255
,blue: CGFloat(0xB1)/255
,alpha: 1.0)

cell.AbsentInfoLabel.isHidden = true

cell.Absentinfovalue.isHidden = true


if(attendance.inTime == "")&&(attendance.outTime == "")
{


cell.InButton.isHidden = false
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true
cell.OutinfoLabel.isHidden = false


}

if(attendance.inTime != "")
{


cell.InButton.isHidden = true
cell.OutButton.isHidden = false
cell.AbsentButton.isHidden = false
cell.OutinfoLabel.isHidden = false

}

if(attendance.inTime != "") && (attendance.outTime != "")
{

cell.InButton.isHidden = true
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true
cell.OutinfoLabel.isHidden = false
cell.OutLable.text = attendance.outTime

}

if(attendance.attendance == "PRESENT")

{
cell.OutLable.text = attendance.outTime



}

if(attendance.attendance == "ABSENT")
{
cell.InButton.isHidden = true
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true

cell.Absentinfovalue.isHidden = false
cell.OutLable.isHidden = true
cell.OutinfoLabel.isHidden = true

cell.AttendnceLabel.textColor = UIColor.red
cell.Absentinfovalue.text = attendance.updatedTime


}

cell.Class.text = attendance.standard

cell.NameLabel.text = attendance.name

cell.InLabel.text = attendance.inTime

cell.OutLable.text = attendance.outTime

cell.AttendnceLabel.text = attendance.attendance

cell.DateLablel.text = attendance.attendanceDate

cell.attendanceid = attendance.attendanceId


cell.backgroundView = UIImageView(image: UIImage(named: "background_common")!)


cell.Profileimage.image = UIImage(named: "profile_pic")
cell.Profileimage.downloadImageFrom(link: attendance.photo!, contentMode: UIViewContentMode.scaleAspectFit)


if(InCheckec[indexPath.row]==true)
{
cell.InButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.InButton.isSelected = true

}
else{


cell.InButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.InButton.isSelected = false
}

if(OutCheckec[indexPath.row]==true)
{
cell.OutButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.OutButton.isSelected = true

}
else{


cell.OutButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.OutButton.isSelected = false
}



if(AbsentCheckec[indexPath.row]==true)
{
cell.AbsentButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.AbsentButton.isSelected = true

}
else{


cell.AbsentButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.AbsentButton.isSelected = false
}
}

return cell

}

这是out复选框的代码[in,absent也同这种代码方式]

@IBAction func OUTBUTTON(_ sender: UIButton) {
snackbar.backgroundColor = UIColor(red: CGFloat(0x00)/255
,green: CGFloat(0xB1)/255
,blue: CGFloat(0xB1)/255
,alpha: 1.0)


status = "2"

let buttontag = sender.tag

let prefs:UserDefaults = UserDefaults.standard
StaffID = prefs.value(forKey: "STAFFID") as! String


let position: CGPoint = sender.convert(CGPoint(x: 10, y: 20), to: self.TableView)
let indexPath = self.TableView.indexPathForRow(at: position)



if (sender.isSelected == true)

{

OutCheckec[buttontag] = false
inButtoncount -= 1

if(inButtoncount == 0)
{
snackbar.dismiss()
upStudentId.removeAll()
upAttendanceID.removeAll()
UPstatusTest.removeAll()
}
else{

upStudentId.removeLast()
UPstatusTest.removeLast()
upAttendanceID.removeLast()

}

}
else
{


OutCheckec[buttontag] = true
AbsentCheckec[buttontag] = false

inButtoncount += 1
snackbar.show()

let out:Bool = true

prefs.set(out, forKey:"1")


let kid = attendanceInfo[(indexPath?.row)!] as AttendanceInfo

upStudentId.append(kid.studentId!)
upAttendanceID.append(kid.attendanceId)
UPstatusTest.append(status)
upStaffId = StaffID

}



self.TableView.reloadRows(at: [indexPath!], with: UITableViewRowAnimation.none)

}

这是 Json 结果 enter image description here

最佳答案

这是工作代码

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell =
tableView.dequeueReusableCell(
withIdentifier: "DetailsCell", for: indexPath) as! AttendanceDetailsTableViewCell

let row = (indexPath as NSIndexPath).row


cell.InButton.tag = row

cell.OutButton.tag = row

cell.AbsentButton.tag = row

let maskLayer = CAShapeLayer()

let bounds = cell.bounds

maskLayer.path = UIBezierPath(roundedRect: CGRect(x: 5, y: 3, width: bounds.width-15, height: bounds.height-15), cornerRadius: 2).cgPath
cell.layer.mask = maskLayer


if(attendanceInfo.count>0){

let attendance = attendanceInfo[row] as AttendanceInfo

cell.AttendnceLabel.textColor = UIColor(red: CGFloat(0x00)/255
,green: CGFloat(0xB1)/255
,blue: CGFloat(0xB1)/255
,alpha: 1.0)


if(attendance.inTime == "")&&(attendance.outTime == "")
{


cell.InButton.isHidden = false
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true
}

if(attendance.inTime != "")
{
cell.InButton.isHidden = true
cell.OutButton.isHidden = false
cell.AbsentButton.isHidden = false
}


if(attendance.inTime != "") && (attendance.outTime != "")
{

cell.InButton.isHidden = true
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true
cell.OutLable.text = attendance.outTime

}
cell.OutLable.text=" "
cell.OutinfoLabel.text="Out"

if(attendance.attendance == "PRESENT")

{
cell.OutLable.text = attendance.outTime
cell.OutinfoLabel.text = "Out"

}else if(attendance.attendance == "ABSENT")
{
cell.InButton.isHidden = true
cell.OutButton.isHidden = true
cell.AbsentButton.isHidden = true

cell.OutinfoLabel.text = "Absent11"
cell.OutLable.text = attendance.updatedTime
cell.AttendnceLabel.textColor = UIColor.red

}


cell.Class.text = attendance.standard

cell.NameLabel.text = attendance.name

cell.InLabel.text = attendance.inTime

cell.AttendnceLabel.text = attendance.attendance

cell.DateLablel.text = attendance.attendanceDate

cell.attendanceid = attendance.attendanceId


cell.backgroundView = UIImageView(image: UIImage(named: "background_common")!)


cell.Profileimage.image = UIImage(named: "profile_pic")
cell.Profileimage.downloadImageFrom(link: attendance.photo!, contentMode: UIViewContentMode.scaleAspectFit)


if(InCheckec[indexPath.row]==true)
{
cell.InButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.InButton.isSelected = true

}
else{


cell.InButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.InButton.isSelected = false
}

if(OutCheckec[indexPath.row]==true)
{
cell.OutButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.OutButton.isSelected = true

}
else{


cell.OutButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.OutButton.isSelected = false
}



if(AbsentCheckec[indexPath.row]==true)
{
cell.AbsentButton.setBackgroundImage(UIImage(named: "Check_Box"), for: UIControlState.normal)
cell.AbsentButton.isSelected = true

}
else{


cell.AbsentButton.setBackgroundImage(UIImage(named: "uncheck_Box"), for: UIControlState.normal)
cell.AbsentButton.isSelected = false
}
}

return cell

}

关于ios - tableview 数据无法在 swift 中正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com