Как изменить изображение кнопки?

#iphone #uibutton

#iPhone #uibutton

Вопрос:

Когда я нажимаю кнопку, изображение становится зеленым, но оно становится темным, но его исходный цвет похож на изображение кнопки поиска, так что не так в моем коде?

 - (void)viewDidLoad {
    [super viewDidLoad];
    UIImage *clear_img = [UIImage imageNamed:@"0.png"];
    UIImage *clear_hover_img = [UIImage imageNamed:@"0_hover.png"];
    clear=[[UIButton alloc]init];
    [clear setTitle:@"Clear" forState:UIControlStateNormal];
    //clear.tag =12;
    clear.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:32];

    if(clear.selected=TRUE){
        [clear setBackgroundImage:clear_img forState:UIControlStateSelected];
        [clear setBackgroundImage:clear_hover_img forState:UIControlStateNormal];
    }

    [clear setFrame:CGRectMake(1, 360, 159, 50)];
    [clear addTarget:self action:@selector(clearInput)
    forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:clear];
}

-(void)clearInput {

    textfield.text = @"";
    UIImage *lookup_img = [UIImage imageNamed:@"0_.png"];
    [lookup setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
    [lookup setBackgroundImage:lookup_img forState:UIControlStateNormal];
}
 

введите описание изображения здесь

Комментарии:

1. Я не понимаю. Не могли бы вы перефразировать свой вопрос?

2. Формулировка вопроса на нормальном английском языке вместо копирования и вставки выходных данных Google Translate помогает людям очень сильно пытаться понять, что вы имеете в виду.

3. в чем ваша проблема, объясните это. тогда только мы даем предложение

4. моя кнопка меняет изображение на зеленое изображение, когда я нажимаю ok? но его цвет настолько темный, что исходный цвет похож на кнопку поиска, так где ошибка в моем коде?

5. Сделайте, если (clear.selected==YES) вместо (clear.selected = TRUE)

Ответ №1:

Для состояния touchUpInside непрозрачность изображения кнопки уменьшите до 0,5. попробуйте это-

 if(clear.selected == TRUE){
    [clear setBackgroundImage:clear_img forState:UIControlStateSelected];
    [clear setBackgroundImage:clear_hover_img forState:UIControlStateNormal];
    [clear setBackgroundImage:clear_hover_img UIControlStateHighlighted];
}
 

Комментарии:

1. Вам нужен оператор равенства, а не оператор присваивания.

2. Такого состояния, как будто UIControlStateTouchUpInside это событие, не существует. Я считаю, что использовать UIControlStateHighlighted . Это решило мою проблему.

3. он не работает [один setBackgroundImage:one_img forState:UIControlStateHighlighted];

4. моя ошибка — [очистить setBackgroundImage:clear_hover_img forState: UIControlStateHighlighted];

Ответ №2:

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

Если я правильно понимаю, то вы сделали:

 [clear setBackgroundImage:clear_img forState:UIControlStateSelected];
[clear setBackgroundImage:clear_hover_img forState:UIControlStateNormal]; 
 

добавьте и эту строку:

 [clear setBackgroundImage:clear_img forState:UIControlStateHighlighted];
 

Надеюсь, это помогло