Frage

Ich versuche, ein UIImage mit streifenmagierbarem Withleftcapwidth zu verwenden, um das Bild in meinem UIImageview festzulegen, aber ich begegne einen seltsamen Skalierungsfehler. Grundsätzlich stellen Sie sich mein Bild als Oval vor, das 31 Pixel breit ist. Die linken und rechten 15 Pixel sind die Kappen und das mittlere Single -Pixel ist der skalierte Teil.

Dies funktioniert einwandfrei, wenn ich die linke Kappe auf 15 einstellen kann. Wenn ich sie jedoch auf 4 setze, würde ich erwarten, einen "zentralen" Teil zu bekommen, der etwas gebogen ist, wenn es das Zentrum umfasst, während die Enden ein wenig sind eingeklemmt.

Was ich bekomme, ist die scheinbar korrekte linke Kappe, gefolgt von einem langen mittleren Teil, der so ist, als hätte ich das einzelne Pixel in Pixel 5 skaliert, dann ein Teil rechts neben dem Bild, in dem es sich ausdehnt und über eine Breite von etwa doppelt so hoch ist des Originalbildes. Das resultierende Bild ist wie eine Thermometer -Glühbirne.

Hat jemand ein seltsames Verhalten wie dieses gesehen und könnte wissen, was los ist?

War es hilfreich?

Lösung

Ihre Beobachtung ist korrekt, Joey. StretchableImageWitHleftCapwidth erweitert nicht die gesamte Bildmitte, wie Sie es erwarten würden. Es erweitert nur die Pixelspalte rechts von der linken Kappe und die Pixelreihe direkt unter der oberen Kappe!

Verwenden Sie stattdessen die IncentStretch -Eigenschaft von UIView und Ihr Problem wird gelöst. Ein weiterer Vorteil dafür ist, dass ContentStretch auch eine Grafik richtig verkleinern kann, während dehnbares Withleftcapwidth nur dann funktioniert, wenn die Grafik größer wird.

Andere Tipps

Ich bin mir nicht sicher, ob ich Sie nach rechts gebracht habe, aber die linke Capwidth usw. wird für abgerundete Ecken gemacht, wobei alles im Rechteck im Rundungsradius gestreckt ist, um den Raum zwischen den 'Caps' auf dem Zielknopf oder dergleichen anzupassen.

Wenn Ihr Oval größer oder breiter als 4 x 2 = 8 ist, wird das, was im mittleren Rechteck ist, gedehnt. Und deins ist, also würde es zumindest ein bisschen hässlich sehen! Aber wenn es nicht einmal symmetrisch ist, hat etwas die Strecke beeinflusst. Vielleicht etwas mit Herkunft oder Rahmen zu tun oder wenn es eingestellt ist oder es zweimal eingestellt ist oder Sie zwei verschiedene gestreckte Bilder übereinander haben, geben dem Thermometer -Look.

Ich habe einmal zwei identische Schaltflächen an derselben Stelle erstellt, wobei ich dasselbe zurückgehaltene Objekt verwendet habe - natürlich werfen Sie die vorherige Taste weg. Dann fragte ich mich, warum zum Teufel der Knopf nicht verschwand, als ich Alpha auf 0 setzte ... aber es tat es nur, dass es einen 'toten' identischen Knopf darunter gab :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top