2016-08-19 22 views
0

Ich habe eine Tabellenansicht mit einer Suchleiste. Wenn die Ansicht zum ersten Mal geladen wird, sehe ich, dass eine Schaltfläche zum Hinzufügen in einer leeren Zeile angezeigt wird. Dies sollte nur erscheinen, wenn ich ein Ergebnis zeige. Wie kann dies verborgen bleiben? Ich habe versucht, die versteckte Eigenschaft auf True zu setzen, aber nicht funktioniert.Swift - Tabellenansicht mit benutzerdefinierter Zelle mit Schaltfläche

zweiten Teil ist, ich möchte eine Funktion an die Schaltfläche anhängen, so dass, wenn gedrückt wird Code ausführen, um den Freund in der Zeile hinzuzufügen. Hier sind die Screenshots Ich habe auf meine Frage zu unterstützen:

initial view where button should not show

after searching where I want to attach a function to the button

Hier ist der Code für meine benutzerdefinierte Zelle:

class AddFriendsTableViewCell: UITableViewCell { 

    @IBOutlet weak var addButton: UIButton! 
    @IBOutlet weak var nameLabel: UILabel! 

    @IBOutlet weak var usernameLabel: UILabel! 



    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
     self.addButton.hidden = true 
    } 

    override func setSelected(selected: Bool, animated: Bool) { 
     super.setSelected(selected, animated: animated) 

     // Configure the view for the selected state 
    } 

} 

und das ist, wo ich die Zelle am bevöl :

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! AddFriendsTableViewCell 

    if(self.friendUsername != "" && self.friendName != "") 
    { 
     cell.nameLabel.text = self.friendName 
     cell.usernameLabel.text = self.friendUsername 
     cell.addButton.hidden = false 

    } 

    return cell 
} 

Antwort

0

Es ist nur ac omment mit einem Format, schreiben Kommentar vor Downvoting:

ersetzen versuchen:

if(self.friendUsername != "" && self.friendName != "") 

mit:

if let friendUsername = self.friendUsername, let friendName = self.friendName where !friendUsername.isEmpty && !friendName .isEmpty 

und als Max schrieb, haben Sie mit der else-Anweisung verwalten:

else { 
    cell.addButton.hidden = true 
} 
1

wakeFromNib wird nicht aufgerufen, wenn Sie die Zelle erneut verwenden. Versuchen Sie, ein anderes Teil in Ihrem Zustand hinzuzufügen:

if(self.friendUsername != "" && self.friendName != "") { 
    cell.nameLabel.text = self.friendName 
    cell.usernameLabel.text = self.friendUsername 
    cell.addButton.hidden = false 
} else { 
    cell.addButton.hidden = true 
} 
Verwandte Themen