Vergib mir meine Noob Fragen, aber ich brauche wirklich Hilfe. Ich lerne IOS Entwicklung mit swift2. Leider sind die Tutorials, denen ich gefolgt bin, nicht wirklich in fortgeschrittenen Sachen, wenn es um die Arbeit mit Views/Nib-Dateien geht.Verwendung IBOutlets/IBActions von externen geladen Nib
Wie auch immer, ich versuche, eine benutzerdefinierte Klasse zu erstellen, die meine Nib geladen werden kann, und ich kann mit den Outlets/Aktionen der neu instanziiert Klasse des Typs UIView arbeiten.
konnte ich einige Informationen finden, die mich in der Lage, habe meine Ansicht richtig zu laden und sie in meine tableHeaderView einfügen, aber ich bin ein bisschen verloren. Ich brauche ein wenig Anleitung.
ReserveHeaderCell.swift
class ReserveHeaderCell : UIView{
@IBOutlet weak var ReserveHeaderImageView: UIImageView!
class func instanceFromNib() -> UIView {
return UINib(nibName: "ReserveHeaderCell", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! ReserveHeaderCell
}
}
stellte ich die Klasse in meinem XIb diese Klasse zu sein, ferner ist der Auslass in einem UIImageView Ansicht innerhalb der übergeordneten bezieht.
ReserveViewController.swift enthält:
let reserveHeaderFrame: CGRect = CGRectMake(0,0,self.view.frame.size.width, 164)
let rhCell = ReserveHeaderCell.instanceFromNib()
rhCell.frame = reserveHeaderFrame
ReserveTableView.tableHeaderView = rhCell
Und das alles funktioniert. Der Rahmen wird erstellt, das Xib wird geladen und der Ansicht hinzugefügt. Große, das Problem ist, ich habe keinen Zugriff auf meine IBOutlets, die in der ReserveHeaderCell.swift-Datei definiert werden. Außerdem weiß ich wirklich nicht, ob dies der richtige Weg ist, um das zu erreichen, was ich versuche zu tun.
Was ich versuche
- (id)initWithFrame:(CGRect)frame {
if (self) {
NSArray *nib = [[NSBundle mainBundle]
loadNibNamed:@"HeaderNib"
owner:self
options:nil];
self = [nib objectAtIndex:0];
// ACTIONS GO HERE
}
return self;
}
So kann ich Zugang zu einem des IBOutlets (mit OBJ-C durchgeführt) zu erreichen, die (in obj-c der H-Datei erstellt werden, aber für meinen Fall wäre es die Klasse, nicht wahr?)
die obj-c-Methode verwendet wird, kann ich einfach anrufen view.outlet = „“ und den Zugang zu ihnen bekommen.
Jede Hilfe wird geschätzt. Alle Links zu Tutorials, die helfen könnten, sind willkommen.
Vielen Dank im Voraus.
Ich mag es laden die benutzerdefinierte Klasse verwenden, though. Laden Sie es nicht einfach direkt in die Tabellenansicht. Die Begründung dafür ist, dass einige der Xib viel Input/Outlet haben werden. Für spezifische Nib wäre es wahrscheinlich in Ordnung, aber diese Lösung wird mir helfen, andere auf ähnliche Weise zu implementieren, die viel detailliertere Layouts/Ausgaben/Aktionen haben. – Imperialized
Ich entschuldige mich, Sie waren ziemlich genau hier. Die einzige Ausnahme war, dass ich es ändern musste als! UIView zu als! MeineKundenklasse. Außerdem änderte ich es stattdessen zu UINib() Funktion. Aber das gab mir die allgemeine Richtung. Vielen Dank – Imperialized