gpt4 book ai didi

ios - 单元格标签无法捕获表格 View 中的值

转载 作者:行者123 更新时间:2023-11-29 05:58:33 24 4
gpt4 key购买 nike

我有两个数字数组,我试图匹配它们,然后想要更改 TableView 中 cellForRowAtIndexPath 委托(delegate)中单元格标签的背景。但即使条件正确满足,它也没有捕捉到我的条件。这是我的代码:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if dataLoded {
if isGroupListView {

if localGroupChannelsArr.count > 0 {
noDataFoundView.isHidden = true
}else {
noDataFoundView.isHidden = false
}

return localGroupChannelsArr.count
}

if localSingleChannelsArr.count > 0 {
noDataFoundView.isHidden = true
}else {
noDataFoundView.isHidden = false
}

return localSingleChannelsArr.count
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
var cell = ChatRoomCellView()

var channelRoom = ChatRoom()
// var onlineStatus = OnlineUser()

if isGroupListView {
channelRoom = localGroupChannelsArr[indexPath.row]
cell = groupChatRoomsList.dequeueReusableCell(withIdentifier: "GroupRoomCellView") as! ChatRoomCellView
}else {
channelRoom = localSingleChannelsArr[indexPath.row]
cell = singleChatRoomsList.dequeueReusableCell(withIdentifier: "SingleRoomCellView") as! ChatRoomCellView

for (phone, number) in zip(numbers, onlineUserArray) {

print(phone)
print(phone,number.phone!)
if phone == number.phone
{
if number.status == "online"
{
print("Matched")
cell.onlineStatusLbl.backgroundColor = #colorLiteral(red: 0.08950354904, green: 0.807744801, blue: 0.07534810156, alpha: 1)
}
else if number.status == "offline"
{
cell.onlineStatusLbl.backgroundColor = #colorLiteral(red: 0.6666666865, green: 0.6666666865, blue: 0.6666666865, alpha: 1)
}
else
{
cell.onlineStatusLbl.backgroundColor = UIColor.clear
}
}
}
}

cell.selectionStyle = .none
cell.delegate = self
cell.myIndexPath = indexPath
cell.chatRoomObj = channelRoom
cell.onlineUser = onlineUserArray
cell.configCell()

return cell
}

现在,当满足条件时,if phone == number.phone它不会改变单元格标签的颜色

最佳答案

我认为问题在于,每次收到单元格请求时,您都会循环遍历整个数组。您可能想要做的是获取 indexPath.rownumber 并循环遍历 onlineUserArray 以查找状态。

类似这样的东西(我不知道你的确切数据结构,但这应该是正确的):

    // inside cellForRowAt

cell = singleChatRoomsList.dequeueReusableCell(withIdentifier: "SingleRoomCellView") as! ChatRoomCellView

// just to make it easy to see what's going on in the debug console
print(indexPath)

let phone = numbers[indexPath.row]

for number in onlineUserArray
{
print(number)
if number.phone == phone
{
if number.status == 1
{
print("Matched")
cell.theLabel.backgroundColor = #colorLiteral(red: 0.08950354904, green: 0.807744801, blue: 0.07534810156, alpha: 1)
}
else if number.status == 0
{
cell.theLabel.backgroundColor = #colorLiteral(red: 0.6666666865, green: 0.6666666865, blue: 0.6666666865, alpha: 1)
}
else
{
cell.theLabel.backgroundColor = UIColor.clear
}
print("found a match, so break out of the loop")
break
}
}

关于ios - 单元格标签无法捕获表格 View 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54889253/

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