Ich lade Nachrichten vom Server in die TableView. Jetzt möchte ich eine benutzerdefinierte Zelle mit Überschrift, Bild und Ausschnitt machen. Ich machte eine benutzerdefinierte Klasse für die Zelle und ich gab die Zelle benutzerdefinierte Kennung. Ich habe zwei Etiketten (eins für Schlagzeile und eins für Auszug). Jetzt möchte ich nur Überschrift im ersten Etikett und Auszug im zweiten Etikett anzeigen.Wie füllt man die benutzerdefinierte tableView-Zelle in Swift 3?
@IBOutlet weak var headline: UILabel!
@IBOutlet weak var excerpt: UILabel!
//Custom struct for the data
struct News {
let title : String
let text : String
let link : String
let imgUrl : String
init(dictionary: [String:String]) {
self.title = dictionary["title"] ?? ""
self.text = dictionary["text"] ?? ""
self.link = dictionary["link"] ?? ""
self.imgUrl = dictionary["imgUrl"] ?? ""
}
}
//Array which holds the news
var newsData = [News]()
// Download the news
func downloadData() {
Alamofire.request("https://api.sis.kemoke.net/news").responseJSON { response in
print(response.request) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result) // result of response serialization
//Optional binding to handle exceptions
self.newsData.removeAll() // clean the data source array
if let json = response.result.value as? [[String:String]] {
for news in json {
self.newsData.append(News(dictionary: news))
}
self.tableView.reloadData()
}
}
}
Und in dem folgende Verfahren zeige ich die Daten in der Zelle
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let news = newsData[indexPath.row]
cell.textLabel?.text = news.title
cell.detailTextLabel?.text = news.text
return cell
}
Wie lautet der Name Ihrer benutzerdefinierten Klasse? Du solltest die Zelle als dein benutzerdefiniertes Spielzeug verwenden und du wirst in der Lage sein zu tun, was du willst! –
Zum Beispiel habe ich eine Tabellenansicht Zelle benutzerdefinierte Klasse Called NewsCell Also mache ich: cell = tableView.dequeueReusableCell (withIdentifier: "NewsCell") als? NewsCell –
Könnten Sie bitte weitere Informationen geben? Sollte ich diese Labels in meiner benutzerdefinierten Klasse "newsCellTableViewCell" hinzufügen? –