2017-07-18 2 views
0

Ich habe eine benutzerdefinierte Zelle UITableView. Es hat eine UIView und eine UIButton Ich möchte diese Ansicht Höhe Einschränkung und die oberste Einschränkung der Schaltfläche programmgesteuert in meinem `CellForRowAtIndex. Also drinnen mache ich das so.Cell Subviews Constraints programmgesteuert ändern in CellForRowAtIndex

if(myintime2 == "00:00" && myoutTime2 == "00:00" ) 
     { 
      cell.btnIntime2.setTitle(myintime2, for: .normal) 
      cell.btnOutTime2.setTitle(myoutTime2, for: .normal) 

      cell.btnOutTime2.isHidden=true 
      cell.btnIntime2.isHidden=true 
      cell.customViewHeightConstraint.constant = 111 
      cell.customBtnIn1Top.constant = 111/2 


     } 

     else if (myintime2 == "N/A" && myoutTime2 == "N/A") 
     { 
      cell.btnIntime2.setTitle(myintime2, for: .normal) 
      cell.btnOutTime2.setTitle(myoutTime2, for: .normal) 

      cell.btnOutTime2.isHidden=true 
      cell.btnIntime2.isHidden=true 
      cell.customViewHeightConstraint.constant = 111 
      cell.customBtnIn1Top.constant = 111/2 

     } 


     else 
     { 
      cell.btnIntime2.setTitle(myintime2, for: .normal) 
      cell.btnOutTime2.setTitle(myoutTime2, for: .normal) 
      cell.customViewHeightConstraint.constant = 222 
      cell.customBtnIn1Top.constant = 10 
      cell.btnOutTime2.isHidden=false 
      cell.btnIntime2.isHidden=false 

     } 

Aber einige Zellen die Höhe falsch ist, bitte helfen Sie mir

+0

Was genau meinen Sie mit "einige Zellen die Höhe ist falsch"? Was ist das erwartete Ergebnis, was passiert stattdessen? –

+0

@mag_zbc Ich muss 2 Bedingungen überprüfen. Wenn meine Zeit2 verfügbar ist, möchte ich die Höhe der Zelle erhöhen und den oberen Grenzwert der Schaltfläche erhöhen. Aber wenn mein Zustand nicht zufrieden stellend ist, werden die Zellen erhöht und auch die Top-Werte werden erhöht. – user1960169

+0

@mag_zbc aber nicht für alle Zellen, dies geschieht nur für wenige Zellen. zufällig – user1960169

Antwort

0
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 

     if(myintime2 == "00:00" && myoutTime2 == "00:00" ){ 
       return 111 
     } 
     else if (myintime2 == "N/A" && myoutTime2 == "N/A") 
     { 
       return 111 
     }else{ 
       return 222 
     } 

} 

Sie mehr Prototyp-Zelle von Storyboard

enter image description here

Jede Art von Zelle, um sie mit einem schafft bauen unterschiedliche Höhe und mit Bezeichner unterschiedlich und keine Einschränkungen verwenden

Using Auto Layout in UITableView for dynamic cell layouts & variable row heights

+0

Sie meinen, ich brauche Höhe Einschränkung für meine Unteransicht nicht festlegen? – user1960169

+0

es ist eine Tabellenansicht, ist nicht erforderlich, Höhe Beschränkung einstellen, weil diese Methode existiert, wenn Sie die Höhe der Zelle –

+0

Ich habe es auf Ihre Weise geändert. Aber jetzt nehmen alle Zellen 308, was meiner ursprünglichen Zellgröße entspricht. :( – user1960169

Verwandte Themen