Ich habe mit diesem Code herum gespielt, kann es aber nicht richtig machen.UIScrollView mit einem UIButton und UITapGestureRecognizer
Aktuelles Verhalten: Ich kann auf einem UIScrollView frei herumlaufen, auch wenn ich auf Tasten tippe. Wenn ich auf etwas stoße, das keine Schaltfläche ist, ruft es eine Methode (wie ich es möchte) als Ergebnis eines UITapGestureRecognizer auf. Allerdings muss ich für einige Sekunden auf eine Taste drücken und dann nach oben tippen, um die UIControlEventTouchUpInside der Taste auszulösen.
Was ich möchte: Genau das gleiche, aber in der Lage zu sein, den UIButton leicht zu berühren, wie ich kann, wenn ich den UITapGestureRecognizer auf der Ansicht abstelle, auf der er sitzt.
Hier ist mein Code:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
//...
[cell.xButton addTarget:self action:@selector(xButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
self.delaysContentTouches = YES;
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
[self addGestureRecognizer:tapGestureRecognizer];
tapGestureRecognizer.delegate = self;
}
}
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer
{
[self.header removeKeyboard];
}
Dies, kombiniert mit meinem Code oben, bedeutet jetzt, dass alle Berührungen auf dem UIButton zu einem direkten Drücken zu ihm führt. Ich möchte, dass dies ähnlich funktioniert wie das iPhone-Sprungbrett, auf dem du Uibuttons in der Uiscrollansicht hast, aber wenn du sie beim Scrollen berührst, hat das keinen direkten Effekt. – Andrew