Ich könnte eine Lösung für Sie haben. Sehen Sie, ob das funktioniert. Im Interface Builder gibt es eine Option zum Füllen von Bildinhalten. Sie können es auf top-left
setzen. Folgen Sie dem Bild im Interface Builder -
Danach setzen Sie die Größe von UIImageView
auf 50x50 mit "clip-subviews" checked ...
Sie können das Bild zuschneiden, indem Sie CGImageCreateWithImageInRect
, was das Quartz-Grundelement ist, das an CGImageRef arbeitet, also hätten Sie etwas wie:
Beachten Sie bei der Berechnung von cropRect
, dass die Angabe in Pixeln erfolgen soll, nicht in Punkten, d. h.
wobei der 0.5
Faktor für die Tatsache verantwortlich ist, dass Sie nur die obere Hälfte möchten.
Wenn Sie nicht auf niedriger Ebene arbeiten möchten, können Sie Ihr Bild zu einer UIView
als Hintergrundfarbe hinzufügen und die Eigenschaft clipToBounds
CALayer verwenden, um den Ausschnitt zu erstellen:
Setzen Sie auch myView
bounds entsprechend.
Der einfachste Weg, um ein großes Bild innerhalb von UIImageView zu verschieben.
Nehmen wir an, das Bild der Größe (100, 400) würde 4 Zustände eines Bildes untereinander darstellen. Wir wollen das 2. Bild mit Versatz Y = 100 im Quadrat UIImageView der Größe (100, 100) zeigen. Die Lösung ist:
%Vor%Hier contentFrame ist normalisierter Frame relativ zur realen UIImage Größe. Also bedeutet "0", dass wir den sichtbaren Teil des Bildes vom linken Rand beginnen, "0,25" bedeutet, dass wir einen vertikalen Versatz von 100 haben, "1" bedeutet, dass wir die volle Breite des Bildes zeigen wollen, und schließlich bedeutet "0,25", dass wir nur 1/4 Bildteil in der Höhe zeigen wollen.
Somit zeigen wir in lokalen Bildkoordinaten den folgenden Rahmen
%Vor%Tags und Links objective-c iphone ios uiimageview uiimage