2015-02-14 14 views
6

Ich möchte den Bilddateinamen bekommen, der gerade bei UIImageView angezeigt wird. Ich habe versucht, es wie folgt zu erhalten:swift, Wie bekomme ich den aktuell angezeigten Bilddateinamen von UIImageView

let currentImage = alien.image // !alien is my image view 
println(currentImage?.description) 

aber er druckt:

Optional("<UIImage: 0x7fa61944c3d0>") 
+1

Ich glaube nicht, dass Sie können, wenn Sie den Dateinamen meinen. – Unheilig

+0

@Unheilig ja eigentlich meinte ich den Dateinamen. Nach einiger Forschung merke ich, dass ich das nicht tun konnte, wie Sie sagten. – semirturgay

Antwort

9

Sie dies nicht tun können. Weder in der schnellen noch in der objektiven c.

Sie müssen die Daten speichern, die Sie abrufen möchten. Das ist ... Speichere den Namen irgendwo und benutze das um das Bild zu laden. Nicht umgekehrt.

Also erstellen Sie eine Eigenschaft wie imageName und verwenden Sie dann, um das Bild zu laden.

+0

welche Variable können wir verwenden, so hat das Bild einen eindeutigen Namen. Momentan teste ich einen statischen Bildnamen ("tempImage") und das Bild wird jedes Mal überschrieben. Aber wenn wir den Bildnamen nicht bekommen können, was kann ich für den Bildnamen jetzt verwenden: 'saveImage (selectedImage, Pfad: fileInDocumentsDirectory (" tempImage "))' – alex

+0

ok ich benutze '// Funktion für Bilder func uniqueFilename() -> String { let uuid = NSUUID(). UUIDString print (uuid) return uuid } ' – alex

3

Als Umgehung, für Bilder, die ich zu einem späteren Zeitpunkt referenzieren muss, verwende ich die Wiederherstellungs-ID, um den Bildnamen zu speichern.

Ich habe die Wiederherstellungs-ID auf diese Weise verwendet, so dass ich mehrere Schaltflächen mit der gleichen @IBAction verbinden und anhand des in der Wiederherstellungs-ID gespeicherten Bildnamens identifizieren und Logik ausführen konnte, was ich anzeigen oder ausblenden möchte.

Es könnte bessere Wege geben, aber das funktionierte in Not.

Ich legte den Image-Namen als die Wiederherstellungs-ID ein.

Hier ist, wo ich die Datei für das Bild bezeichnen ..

enter image description here

Und ich kopieren Sie einfach das und setzen es als Wiederherstellung ID in.

. (Anmerkung: das ist nicht das, was dies beabsichtigt war, für verwendet werden, wie es für die Anpassung von Zustandsreferenz wirklich gemeint ist, aber wenn das nicht relevant für den Zweck Ihrer Ansicht ist, dann sollte es funktionieren)

enter image description here

Wird im Code referenziert, wenn die Schaltfläche ausgewählt ist.

//Connected to several onboarding buttons. 
@IBAction func onBoardingButton(sender: UIButton) { 

    println(sender.restorationIdentifier) 



} 

RID ausgedruckt.

enter image description here


Sie können Ihre Bilder und halten den Verweis auf diese Bilder über den Tag markieren.

enter image description here

Und die Referenz ist genauso einfach.

@IBAction func onBoardingButton(sender: UIButton) { 

    println(sender.restorationIdentifier!) 
    println(sender.tag) 


} 

Während es scheint nicht, wie wir erkennen können, welche Datei verwendet, um die Bildansicht zu füllen (die ich kenne und basiert auf etwas um mich suchen) Anbringen harte Verweise auf eine Ansicht (Bild , Button, etc ..) erlaubt mir, die Seite des Verbindungscodes zu machen und herauszufinden, welches Bild (oder in meinem Fall Knopf) benutzt wird.

Verwandte Themen