2016-08-24 5 views
0

Ich mag bewahren Bild Slicing in Xcode verwenden, um eine veränderbare Bild mit einem zentralen Bereich zu erzeugen, die statisch gehalten wird. Es scheint, dass dies in Xcode unmöglich ist, da es nur für eine gestreckte Fläche und einer geschrumpften Bereich in jeder Richtung ermöglicht. Ist das richtig?Xcode Bild Slicing - die Außen des Bildes dehnt, sondern eine Fläche in der Mitte

Resizable image

niemand für diesen von einer schönen Abhilfe wissen? Ich brauche das Bild für eine Schaltfläche verwenden, so kann ich nicht eine Anordnung von UIImageViews auf dem jeweils anderen tun, wenn ich nicht berührt durchlaufen und das wird ein bisschen chaotisch.

Vielen Dank.

+1

das nicht möglich ist Xcode –

+0

Schneiden Sie können mit '- (UIImage *) stretchableImageWithLeftCapWidth: (NSInteger) leftCapWidth topCapHeight: (NSInteger) topCapHeight' Funktion von' UIImage', die Sie dehnbare Bild erstellen können. –

Antwort

2

Wie stretchableImageWithLeftCapWidth mit iOS veraltet 5.0 können Sie resizableImageWithCapInsets verwenden. Überprüfen Sie Apple Documentation, es heißt

Sie verwenden diese Methode, um einem Bild Kappeneinfügungen hinzuzufügen oder die vorhandenen Kappeneinfügungen eines Bildes zu ändern. In beiden Fällen erhalten Sie ein neues Bild und das ursprüngliche Bild bleibt unverändert. Zum Beispiel können Sie diese Methode verwenden, können ein Hintergrundbild für eine Schaltfläche mit Bordüren und Ecken zu erstellen: Wenn die Schaltfläche geändert wird, bleiben die Ecken des Bildes unverändert, aber die Grenzen und in der Mitte des Bildes erweitern die neue Größe zu decken.

Eine andere Methode ist auch verfügbar, wenn Sie resizableImage(withCapInsets:resizingMode:)resizingMode

Sie tun können, so etwas wie,

UIImage *image = [UIImage imageNamed:@"yourImageName"]; 

UIImage *streachedImage = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5)]; //Edgeinsect that you want 

// OR 

UIImage *streachedImage2 = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeStretch]; 

// OR 

UIImage *streachedImage3 = [image resizableImageWithCapInsets:UIEdgeInsetsMake(5, 5, 5, 5) resizingMode:UIImageResizingModeTile]; 

Überprüfen Sie die Documentation für weitere Details festlegen möchten.

Update: (Nach Kommentar), um Ihre Schaltfläche

Sie müssen festlegen nur backgroundImage und image beide. Sie können image inset auch Ihre image seine Position zu verwalten.

+1

Dies dehnt die Mitte des Bildes. Ich muss den Teil des Bildes mit dem Haus die gleiche Größe behalten und den Rest des Bildes um ihn herum strecken. –

+1

Dann sollten Sie zwei Bilder verwenden. Ein Hintergrundbild und eines als Vordergrund sagte es Haus Bild! – Lion

+0

Ich erwähnte das in meiner Frage. Ich werde das Bild für einen UIButton verwenden, so dass es chaotisch wird, wenn ich den Knopf und dann ein Bild über die Oberseite legen muss. Muss die Schaltfläche berühren oder zwei Schaltflächen mit derselben Aktion verwenden. Außerdem müssen Sie die Größenanpassung zur Laufzeit vornehmen. Hoffte auf eine bessere Lösung! –

Verwandte Themen