2017-01-24 2 views
0

Hallo Leute Ich bin neu in Swift und ich bin auf der Suche nach einer langen Zeit im Netz. Aber keine Verwendung. Bitte helfen oder versuchen Sie, einige Ideen zu geben, wie dies zu erreichen ist.Swift, wie CollectionView UItextField ändern backgroundColor, wenn wählen

das erste Bild, wenn ich nichts zu tun haben

enter image description here

Das zweite Bild ist, wenn ich bereits ein Textfeld wählen

enter image description here

Das dritte Bild ist, wenn ich das ausgewählt Alle Btn

ausgewählt

enter image description here

Die vier Pic ist, wenn ich, dass alle Btn wählen ausgewählt und Deaktivieren eines Textfeld

enter image description here

jetzt kann ich nur wie Pic zwei und Pic Third tun, aber ich kann den Pic zwei Text nicht machen Feldtextfarbe, wenn ich ausgewählt habe.

Wie kann ich das wie Pic Four tun?

Ich benutze collectionView, um so zu tun Ich habe versucht, mehrere Variationen davon, aber keiner von ihnen scheint zu arbeiten. Irgendwelche Ideen?

hier ist mein Code

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! MyCollectionViewCell 
     if isselectAll == true{ 
      cell.titleText2.textColor = .white 
      cell.titleText2.backgroundColor = UIColor(red: 153/255, green: 31/255, blue: 37/255, alpha: 1) 
      selectedCell.append(indexPath) 
     } 
     return cell 
    } 
func collectionView(_ collectionView: UICollectionView,didSelectItemAt indexPath: IndexPath) 
    { 
    let cell = collectionView.cellForItem(at: indexPath)! 
     selectedCell.append(indexPath) 
     cell.contentView.backgroundColor = UIColor(red: 153/255, green: 31/255, blue: 37/255, alpha: 1) 
    } 
func collectionView(_ collectionView: UICollectionView,didDeselectItemAt indexPath: IndexPath) 
     { 
     let cell = collectionView.cellForItem(at: indexPath)! 
     if selectedCell.contains(indexPath) { 
      selectedCell.remove(at: selectedCell.index(of: indexPath)!) 
      cell.contentView.backgroundColor = .clear 
     } 

wissen wollte, ob es gute Praxis ist, das zu tun und was der beste Weg, das zu tun wäre? Dank gilt auch

Antwort

0

Verwendung dieser Code (set paaren Textfeld Delegierter vom Storyboard)

0

Also zuerst, drucken Sie die IndexPaths aus, während Sie auswählen und abwählen. Überprüfen Sie, ob die Elemente wie erwartet hinzugefügt und entfernt werden. Wenn nicht, stimmt etwas mit diesem Schritt nicht.

Wenn sich die Array-Werte wie erwartet ändern, bedeutet dies, dass die Ansichten nicht so aktualisiert werden, wie Sie möchten, selbst wenn die Werte dies sind.

Verwenden Sie jetzt Haltepunkte und prüfen Sie, ob Ihre Bits des erwarteten Codes ausgeführt werden. Wenn dies der Fall ist, bedeutet dies, dass die von Ihnen geschriebene Codezeile falsch ist. Wenn nicht, bedeutet das, dass Sie es nicht an der richtigen Stelle geschrieben haben.

Ich kann Ihnen eine einfache Antwort geben, indem Sie einfach Ihren Code ausführen. Aber es hilft dir nicht zu lernen, zu debuggen. Führen Sie die oben genannten Schritte aus und lassen Sie mich wissen, was passiert.

Danke.

Verwandte Themen