Yanıtlar:
Düğmeniz buttonType
Özel olarak ayarlanmış olmalıdır .
IB'de "Görüntüyü vurgula ayarları" nın işaretini kaldırabilirsiniz.
Programlı olarak kullanabilirsiniz theButton.adjustsImageWhenHighlighted = NO;
"Devre dışı" durumu için de benzer seçenekler mevcuttur.
IB'de "vurguyu ayarlar" ın işaretini kaldırmanın yukarıdaki cevabına ek olarak, düğme türünün ÖZEL olarak ayarlandığından emin olun.
Bu sizin için çalışacaktır:
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
3. sıra buradaki hiledir ...
Bu, resim / arka plan ayarlamak için aynı şekilde çalışır
adjustsImageWhenHighlighted
Mülkü UIButton
sadece arka plan resmi etkileyecek gibi görünüyor.
Varsayılandan düğmenin vurgulanan durumuna ne değiştiğine bağlı olarak, bunları ihtiyacınız olana ayarlamak için birkaç yöntem çağırabilirsiniz. Böylece görüntü değişirse
[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted];
Metin değişirse yapabilirsiniz
[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted];
diğer benzer fonksiyonlar:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
Tamam, bu sizin için işe yaradığında kolay bir çözümdür, bir hafta sonra kafamı vurduktan sonra nihayet bana vurgulanmış = NO, TouchUpInside veya TouchDown için IBAction yönteminin 1. satırı için ya da her neyse çalışır. Benim için TouchUpInside iyiydi.
-(IBAction)selfDismiss:(id)sender {
self.btnImage.highlighted = NO;
NSLog(@"selfDismiss");
etc, etc, etc.
}
Swifty Geliştiricisi için -
yourButton.adjustsImageWhenHighlighted = false