在scrollView上面,若是add一個textField或者textView,在控件是第一響應者的時候,直接點擊scrollView,touchesBegan是不會響應的。ui
原理以下:spa
UIScrollView的工做原理,當手指touch的時候,UIScrollView會攔截Event,會等待一段時間,在這段時間內,若是沒有手指 沒有移動,當時間結束時,UIScrollView會發送tracking events到子視圖上。在時間結束前,手指發生了移動,那麼UIScrollView就會進行移動,從而取消發送tracking。orm
能夠用下面的方法解決問題:get
- (void)viewDidLoad {it
[super viewDidLoad];io
self.myScroll.delegate = self;event
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(touchScrollView)];原理
[recognizer setNumberOfTapsRequired:1];select
[recognizer setNumberOfTouchesRequired:1];scroll
[self.myScroll addGestureRecognizer:recognizer];
}
- (void)touchScrollView
{
[self.myTextView resignFirstResponder];
}
scrollView還有更好玩的內容。