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
8
A
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
:
die Schritte aus den obigen Link Listing hier aus:
- Drag Objekt ein Tap Gestenerkenner vom
Object library
in die Szene, und legen Sie es auf der UIView. - 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. - 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.
- Sie sind fertig! : D
Sorry für die noob Frage, ich bin neu in iOS-Entwicklung. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Ich mache es normalerweise durch Tippen Geste, um den Klick zu imitieren UIView –
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) –