我正在实现UIScrollViewDelegate并用它做很多事情.但是,我刚发现了一个烦人的问题.
我希望scrollViewDidEndDecelerating:在scrollViewWillBeginDecelerating之后始终被调用:但是,如果我只是触摸我的ScrollView(实际上我正在触摸scrollView中的按钮),则会调用scrollViewDidEndDecelerating:并且不会调用scrollViewWillBeginDecelerating:.
那么我怎么能避免使用scrollViewDidEndDecelerating:当我只是按下UIScrollView中的按钮时调用?
谢谢!
解决方法
创建名为buttonPressed或类似的成员BOOL,并在init:方法中将其初始化为false.
无论何时按下按钮,都将BOOL设置为true,然后执行以下检查:
-(void)scrollViewDidEndDecelerating: (UIScrollView*)scrollView { if (!buttonPressed) { // resume normal processing } else { // you will need to decide on the best place to reset this variable. buttonPressed = NO; } }