Ich habe meine Json Link-Daten von TableViewCell, und dann abrufen Sie diese Daten vom Server und Anzeige in CollectionView mit verwandten TableViewCell-Daten. Wie werden diese Daten in swift3 angezeigt? Bitte hilf mir.Wie zeigt man dynamisch Daten vom Server in CollectionViewCell in TableViewCell mit swift3 an?
Ich habe URL Link (mainThemeList.main_associated_url, main_name) von TableViewCell.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let mainThemeList = mainHomeThemeTable[(indexPath as NSIndexPath).row]
let cell = tableView.dequeueReusableCell(withIdentifier: "homecell") as! HomeCategoryRowCell
DispatchQueue.main.async {
cell.categoryTitle.text = mainThemeList.main_name
cell.mainAssociatedURL.text = mainThemeList.main_associated_url
self.prefs.set(mainThemeList.main_name, forKey: "main_name")
cell.categoryTitle.font = UIFont.boldSystemFont(ofSize: 17.0)
cell.collectionView.reloadData()
}
DispatchQueue.main.async {
self.retrieveDataFromServer(associated_url: mainThemeList.main_associated_url,main_name: mainThemeList.main_name)
}
return cell
}
Und dann Daten bezogene URL Link-Daten vom Server.
private func retrieveDataFromServe(associated_url : String , main_name: String) {
SwiftLoading().showLoading()
if Reachability().isInternetAvailable() == true {
self.rest.auth(auth: prefs.value(forKey: "access_token") as! String!)
rest.get(url: StringResource().mainURL + associated_url , parma: [ "show_min": "true" ], finished: {(result : NSDictionary, status : Int) -> Void in
self.assetsTable.removeAll()
if(status == 200){
let data = result["data"] as! NSArray
if (data.count>0){
for item in 0...(data.count) - 1 {
let themes : AnyObject = data[item] as AnyObject
let created = themes["created"] as! String
let assets_id = themes["id"] as! Int
let name = themes["name"] as! String
var poster_img_url = themes["poster_image_url"] as! String
let provider_id = themes["provider_id"] as! Int
poster_img_url = StringResource().posterURL + poster_img_url
self.assetsTable.append(AssetsTableItem(main_name: main_name,created: created,assets_id: assets_id, name: name, poster_image_url: poster_img_url,provider_id: provider_id))
}
}
SwiftLoading().hideLoading()
}else{
SwiftLoading().hideLoading()
}
})
}
}
Abrufen von Daten aus Server-Datenspeicher in AssetsTable.
Und dann AssetsTable Daten in CollectionViewCell angezeigt.
Mein Problem ist SammlungViewCell Daten sind mit früheren AssetsTable Daten dupliziert und zeigten keine korrekten Daten in CollectionView.
Meine tableViewCell Show (Aktion, Drama) Etiketten- und My CollectionViewCell zeigen Filme Name und Movie-Bild. Ich erhalte Daten für CollectionViewCell vom Server, aber CollectionViewCell zeigte keine zugehörigen Daten an.
Ihre Frage bearbeiten und machen es deutlich, indem Sie einige weitere stopft das Szenario zu verstehen. –
Also im Grunde versuchen Sie, Sammlungsansicht mit in der TableViewCell zu verwenden. und Ihr Problem hängt mit der Herausnahme der Tabellenansichtszelle zusammen. Sie müssen die Daten für die Sammlungsansicht jeder tableViewCell separat festlegen und die Daten in cellForRowAtIndex von tableView übergeben, die angezeigt werden müssen. Jede Zelle enthält/speichert/besitzt eigene Sammlungsansichtsdaten. –
Machen Sie und Array von Wörterbuch in der Klasse TableViewCell und übergeben Sie die entsprechenden Daten in CellForRowAtIndexPath von TableView abgerufen von Webservice. –