2013-03-19 12 views
8

Ho un UIView personalizzato che contiene UILabel e UIImageView. Come faccio a rendere cliccabile il mio UIView? Voglio che lo sfondo di UIView cambi ogni volta che un utente inizia a premere su UIView. Il colore dovrebbe cambiare quando l'utente solleva il pulsante. Devo anche essere in grado di gestire l'evento click.Come rendere UIView selezionabile

+0

Ci scusiamo per la domanda di noob, sono nuovo nello sviluppo di iOS. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

di solito lo faccio toccando il gesto per simulare la possibilità di fare clic su UIView –

+0

possibile duplicato di [Come aggiungere un evento di tocco a un UIView?] (Http://stackoverflow.com/questions/4660371/how-to-add-a -touch-evento-a-un-UIView) –

risposta

20
-(void)addGestureRecogniser:(UIView *)touchView{ 

    UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(changecolor)]; 
    [touchView addGestureRecognizer:singleTap]; 
    DBLog(@"ADD GESTURE RECOGNIZER"); 
} 
-(void)changecolor{ 

    // do something 


} 

1`) questo è frammento di codice dove u bisogno per passare la visualizzazione come parametro in modo da renderlo cliccabile.

4

Swift 2.0 Versione:

Non dimenticare di implementare UIGestureRecognizerDelegate

// Add tap gesture recognizer to View 
let tapGesture = UITapGestureRecognizer(target: self, action: Selector("onClickOnView")) 
tapGesture.delegate = self 
self.view.addGestureRecognizer(tapGesture) 

func onClickOnView(){ 
    print("You clicked on view..") 
} 

Swift 3.0 Versione:

// Add tap gesture recognizer to View 
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickView(_:))) 
tapGesture.delegate = self 
view.addGestureRecognizer(tapGesture) 

func clickView(_ sender: UIView) { 
    print("You clicked on view") 
} 
7

Un altro modo è quello di collegare esimo Riconoscimento di gesti tramite storyboard/Interface Builder.

È molto semplice e, mi sento, più pulito rispetto all'utilizzo del codice.

Questo è il riferimento passo passo per configurare Gesture Recognizer. Basta cercare Gesture Recognizer:

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html#//apple_ref/doc/uid/TP40015214-CH6-SW1

Listing i passi dal link qui sopra qui:

  1. Trascinare un Recognizer oggetto Tap Gesture dal Object library alla scena, e posizionarlo in cima alla UIView.
  2. Verrà visualizzato un rubinetto Gesture Recognizer nel pasto scene dock. Il Dock di scena è la parte superiore del controller di visualizzazione nello storyboard in cui hai il primo risponditore, l'uscita, ecc.
  3. Connetti il ​​Gestore Riconoscitore di gesti al codice mediante il trascinamento del controllo dal rilevatore di gesti nel dock di scena alla visualizzazione del codice. Riempi la finestra di dialogo Azione come faresti per un'azione di UIButton.
  4. Hai finito! : D
Problemi correlati