Project sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// this ALWAYS moves the view back to its original place func handleTap(reg : UIGestureRecognizer) { if(self.toMoveBackDown != 0) { self.view.endEditing(true) self.viewMoveDown(height: self.toMoveBackDown) } } func animateTableView(delta: CGFloat, heightToRemember: CGFloat) { var rect : CGRect = self.tableView.frame; UIView.animate(withDuration: 0.3, animations: { rect.origin.y -= delta; rect.size.height += delta; self.tableView.frame = rect; self.tableView.scrollRectToVisible(rect, animated: true) }) {(finished) in self.toMoveBackDown = heightToRemember } } func viewMoveUp(height: CGFloat) { if(self.toMoveBackDown == 0) { // animate up iff we're at original position print("move viewcontroller up") animateTableView(delta: height, heightToRemember: height) } } func viewMoveDown(height: CGFloat) { if(self.toMoveBackDown > 0) { // animate down iff we have moved up previously print("move viewcontroller down") animateTableView(delta: -height, heightToRemember: 0) } } override func viewDidLoad() { super.viewDidLoad() let tap:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(reg : ))) tap.numberOfTapsRequired = 1 self.view.addGestureRecognizer(tap) } |
swift 3
1 2 3 4 5 6 7 8 9 10 11 12 |
@IBOutlet var myView: UIView! override func viewDidLoad() { super.viewDidLoad() let tap = UITapGestureRecognizer(target: self, action:#selector(handleTap)) myView.addGestureRecognizer(tap) } func handleTap() { print("tapped") } |
objective
the delegate
1 2 3 4 5 6 |
#pragma mark - Gesture delegate - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { CGPoint pointOnScreen = [touch locationInView:nil]; return NO; // handle the touch } |
optional – handler
1 2 3 4 |
- (void)handleTap:(UITapGestureRecognizer *)tapRecognizer { CGPoint touchPoint = [tapRecognizer locationInView: self]; } |
1 2 3 |
UITapGestureRecognizer * theTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: self action: @selector(handleTap:)]; theTapRecognizer.delegate = self; [self addGestureRecognizer: theTapRecognizer]; |