Zugriff auf Bilder von nsbundle
Ich habe einen Rahmen, der versucht, Zugriff xib ' s und Bilder aus einem bundle. Ich bin in der Lage, den Zugriff auf die xib-gut, aber nicht laden Sie die Bilder in UIImageView. Ich selbst überprüfen, ob die Datei vorhanden ist und die Ausgabe in der Konsole ist ja...
Eine Idee, wie man das image laden?
Code zum laden der xib im Rahmen viewcontroller-Datei
self = [super initWithNibName:@"ViewController_iPad" bundle:[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"MyBundle" ofType:@"bundle"]]];
Code zum laden der Bilder
- (void) loadImage
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyBundle.bundle/test" ofType:@"png"];
BOOL present = NO;
present = [[NSFileManager defaultManager] fileExistsAtPath:path];
if (present)
{
NSLog(@"MyBundle.bundle/test exists");
}
else
{
NSLog(@"MyBundle.bundle/test does not exists");
}
self.testImageView.image = [UIImage imageNamed:path];
self.testImageView2.image = [UIImage imageWithContentsOfFile:path];
}
MyTestHarnessApp[11671:c07] MyBundle.bundle/test existiert,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
imageNamed:
du musst nur einfach einen Dateinamen und das Bild muß auch in die root der app ResourceBundle.Ihr Bild nicht im root-Ressourcen-Bündel, es ist in einem Unterordner.
Da, Sie haben die image-vollständigen Pfad in der
path
variable verwenden, müssen Sie dieUIImage imageWithContentsOfFile:
Methode:imageWithContentsOfFile:
oder mit dem alternativen Weg, um den Weg aus dem bundle? Mit Ihren Weg mitimageWithContentsOfFile:
sollte gearbeitet haben.path
. Das funktionierte, wie gezeigt, durch den AufruffileExistsAtPath:
. Alles, was Sie tun müssen ist, ersetzen SieimageNamed:path
mitimageWithContentsOfFile:path
.imageWithContentsOfFile:
. Der code, den Sie geschrieben ist mitimageNamed:
.Wenn
+[UIImage imageNamed:]
ist nicht die Lösung der Pfad richtig, Sie können immer mit:UIImage imageWithContentsOfPath:
.Können Sie verwenden Sie einfach die folgende:
Aber es scheint, dass, wenn Sie die XIB-im Bündel zu, das interface ist relativ zu dem bundle.
versuchen Sie Schritt für Schritt durch.
Zuerst den Pfad zu dem bundle in Ihrem Haupt-bundle:
Überprüfen, um zu sehen, ob es etwas gibt, in das bundle. Dies ist mehr für doppelten Kontrolle. Sobald es funktioniert, können Sie wählen, überspringen Sie diesen code. Aber es ist immer eine gute Idee, double-check Dinge.
Da Sie bereits über den bundle Pfad hinzufügen den Namen des Bildes auf den Weg. Oder Sie können einfach ziehen Sie es aus der Liste der urls, die Sie bereits in den obigen code.
Dann, da müssen Sie den vollständigen Pfad ein, laden Sie das Bild
Code entnommen, der Versand app.
Glück
Tim
Wenn die Bilder bereits in der Haupt-bundle-nutzen Sie einfach die Bild-name: test.png-oder einfach testen