2016-04-27 16 views
1

Ist es möglich, einen Wert für ein UILabel in einem benutzerdefinierten UITableViewCell festzulegen, ohne die Zelle neu zu laden?swift - set UILabel ohne erneutes Laden von benutzerdefinierten UITableViewCell

Ich habe viele Permutationen versucht:

let indexPath = NSIndexPath(forRow: 0, inSection: 0) 
let cell = tableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell1 
cell.customLabel.text = "text goes here" 

.. und ich verstehe nicht, warum das nicht funktionieren wird. Ich habe ein UITextField in der UITableViewCell, und wenn ich den TextField Wert setze, möchte ich nur das Etikett aktualisieren, aber nicht die gesamte Zelle neu laden. Irgendwelche Vorschläge?

+0

Haben Sie versuchen cell.customLabel.setNeedsDisplay zu starten() nach dem Text einstellen? –

+0

@AlessandroOrnano - danke, das funktioniert auch – Shane

Antwort

2
cell.customLabel.setNeedsDisplay() 
+1

Diese Antwort ist einfacher für mich zu verstehen. – Shane

2

Wenn Sie die UIViews aktualisieren möchten, müssen Sie sie in Hauptthread setzen:

dispatch_async(dispatch_get_main_queue(),{ 
    cell.customLabel.text = "text goes here" 
}) 
+0

danke, das funktioniert für mich – Shane

+0

es ist main thread nicht hintergrund denke ich !! :) – Lion

+0

gute Antwort übrigens :) – Lion

Verwandte Themen