2017-11-14 8 views
0

Ich habe Problem dieses gemocht drehen: enter image description hereWie Bild ausgewählte Zeile und unrotate Bild nicht ausgewählte Zeilen

ich eine Reihe habe, wenn ich die Zeile 0 klicken, es erweitert und Drop-Down-Bild drehen. Wenn ich auf Zeile 1 klicke, erweitern Sie Zeile 1 und die nicht angezeigte Zeile 0, das Dropdown-Bild in Zeile 0 zurück auf normal (Pfeil nach unten) und das Dropdown-Bild in Zeile 1 drehen (Pfeil nach oben).

Hier ist mein Code so weit:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    let cell = self.tableView.cellForRow(at: indexPath) as! PaymentMethodCell 
    let clickedRow = indexPath.row 
    if indexPath.row == selectedRow{ 
     print("yang muncul selectedRow = -1") 
     if cell.isSelected { 
      selectedRow = -1 
      print("This cell is deselected :\(selectedRow)") 
      cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0) 
     }else{ 
      selectedRow = indexPath.row 
      cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi)/180.0) 
     } 
    }else{ 
     if cell.isSelected { 
      selectedRow = indexPath.row 
      print("This cell is selected :\(selectedRow)") 
      cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi)/180.0) 
     }else{ 
      selectedRow = -1 
      cell.ivExpand.transform = CGAffineTransform(rotationAngle: (180.0 * CGFloat.pi) * 180.0) 
     } 
     cell.lblclickedsubcell.text="00" 
     print("cell.lblclickedsubcell.text:\(String(describing: cell.lblclickedsubcell.text!))") 
    } 
    tableView.reloadData() 
} 

aber das Ergebnis ist, nachdem ich die Zeile 0 erweitern und dann Reihe 1, Reihe 0 unexpand und Zeile 1 erweitert klicken. Aber Dropdown-Bild in Zeile 0 immer noch nicht wieder normal (Pfeil nach unten). es immer noch als Pfeil nach oben.

Hier ist cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCell(withIdentifier: "PaymentMethodCell", for: indexPath) as! PaymentMethodCell 
    cell.ivPaymentMeyhod.contentMode = UIViewContentMode.scaleAspectFit 
    cell.ivPaymentMeyhod.contentMode = UIViewContentMode.left 
    cell.ivPaymentMeyhod.clipsToBounds=false 
    //cell.ivPaymentMeyhod.kf.setImage(with: url!) 
    cell.ivPaymentMeyhod.image = UIImage(named: "\(PaymentImageArray[indexPath.item])") 
    let clickedRow = indexPath.row 
    cell.lblclickedRow.text = "\(indexPath.row)" 
    let ContractNumber = "\(contractnumber!)" 
    if(CustomUserDefaults.shared.isGuest() || ContractNumber==""){ 
     cell.lblContractNumber.text = "" 
     cell.lblContractAmount.text = "" 
    }else{ 
     cell.lblContractNumber.text = "\(contractnumber!)" 
     cell.lblContractAmount.text = "\(contractamount!)" 
    } 
    if(clickedRow==0){ 
     cell.tableView.isHidden=true 
     cell.XibView.isHidden=false 
     let AlfaIndoView = HowToPayView.AlfaIndoNib() 
     let cellwidth = cell.XibView.bounds.width 
     print("cellwidth:\(cellwidth)") 
     cell.XibView.addSubview(AlfaIndoView) 
     AlfaIndoView.autoresizingMask = [.flexibleHeight, .flexibleWidth] 
     AlfaIndoView.frame.size.width = cellwidth 
    }else if(clickedRow==1){ 
     cell.tableView.isHidden=true 
     cell.XibView.isHidden=false 
     let POSindonesiaView = HowToPayView.POSindonesiaNib() 
     let cellwidth = cell.XibView.bounds.width 
     print("cellwidth:\(cellwidth)") 
     cell.XibView.addSubview(POSindonesiaView) 
     POSindonesiaView.autoresizingMask = [.flexibleHeight, .flexibleWidth] 
     POSindonesiaView.frame.size.width = cellwidth 
    }else if(clickedRow==2){ 
     cell.tableView.isHidden=false 
     cell.XibView.isHidden=true 
     cell.setUpTable() 
    }else if(clickedRow==3){ 
     cell.tableView.isHidden=false 
     cell.XibView.isHidden=true 
     cell.setUpTable() 
    }else if(clickedRow==4){ 
     cell.tableView.isHidden=false 
     cell.XibView.isHidden=true 
     cell.setUpTable() 
    }else if(clickedRow==5){ 
     cell.tableView.isHidden=false 
     cell.XibView.isHidden=true 
     cell.setUpTable() 
    }else if(clickedRow==6){ 
     cell.tableView.isHidden=true 
     cell.XibView.isHidden=false 
     let ATMbersamaView = HowToPayView.ATMbersamaNib() 
     let cellwidth = cell.XibView.bounds.width 
     print("cellwidth:\(cellwidth)") 
     cell.XibView.addSubview(ATMbersamaView) 
     ATMbersamaView.autoresizingMask = [.flexibleHeight, .flexibleWidth] 
     ATMbersamaView.frame.size.width = cellwidth 
    } 
    return cell 
} 

Helfen Sie mir, diesen Code

Antwort

0

Es wäre klarer zu reparieren bitte, wenn wir Ihre cellForRow Code sehen konnte. Soweit ich sehen kann, rufen Sie am Ende reloadData() an, damit Ihre Zellen neu gerendert werden, also müssen Sie die Orientierungen des Pfeils in Ihrem cellForRow Code behandeln.

In didSelect Funktion: So in Pseudo-Code Form, wäre es ein bisschen wie die folgende sein

selectedIndexPath = indexPath 
//...other related statements 

In cellForRow Funktion:

if indexPath == selectedIndexPath { 
    //rotate arrow down 
    //other relevant code 
} 
else { 
    //rotate arrow up 
    //other relevant code 
} 
Verwandte Themen