2012-01-02 16 views
5

Metin kullanmadan bir UIButtonum var ve kullanmak istediğim 2 resme sahip olmak (normal durum için bir, diğeri ise seçilen durum için). Görüntüler düğme boyutundan daha küçüktür.UIImage'ın bir UIButton için yeniden boyutlandırılmasını önleme

Düğme çizildiğinde, görüntülerden hiçbirinin ölçeklenmediğinden nasıl emin olabilirim? ImageView özelliklerini ayarlamak, ölçeği yalnızca normal durum için doğru şekilde değiştirir, ancak seçili değildir.

int topBottom = (button.frame.size.height - imageHeight)/2; 
int leftRight = (button.frame.size.width - imageWidth)/2; 

button.imageEdgeInsets = UIEdgeInsetsMake(topBottom,leftRight,topBottom,leftRight); 

Ve sonra contentMode/ScaleFactor ayarlamak gerekmez:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [button setImage:imageNormal forState:UIControlStateNormal]; 
    [button setImage:imageSelected forState:UIControlStateSelected]; 

    // this shows the correct scale in normal mode but not when button is tapped 
    button.imageView.contentScaleFactor = 1.0; 
    button.imageView.contentMode = UIViewContentModeCenter; 
+0

** NOT !!! ** yalnızca arka plan resmi çerçeveye uygun olarak varsayılan olarak uzatılır. – Fattie

cevap

10

görüntü yüksekliğe sahip ve bu yapabileceğini genişliği varsayarsak.

+0

ortalamasını istiyorsanız, "image" ve arka plan resmini kullanmayın, çok teşekkürler! – james075

İlgili konular