UIButton - изображение смены касания
Когда я прикасаюсь к кнопке в это время, я хочу изменить изображение, и когда я отпущу изображение кнопки касания, оно будет таким, как оно есть.
Я хочу применить ниже код, но это не с моим ожиданием.
пожалуйста, дайте мне предложение.....
-(IBAction)actionEnter:(id)sender{
if ([sender isSelected]) {
[sender setImage:[UIImage imageNamed:@"enter-hover.png"]
forState:UIControlStateNormal];
[sender setSelected:NO];
} else {
[sender setImage:[UIImage imageNamed:@"enter.png"]
forState:UIControlStateSelected];
[sender setSelected:YES];
}
Ответы
Ответ 1
Вы можете использовать UIControlStateHighlighted для этого.
[myButton setImage:[UIImage imageNamed:@"enter-hover.png"]
forState:UIControlStateHighlighted];
Вы также можете установить это из конструктора интерфейса, установив изображение для выделенного состояния.
Ответ 2
Я думаю, что это должно это сделать. Установите изображения после создания кнопки
[yourButton setImage:[UIImage imageNamed:@"enter-hover.png"]
forState:UIControlStateSelected];
[yourButton setImage:[UIImage imageNamed:@"enter.png"]
forState:UIControlStateNormal];
и сделайте это
- (IBAction)actionEnter:(id)sender{
UIButton *button = (UIButton *)sender;
button.selected = !button.selected;
}
Ответ 3
Я думаю, вы могли бы установить изображение в начале для нормального и выбранного состояния.
Попробуйте использовать ниже при создании объекта UIButton
. [Используйте изображения согласно вашему требованию]
[myButton setImage:[UIImage imageNamed:@"enter.png"]
forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"enter-hover.png"]
forState:UIControlStateSelected];
Ответ 4
В Swift:
button.setImage(UIImage(named: "enter.png"), forState: [.Selected, .Highlighted])
Ответ 5
@7KV7 заставил меня задуматься. У меня есть любимые и игнорируемые кнопки, которые я хочу использовать, чтобы отметить любимые фотографии и фотографии, которые я никогда не хочу видеть снова. Я использовал его метод для инициализации кнопок, а затем слегка изменил его метод, чтобы включать и выключать кнопки.
В этом примере, если вы помечаете изображение как избранное, вы хотите отключить кнопку игнорирования и наоборот. Делегат обрабатывает материал базы данных.
self.favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom];
self.ignoreButton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.favoriteButton setImage:[UIImage imageNamed:@"Favorite-Selected"]
forState:UIControlStateSelected];
[self.favoriteButton setImage:[UIImage imageNamed:@"Favorite"]
forState:UIControlStateNormal];
[self.ignoreButton setImage:[UIImage imageNamed:@"Ignore-Selected"]
forState:UIControlStateSelected];
[self.ignoreButton setImage:[UIImage imageNamed:@"Ignore"]
forState:UIControlStateNormal];
Если вы просто включаете или выключаете кнопку, вам не нужно делать это свойством, так как buttonPressed отправитель знает, какая кнопка была нажата. Мне нужно, чтобы они были собственностью, так как мне нужно сказать противоположной кнопке, чтобы отключить подсветку.
- (void)favoriteIgnore:(UIButton *)buttonPressed {
// Toggle the tapped button
buttonPressed.selected = ( buttonPressed.selected) ? NO : YES;
id <ScoringToolbarDelegate> TB_delegate = _delegate;
// Turn off the other button and call the delegate
if ([buttonPressed.currentTitle isEqualToString:@"favorite"]) {
self.ignoreButton.selected = NO;
[TB_delegate favoriteButtonPressed];
} else {
self.favoriteButton.selected = NO;
[TB_delegate ignoreButtonPressed];
}
}
Ответ 6
чтобы сразу изменить изображение, используйте свойство backgroundImage.