2016-05-03 14 views
0

Ich bin relativ neu in iOS-Entwicklung und Cordova und ich bin ein wenig verwirrt von Xcode und objective-C in Bezug darauf, wie Sie einen NSUrl oder NSBundle verwenden, um auf Dateien zuzugreifen. Was ich erreichen möchte, ist Zugriff auf alle .png Dateien von innerhalb www/images von meinem app/Classes/MainViewController.m und programmgesteuert erstellen Sie eine neue Image View für jede einzelne.Cordova iOS-Zugang WWW-Dateien

Meine Dateistruktur sieht wie folgt aus

App Folder > 
      > .xcodeproj file 
      > xcode app folder > Classes > MainViewController.m 
      > www > images 

ich die Instanziierung der Bildansichten umgehen kann, aber ich bin verwirrt darüber, wie sollte ich die Bilder zu erhalten werden. Verwenden Sie einen NSBundle in dieser Situation und wie kann ich eine NSURL verwenden, um von meinem MainViewController zu meinem Bilderspeicherort zu navigieren?

Danke.

Antwort

1

können Sie Apps Stammverzeichnis erhalten und dann Pfad zur Bilddatei hinzufügen:

NSString *appFolderPath = [[NSBundle mainBundle] resourcePath]; 
NSString *imagePath = [appFolderPath stringByAppendingString:@"/www/images/some_image.png"]; 
UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 

Aber im Allgemeinen, wenn Sie Bild von nativem Seite zu zeigen versuchen, dann ist es besser, Bilder in Ordner Ressourcen zu setzen (Verwenden Sie das Attribut "resource-file" in Ihrer plugin.xml) mit @ 2x und @ 3x Postfixes, damit iOS das entsprechende Bild entsprechend dem aktuellen Gerät lädt.

plugin.xml Beispiel:

... 
    <platform name="ios"> 
     ... 
     <resource-file src="icons/[email protected]" /> 
     <resource-file src="icons/[email protected]" /> 
     ... 
    </platform> 
... 

Und dann in Objective-C:

UIImage *image = [UIImage imageNamed:@"some_image"]; 
+1

Ich mag seinen zweiten Vorschlag Entwicklung für Plugin. Dies setzt voraus, dass sich "icons /" im selben Verzeichnis wie plugin.xml befindet. Android wird in ähnlicher Weise ein eigenes Format haben, um mehr als eine Kopie eines Bildes basierend auf der Auflösung des Geräts zu verwenden, daher sollte der plattformunabhängige www-Ordner besser nicht verwendet werden. – Chicowitz