Как проверить изображение кнопок в Xcode - PullRequest
6 голосов
/ 14 августа 2011

Я сейчас пытаюсь выяснить, можно ли проверить, какое изображение использует кнопка.

Допустим, у меня есть image1 и image2.

Если изображение кнопки - image1, то сделайтеэто и если изображение кнопки - image2, сделайте это.

Но xcode не дает мне никаких вариантов автозаполнения ....

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

Так я устанавливаю изображения.но как мне узнать, где он, Пингвин или Пингвин2?

Ответы [ 6 ]

6 голосов
/ 02 июля 2013

Только что использовал этот код для действия кнопки на основе изображения

- (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

}
6 голосов
/ 15 августа 2011

Cocoa Touch был разработан на основе шаблона Модель-Вид-Контроллер, поэтому вы можете попробовать применить этот шаблон. Вместо того, чтобы пытаться получить информацию о состоянии - выбранного пингвина - из вида - кнопка - сохраните ее в переменной экземпляра в вашем классе контроллера.

Ваш код для настройки изображения может выглядеть следующим образом:

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

Тогда, когда вам нужно проверить значение:

if ([@"Penguin.png" isEqual:self.currentImage]) {
    do something;
}
3 голосов
/ 04 декабря 2012
UIImage *img=[(UIButton *) sender currentImage];   

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

попробуйте эту надежду, это будет работать

3 голосов
/ 30 марта 2012

2 метода могут быть использованы для этого:

1

UIImage *image = self.myButton.currentBackgroundImage;

2

myImageView.image = [myButton backgroundImageForState:myButton.state];
3 голосов
/ 02 декабря 2011

Проверка равенства изображений производится так:

if ([[UIImage imageNamed:@"Penguin.png"] isEqual:m1.currentImage]) {
    // do something 
}
1 голос
/ 09 декабря 2018

В Swift также возможно

iOS 8 +

if button.currentImage?.isEqual(UIImage(named: "Penguin.png")) {
        //do something here
    }

iOS 7-

if timerButton.currentImage ==  UIImage(named: "Penguin.png") {
        //do something here
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...