iPhone: Benutzerdefinierte UITableViewCell mit mehreren Bereichen, die Taps reagieren?
-
19-09-2019 - |
Frage
Ich bin gebeten worden, eine benutzerdefinierte UITableViewCell mit mehreren Bereichen zu schaffen, die erschlossen werden können.
Diese Bereiche werden keine Schaltflächen haben oder Grafiken - sie unsichtbar sein werden. 3 verschiedene Methoden werden je nachdem, welche Drittel der Zelle bezeichnet werden, der Benutzer tippt d.
|| decrementFooCount || viewFooDetails || incrementFooCount ||
Die Zelle hat einige Etiketten auf, dass es jederzeit sichtbar sein müssen - die fooName und fooCount
.Ich denke, vielleicht drei versteckte UIButtons über die Zelle?
Ich brauche auch die Swipe zu halten, um das Standardverhalten zu löschen.
Lösung
Sie können Ihre UITableViewCell Unterklasse und die touchesBegan:withEvent:
Methode außer Kraft setzen. Sie können dann eine CGPoint davon, wo die Berührung getätigt.
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch* touch = touches.anyObject;
CGPoint location = [touch locationInView:self];
if (CGRectContainsPoint(myTestRect, location)) {
// Touched inside myTestRect, do whatever...
} else {
// Let the default implementation take over.
[super touchesBegan:touches withEvent:event];
}
}
Andrew