2013-03-19 3 views
2
UIImage * imgBtnReloadAllButton = [UIImage resizeableImageWithCapInsets2:UIEdgeInsetsMake(5, 5, 5, 5) withName:@"search_in_this_area"]; 
[self.btnReloadAllButton setBackgroundImage:imgBtnReloadAllButton forState:UIControlStateNormal]; 


PO([self.btnReloadAllButton backgroundImageForState:UIControlStateHighlighted]); 
PO([self.btnReloadAllButton backgroundImageForState:UIControlStateNormal]); 
PO([self.btnReloadAllButton backgroundImageForState:UIControlStateSelected]); 
PO([self.btnReloadAllButton backgroundImageForState:UIControlStateReserved]); 
PO([self.btnReloadAllButton backgroundImageForState:UIControlStateApplication]); 
PO([self.btnReloadAllButton backgroundImageForState:UIControlStateDisabled]); 

Простой достаточно. Это то, что я вижу:Почему кнопки выглядят по-разному, когда пользователь нажимает на нее?

2013-03-19 15:22:22.349 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateHighlighted]: <_UIResizableImage: 0xd6b5a80> 
2013-03-19 15:22:22.350 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateNormal]: <_UIResizableImage: 0xd6b5a80> 
2013-03-19 15:22:22.350 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateSelected]: <_UIResizableImage: 0xd6b5a80> 
2013-03-19 15:22:22.350 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateReserved]: <_UIResizableImage: 0xd6b5a80> 
2013-03-19 15:22:22.382 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateApplication]: <_UIResizableImage: 0xd6b5a80> 
2013-03-19 15:22:22.383 BadgerNew[1724:c07] [self.btnReloadAllButton backgroundImageForState:UIControlStateDisabled]: <_UIResizableImage: 0xd6b5a80> 
(lldb) po imgBtnReloadAllButton 
$0 = 0x0d6b5a80 <_UIResizableImage: 0xd6b5a80> 

Так это выглядит, как и все кнопки состояний указывает на то же изображение, а именно изображение 0xd6b5a80

Тем не менее, когда пользователь нажимает на кнопку, после нажатия кнопки, но, прежде чем поднимать их грязный палец , кнопка выглядит по-другому.

В основном, когда я нажимаю кнопку, нижние углы кнопок больше не круглые.

Что случилось?

+0

Если вы не хотите этого, просто установите [self.btnReloadAllButton setBackgroundImage: imgBtnReloadAllButton Форстате: UIControlStateHighlighted]; [self.btnReloadAllButton setBackgroundImage: imgBtnReloadAllButton forState: UIControlStateSelected]; –

ответ

7

Кнопки настраивают изображение при вводе в выделенное состояние, даже если вы не установили конкретное выделенное изображение. Чтобы предотвратить это, используйте:

imgBtnReloadAllButton.adjustsImageWhenHighlighted = NO; 
+0

Что вы подразумеваете под настройкой? –

+0

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

+0

Возможно, скриншот поможет в вопросе? – jrturton

0

Это потому, что iOS отображает изображение, которое вы используете как (фоновое) изображение, когда вы нажимаете кнопку. Вы можете предотвратить это, установив изображение как изображение, а не как фоновое изображение.

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