Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不要迟到_Ios_Swift - Fatal编程技术网

Ios 不要迟到

Ios 不要迟到,ios,swift,Ios,Swift,当变量beats==true时,文本必须为红色 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! InstallmentTableViewCell

当变量beats==true时,文本必须为红色

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! InstallmentTableViewCell

        if self.switchInstallmentToPay == true {
            if let installment = PaymentManager.paymentPlan?.unpaidInstallments![indexPath.row] {
                if let id = installment.id, let paymentDue = installment.paymentDue, let description = installment.numberDescription, let method = installment.paymentMethodDescription, let expectedPayment = installment.expectedPayment, let actualPayment = installment.actualPayment, let payable = installment.payable, let late = installment.late {
                    cell.load(id: id, paymentDue: paymentDue, description: description, method: method, expectedPayment: expectedPayment, actualPayment: actualPayment, payable: payable, late: late)
                    if installment.payable! {
                        cell.accessoryType = .checkmark
                        cell.tintColor = UIColor.lighterGray
                        cell.isUserInteractionEnabled = true
                        if installment.late! {
                            cell.lbDescription.textColor = UIColor.danger // not working
                        }

                    }else{
                        cell.accessoryType = .none
                        //cell.tintColor = UIColor.lightGray
                        cell.isUserInteractionEnabled = false
                    }
                }
            }
        }else{
            if let installment = PaymentManager.paymentPlan?.paidInstallments![indexPath.row] {
                if let id = installment.id, let paymentDue = installment.paymentDue, let description = installment.numberDescription, let method = installment.paymentMethodDescription, let expectedPayment = installment.expectedPayment, let actualPayment = installment.actualPayment, let payable = installment.payable, let late = installment.late {
                    cell.load(id: id, paymentDue: paymentDue, description: description, method: method, expectedPayment: expectedPayment, actualPayment: actualPayment, payable: payable, late: late)
                    cell.accessoryType = .none
                    cell.isUserInteractionEnabled = false

                    cell.lbDescription.textColor = UIColor.black // not working

                cell.tintColor = UIColor.lighterGray
            }
        }
    }
    return cell
}

这段代码很难阅读,而且有很多冗余。如果您使用的是故事板,我建议为付费和未付费分期制作单独的动态单元格。两个单元格的类类型都可以保持为InstallmentTableViewCell,因为您只是复制单元格的视图,而不是它们的逻辑。可以在故事板的单元原型中正确设置各种元素的颜色和样式,然后可以将tableView\uz:cellForRowAt:indexPath简化为

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellID = switchInstallmentToPay ? "unpaidCell" : "paidCell"
    let cell = tableView.dequeueReusableCell(withIdentifier: cellID, for: indexPath) as! InstallmentTableViewCell
    cell.load(...)

    return cell
}

我还建议将cell.load更改为采用分期参数,并在那里设置单元格的属性,而不是使用多个if-let使调用者感到混乱

添加断点以了解控件是否到达该行。cell.lbDescription outlet是否在情节提要/xib中正确连接?我添加了一个else,看起来它现在正在工作。