2013-07-10 15 views
8

Musi być sposób, aby to zrobić, ale nie mogę go znaleźć. Mam przycisk I utworzony programowo:Programowo wyłącz wyróżnienie kliknięciem UIBUTton

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.frame = CGRectMake(25, self.view.frame.size.height/4, 200, 350); 
[button setTitle:@"Inbox" forState:UIControlStateNormal]; 
[button addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:button]; 

Wszystko czego chcę to dla przycisku nie do podkreślenia lub zmiany w wyglądzie, w jakikolwiek sposób, gdy jest ona dotknęła. Do tej pory próbowałem podczas tworzenia przycisku, co następuje:

[button setBackgroundImage:[UIImage imageNamed:nil] forState:UIControlStateSelected | UIControlStateHighlighted]; 

I

[button setBackgroundImage:nil forState:UIControlStateSelected]; 

I

[button setAdjustsImageWhenHighlighted:NO]; 

I

button.showsTouchWhenHighlighted = NO; 

Następnie w działaniu przycisku próbowałem :

[sender setHighlighted:!sender.isHighlighted]; 

I

[sender setSelected:!sender.isSelected]; 

Żaden z tych prac.

+0

Pan spojrzał na showsTouchWhenHighlighted? – KHansenSF

+0

Dzięki, po prostu wypróbowany, też nie działa! Właśnie dodałem to do mojej listy rzeczy, które próbowałem. – jac300

+0

Co powiesz na '[przycisk setBackgroundImage: [UIImage new] forState: UIControlStateSelected];' lub 'adjustsImageWhenHighlighted'. – danypata

Odpowiedz

9

Utwórz własny przycisk UIButton, a następnie zastosuj do niego tło UIImage. To nie będzie podkreślać lub zmieniać po naciśnięciu

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
+0

świetna odpowiedź !!! – Asmita

12

Można po prostu ustawić adjustImageWhenHighlighted do nr

button.adjustsImageWhenHighlighted = NO; 
+0

Świetna odpowiedź! 2 kolejne postacie – EralpB

+0

Świetna odpowiedź, wyglądałem z dwóch dni na to – Asmita

6

Bro, próbowałem różnych sposobów, jak ty. Ale w końcu znalazłem mój własny przepis:

nie wiem jak to działa z przycisku niestandardowego z UIImage na nim ale dla prostego UIButton z tekstem o stanie heighlighted należy po prostu ustawić takie same ustawienia jak masz domyślny stan.

Dla wyróżniony stan dla właściwości obrazu w IB ustawić białe znaki. Może się okazać, że czasami przycisk może mieć dziwne małe przesunięcie po kliknięciu. W takim przypadku usuń tekst z textField dla podświetlonego stanu. To rozwiąże ten problem.

enter image description here

Następnie na zdarzenia click widać nie pulsuje w ogóle.

+0

To jest hackowate rozwiązanie. –

+1

To jest hackowate rozwiązanie, które działa na Xcode 6.2 beta 5 w swift. Nic, co nie było hackowskie "normalne", działało. Właśnie uratowałeś mój dzień i noc. Gj –

+0

Ustawienie tego samego obrazu, co w stanie "Domyślny", zadziałało u mnie. – Resty

0

Dla tych użyciu niestandardowego obrazu PNG z koloru odcień włączony, można uniknąć ściemniania (np od białego do szarego) z tym kodem:

clearButton.tintAdjustmentMode = UIViewTintAdjustmentModeNormal; 
Powiązane problemy