2010-05-08 6 views
6

Ich habe den folgenden Code.UIButton Custom Image und Frame

UIImage *cancelImg = [UIImage imageNamed:@"cancel.jpeg"]; 
    UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeCustom]; 
    btnCancel.userInteractionEnabled = YES; 
    [btnCancel setFrame:CGRectMake(0.0,0.0, 28.0, 28.0)]; 
    [btnCancel setImage:cancelImg forState:UIControlStateNormal]; 
    cell.accessoryView = btnCancel; 

cancel.jpeg ist derzeit größer als 28 x 28 und es ist tatsächlich 100 x 100.

Warum funktioniert die Taste Display 100 x 100 Größe des Bildes, wenn ich die Größe des UIButton eingestellt haben bis 28 x 28?

+0

Ich musste das Bild auf 28 x 28 skalieren. Ich dachte nur, dass UIButtons Rahmen das 100 x 100 Bild auf 28 x 28 stopfen würde. Vermutung nicht. –

Antwort

13

Die image der Schaltfläche wird nicht neu skaliert. Stellen Sie als backgroundImage, wenn Sie Neuskalierung benötigen.

+0

sehr hilfreiche Antwort. – pmk

3

Dieses Verhalten muss sich seither geändert haben, da der obige Code eine verkleinerte Schaltfläche auf iOS 4.2 erzeugt.

+0

Dang. Ich wollte eigentlich das Verhalten von der ursprünglichen Post. Danke für das Posten. – AndrewKS

0

Ich habe in iOS 5 mit benutzerdefinierten Schaltflächen experimentiert, die bei der Änderung der Geräteausrichtung automatisch verkleinert werden. Ich setze sowohl ein backgroundImage als auch ein Bild mit den gleichen Anfangsgrenzen wie die Schaltfläche, und was ich sehe, ist, dass die backgroundImage die Größe ändert und das Bild nicht, sondern zentriert im Rahmen der Schaltfläche bleibt.

Verwandte Themen