Wie kann ich das Bild auf Vollbild, wenn der Benutzer tippt auf meine UIImage in Swift?
Ich bin anzeigen ein Foto in meine app und ich bin mit UIImage
für, die. Bisher ist dies, wie mache ich das:
func getDataFromUrl(url:NSURL, completion: ((data: NSData?, response: NSURLResponse?, error: NSError? ) -> Void)) {
NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) in
completion(data: data, response: response, error: error)
}.resume()
}
func downloadImage(url: NSURL){
getDataFromUrl(url) { (data, response, error) in
dispatch_async(dispatch_get_main_queue()) { () -> Void in
guard let data = data where error == nil else { return }
print("Download Finished")
self.requestPhoto.image = UIImage(data: data)
}
}
}
und dann in viewDidLoad()
ich mache:
if let checkedUrl = NSURL(string: photo) {
requestPhoto.contentMode = .ScaleAspectFit
downloadImage(checkedUrl)
}
Blätter die UIImage gefüllt mit meinem Foto, aber es ist nicht anklickbar und es ist von der Größe der ursprünglichen Komponente. Gibt es eine Möglichkeit von hinzufügen irgendeine Art von listener oder etwas, dass zeigt das Foto auf fullscreen, wenn der Benutzer tippt auf die UIImage-Komponente?
- Bild wird gestreckt, wenn die Größe kleiner als die Größe der view.
- Hey, danke für den Kommentar, ich möchte, um das Bild anzuzeigen, wie ich die Anzeige jetzt. Aber zusätzlich möchte ich geben dem Benutzer die Möglichkeit, sich das Bild anzeigen Vollbild (Vorschau), wenn er tippt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie brauchen, ist zum hinzufügen einer
UITapGestureRecognizer
zu IhremrequestPhoto
Bild anzeigen. So etwas wie dieses :Die Letzte Zeile ist notwendig, da
UIImageView
hat es standardmäßig aktiviert, so dass die Berührungen abgebrochen.Und dann in der gleichen Klasse :
Das ganze könnte auch profitieren von einem flag zu sagen, wenn die view-fullscreen oder nicht, so dass, wenn der Benutzer tippt auf die fullscreen-Bild können Sie den Prozess umkehren.
Als immer, Lesen Sie mehr in der docs.
viewDidLoad
und den rest irgendwo anderes in meiner Klasse, aber immer noch keine Wirkung, wenn ich es Tippen. Ist da eventuell etwas anderes linken?userInteractionEnabled
eingestelltfalse
und dies verhindert, dass der touch weitergeleitet werden, um die gestik-Erkennung. Fügen Sie einfachself.requestPhoto.userInteractionEnabled = true
imviewDidLoad
und es sollte in Ordnung sein. Ich habe auch diese zur Antwort.let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapHandler:")
irgendwie wenn ichaction: Selector("tapHandler"))
warf dieunrecognizable selector
... Aber jetzt funktioniert es, vielen Dank für Ihre Hilfe!How to enlarge thumbnail-Bild in Vollbild-Foto-Ansicht auf iOS?
Ich dieses problem gelöst, durch die Schaffung neuer UIImageView-Objekt mit dem gleichen Bild in es und das Bild festlegen, der es gleich auf thumbnail-Bild:
Dann Bild hinzufügen als Unterebene in der Haupt-Fenster:
Größenanpassung erfolgt mit animation using-block:
Finden Sie die fertige Lösung hier: https://github.com/lukszar/SLImageView
Ist vorgesehen Geste Merkmale für ein-und ausblenden Vollbild.
Sie müssen nur Ihre UIImageView zu SLImageView Klasse im Storyboard und alle Magie ist getan.