2013-03-19 1 views
8

Ich habe eine benutzerdefinierte UIView, die eine UILabel und eine UIImageView enthält. Wie kann ich meinen UIView anklickbar machen? Ich möchte, dass der Hintergrund der UIView geändert wird, wenn ein Benutzer auf die UIView drückt. Die Farbe sollte sich wieder ändern, wenn der Benutzer den Knopf hochhebt. Ich muss auch in der Lage sein, das Klickereignis zu verarbeiten.So machen Sie UIView anklickbar

+0

Sorry für die noob Frage, ich bin neu in iOS-Entwicklung. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

Ich mache es normalerweise durch Tippen Geste, um den Klick zu imitieren UIView –

+0

möglich Duplikat von [Wie fügt man ein Touch-Ereignis zu einem UIView hinzu?] (Http://stackoverflow.com/questions/4660371/how-to-add-a -touch-event-to-a-uiview) –

Antwort

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 ') ist dieser Code-Schnipsel, wo in u die Ansicht als Parameter übergeben müssen, um es anklickbar.

4

Swift 2.0 Version:

Vergessen Sie nicht 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 Version zu implementieren:

// 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

Ein anderer Weg ist, um hook up th e Gestenerkennung über Storyboard/Interface Builder.

Es ist sehr einfach und, ich fühle mich, sauberer als mit Code.

Hier ist die Schritt-für-Schritt-Anleitung zum Einrichten des Gestenerkenners. Suchen Sie einfach nach Gesture Recognizer:

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

die Schritte aus den obigen Link Listing hier aus:

  1. Drag Objekt ein Tap Gestenerkenner vom Object library in die Szene, und legen Sie es auf der UIView.
  2. Sie sehen einen Tap Gesture Recognizer in der Mahlzeit scene dock. Das Szenen-Dock befindet sich oben im View-Controller im Storyboard, wo Sie First Responder, Exit usw. haben.
  3. Verbinden Sie den Tap Gesture Recognizer mit Ihrem Code, indem Sie den Mauszeiger vom Gestenerkenner im Szenendock zur Code-Anzeige ziehen. Füllen Sie den Aktionsdialog so, wie Sie es für eine UIButton-Aktion tun würden.
  4. Sie sind fertig! : D