#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];
Надеюсь, это помогло