UISegmentedControl Bildskalierung

8

Wie kann ich die in UISegmentedControl verwendeten Bilder verkleinern? Ich erstelle das segmentierte Steuerelement programmgesteuert:

%Vor%

Das Ergebnis ist nicht das, was ich erwarte. Die ursprünglichen .png-Bilder sind etwa 100 Pixel hoch und werden nicht verkleinert, um der 32-Pixel-Höhe des segmentierten Steuerelements zu entsprechen. Dies führt dazu, dass eine segmentierte Steuerung mit riesigen Bildern erstellt wird, die sie überlappen:

Wie kann ich dem Steuerelement sagen, dass es diese Bilder verkleinern soll?

    
e.James 04.02.2011, 09:40
quelle

2 Antworten

19

Sie sollten niemals ein "großes" Bild verwenden, um nur ein kleines Bild anzuzeigen. Das gesamte Bild wird in den Speicher geladen, und nur 10% seiner Pixel werden angezeigt, so dass Sie viel Speicher für nichts verwenden.

Was Sie tun können, wenn Sie diese Ressource wirklich nutzen möchten, ist ein Thumbnail mit Code davor zu erstellen und dieses neu erzeugte Thumbnail zu verwenden.

Die folgende Methode gibt ein neues Bild zurück, das Sie in Ihrem UISegmentedControl verwenden können, und Sie können das große Bild freigeben.

%Vor%

Mit Ihrem Code:

%Vor%     
Ludovic Landry 04.02.2011, 13:47
quelle
1

In swift3,

%Vor%     
Changnam Hong 03.08.2017 15:23
quelle