Xcode

2011-08-14 22 views
6

'daki düğmelerdeki bir görüntü nasıl kontrol edilir Bir düğmenin hangi görüntüyü kullandığını kontrol etmek mümkün olup olmadığını bulmaya çalışıyorum.Xcode

Resim1 ve image2'im olduğunu varsayalım.

Düğme görüntüsü resim1 ise bunu yapın ve düğmeler resmi image2 ise bunu yapın.

Ama xcode doesnt bana herhangi otomatik doldurma seçeneği sunmak ....

[m1 setImage:[UIImage imageNamed: @"Penguin.png"] forState:UIControlStateNormal]; 

Bu şimdiye görüntüleri oluşturma şekilleridir. ama Penguin veya Penguin2'yi nasıl bulabilirim?

cevap

6

Cocoa Touch, Model-Görünüm – Denetleyici modeli etrafında tasarlanmıştır; bu nedenle, bu modeli benimsemeyi deneyebilirsiniz. Durum bilgisini almayı denemek yerine - seçilen penguen - görünümden - düğme - denetleyici sınıfınızda bir örnek değişkeninde saklayın.

aşağıdaki gibi görünebilir görüntüyü ayarlamak için Kodunuz

:

self.currentImage = @"Penguin.png"; 
[m1 setImage:[UIImage imageNamed: currentImage] forState:UIControlStateNormal]; 

Sonra değerini kontrol etmek gerektiğinde: görüntülerin eşitliğini kontrol etme

if ([@"Penguin.png" isEqual:self.currentImage]) { 
    do something; 
} 
3

şöyle yapılır:

if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage]) { 
    // do something 
} 
+0

Bunun işe yarayacağını düşünmüyorum ause aynı babadan iki farklı örneği karşılaştırmaya çalışıyorsunuz. Her zaman yanlış yazdırmalı –

+0

Makinemde çalışır. Denemek. – nicholjs

+0

Bu, yalnızca [UIImage imageNamed:] yönteminden m1 olarak ayarladığınız zaman çalışır, çünkü kullanılan her zaman bağlantıyı korur, ancak [[UIImage alloc] initWithContentsOfFile:] ile ayarlamaya çalışırsanız her zaman yanlış olur –

2

Bunun için 2 yöntem kullanılabilir:

1.

UIImage *image = self.myButton.currentBackgroundImage; 

2.

myImageView.image = [myButton backgroundImageForState:myButton.state]; 
2
UIImage *img=[(UIButton *) sender currentImage]; 

if(img == [UIImage imageNamed:@"edit"]) 
{ 
    //If do something 
}` 

o

+0

Eğer işe yaramazsa, "edit.png" yi veya resmin hangi formatını ekleyin. benim için düzgün çalışıyor – krishh

5

çalışacak bu umut deneyin Sadece görüntünün temelinde Düğme Eylem Bu kod kullanılan

- (IBAction)checkButtonClicked:(UIButton *)sender { 

    if ([checkButton.currentImage isEqual:[UIImage imageNamed:@"checkbox.png"]]) 
     [checkButton setImage:[UIImage imageNamed:@"Checked.png"] forState:UIControlStateNormal]; 
//do some thing here for your image1 

     else 
    [checkButton setImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal]; 
    //do some thing here for your image 2 

}