hinzufügen Nun, ich bin ein naives IOS Entwickler mit schnellen Sprache.Wie HeaderView von Nib zu UiTableView programmgesteuert in Swift
Ich habe eine Tabellenansicht, die eine Liste von Funktionen eines Hotels anzeigt. Jetzt möchte ich eine Header-Information zum TableView mit Hotelbild, Hotelname über der Tabellenansicht hinzufügen, so dass die Header-Informationen auch zusammen mit TableView-Inhalten scrollt (Produktmerkmalsliste)
Hier ist das Problem, TableView mit Liste der Funktionen funktioniert gut.
class HotelDetailViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var categoriesTableView: UITableView!
var items: [(String, String,String)] = [
("Service", " Courteous service, Good staff , Good staff"," Bad Facility"),
("Vibe", " Courteous service, Good staff"," Bad Facility"),
("Hotel", " Courteous service, Good staff"," Bad Facility"),
("Room Facility", " Courteous service, Good staff"," Bad Facility"),
("Amenities", " Courteous service, Good staff"," Bad Facility"),
("Food", " Courteous service, Good staff"," Bad Facility")
]
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "HotelSnippetTableViewCell", bundle: nil)
categoriesTableView.separatorStyle = UITableViewCellSeparatorStyle.None
categoriesTableView.registerNib(nib, forCellReuseIdentifier: "CustomCell")
categoriesTableView.rowHeight = UITableViewAutomaticDimension
categoriesTableView.estimatedRowHeight = 100
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let customTableViewCell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as! HotelSnippetTableViewCell
let info = items[indexPath.row]
customTableViewCell.setCategory(info.0)
customTableViewCell.setPositive(info.1)
customTableViewCell.setNegative(info.2)
return customTableViewCell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
print("You selected cell #\(indexPath.row)!")
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
}
Für Header-Informationen wie Hotelimage, Hotelname und andere Labels Ich habe eine Spitze erstellt mit allen Ansichten eingestellt und eine entsprechende Klasse mit allen ihm zugeordneten Referenzen.
Jetzt, wie ich dieses UiView meiner Tabelle als eine Überschrift programmatisch hinzufügen (weil ich Daten nach Ruhepause erhalte).
Ich habe gesucht, fand aber Tutorials, wie Sie die Überschrift Abschnitt Header festlegen.
Paar Dinge, die ich ausprobiert:
Ich fand, dass es eine Protokollfunktion für Tableview ist
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { //Code}
Aber wie meine Feder hier zu laden und auf diesem Tableview und auch ich möchte dies nur programmatisch auslösen, nachdem ich die Daten vom Service bekommen habe
-
Erstellen
eine Feder mit Eltern als TableViewCell, laden sie dequeueReusableCellWithIdentifier() verwenden, setzen info und auf Tableview
let headerCell = categoriesTableView.dequeueReusableCellWithIdentifier("HotelDetailHeaderTableViewCell") as! HotelDetailHeaderTableViewCell headerCell.setImageUrl(""); headerCell.setHotelZmi(CGFloat(87)) headerCell.setNameAndPersona("Fort Aguada Goa", persona: "OverAll", reviewsCount: "780") headerCell.frame = CGRectMake(0, 0, self.categoriesTableView.bounds.width, 600) categoriesTableView.tableHeaderView = headerCell
Aber auch diese gewisse Ausnahme wirft, und ich kann nicht sehen, wo die Ausnahme ist (Wie sehen Sie das Ausnahmeprotokoll in Xcode?).
Ist der Prozess, den ich mache, korrekt? Wenn nicht jemand mir bitte effizienten Ansatz vorschlagen
Da in Android i verwendet, um eine NestedScrollView mit linearen Layout zu erstellen im Inneren mit einer beliebigen Anzahl von recyclerViews eingebettet (Entfernen Rolle für recyclerviews) und Relativelayout
Bitte helfen Sie mir.
Sie brauchen, ist die Angabe zu Erstellen Sie "UIView" anstelle von "UITableViewCell" für HeaderVIEW, obwohl in Xib – xmhafiz
Wie lade ich UIView in meinen Controller? – Manikanta
gerade hinzugefügt meine Antwort – xmhafiz