相关文章推荐
刚失恋的椅子  ·  Mysql的批量导入类 ...·  1 年前    · 
闯红灯的冰棍  ·  python - 如何将 PIL ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I have a UIScrollView in my UIViewController. I need to detect ANY kind of touch on it, and then do something. What else do I need?

- (BOOL)canBecomeFirstResponder {
    return YES;
- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self becomeFirstResponder];
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    NSLog(@"TOUCHED"); // never happens
    for (UITouch *touch in touches) {
        if ( [touch view] == self.myScrollView)
            //do something
                Is the scroll view covering the whole view controller? If so, then it is first in the responder chain.
– Alexander
                May 29, 2012 at 6:03
                Actually touches aren't detected anywhere on the view controller, even on the views that aren't scrollviews.
– soleil
                May 29, 2012 at 6:12
  • Subclass UIScrollView and implement your touchesBegan[...] code there
  • Add a UIView to your UIScrollView and use the UIView's touchesBegan[...] delegate method
  • use a controller to set the UserInteractionEnabled property to true on a UIView class.

    try imgTouchMe.UserInteractionEnabled = true;

    or follow

    Thanks for contributing an answer to Stack Overflow!

    • Please be sure to answer the question. Provide details and share your research!

    But avoid

    • Asking for help, clarification, or responding to other answers.
    • Making statements based on opinion; back them up with references or personal experience.

    To learn more, see our tips on writing great answers.