2012-01-11 4 views
0

Я разместил кнопку паузы в пользовательском интерфейсе, где, когда пользователь нажимает кнопку, изображение кнопки из паузы изображения должно быть изменено на начало образ. Я разместил как начало, так и изображения паузы в комплекте, я могу это сделать, но когда я снова нажму на запуск, он должен показать кнопку паузы изображения. Как это сделать, следующий код, который я использую,Как изменить изображение кнопки при нажатии кнопки в объекте c

-(IBAction)btnClked:(id)sender 
{ 

    [pauseButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 



    UIButton *btn=(UIButton *)sender; 


    [btn setImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
} 

ответ

1

Вам нужна переменная, чтобы отслеживать это изменение состояния. BOOL в порядке.

Но с помощью кода, вы можете «злоупотреблять» свойство тега UIButton сказать, если он играет (тег == 1) или паузы (тег == 0)

-(IBAction)btnClked:(id)sender { 
    UIButton *btn=(UIButton *)sender; 
    if (btn.tag == 1) { 
     btn.tag = 0; 
     [btn setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
    } else { 
     btn.tag = 1; 
     [btn setImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
    } 
} 
+0

Спасибо за помощь, ее работа. – shasha

0

Вы можете использовать UIButton выбранного в чтобы сделать то же самое. Например, при запуске кнопки вы должны определить 2 изображения. Один для обычного состояния и другой для выбранного состояния. Когда событие касания кнопки запускается, вы должны сделать его выбранным. Если он уже выбран, вам нужно отменить его выбор. Это намного лучше, чем сохранение дополнительных переменных для проверки выбранного состояния кнопки. Также вы можете улучшить производительность при таком подходе.

Пример кода

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    UIButton *startButton = [[UIButton alloc] initWithFrame:CGRectMake(200, 300, 60, 60)]; 
    [startButton setBackgroundImage:[UIImage imageNamed:@"start.png"] forState:UIControlStateNormal]; 
    [startButton setBackgroundImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected]; 

    [startButton addTarget:self action:@selector(modeButtonClick:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:startButton]; 
} 

- (IBAction)modeButtonClick:(id)sender { 
    UIButton *startButton = (UIButton *)sender; 
    [startButton setSelected:![startButton isSelected]]; 
} 

При создании кнопки с раскадровки или XIBs установить Backgroud изображение для состояния по умолчанию конфигурации и выбранное состояние конфигурации.

Смежные вопросы