2017-12-31 135 views
0

Ich baue eine "Fotogalerie" für meine App. Wenn ein Benutzer auf ein Bild tippt, erscheint ein blauer Rahmen (um anzuzeigen, dass er ausgewählt ist). Da ich den Inhaltsmodus .scaleAspectFit verwende, nimmt das Bild fast nie die vollständige Bildansicht auf, die this ergibt. Ich möchte, dass die Umrandung genau um das Bild selbst liegt, wie zB this (roter Rand). Wie würde ich das erreichen?Wie füge ich einem Bild einen Rahmen hinzu und nicht die Bildansicht?

Mein Code ...

imageView.image = images[index] 
imageView.contentMode = .scaleAspectFit 
imageView.layer.borderColor = UIColor.blue.cgColor 
imageView.layer.borderWidth = 5 
imageView.clipsToBounds = true 

Antwort

0

Machen Sie das Seitenverhältnis des Imageview gleich den Aspekt des Bildes [durch alle Bilder zu schaffen gleiches Seitenverhältnis zu sein] und geben Sie die Imageview Bildschirmbreite minus Randbreite

0

Sie können diesen Effekt nicht mit den Funktionen eines UIImageView erreichen. Sie müssen etwas anpassen und es gibt viele Ansätze, die den gewünschten Effekt erzielen können.

Eine einfache Lösung ist die Skalierung selbst. Aspect Fit ist extrem einfach zu berechnen. Here is an example I found.

Sobald Sie die skalierte Bildgröße berechnet haben, setzen Sie den Rahmen des UIViewView auf diese Größe. Jetzt wird Ihr Bild 100% der UIImageView einnehmen und Ihr Rahmen wird richtig ausgerichtet!

Verwandte Themen