- 开发过程中,一个页面经常会兼具TableView和ScrollView,但是有些时候会发现两者在滑动时会产生一些冲突导致一些莫名其妙的bug,颇为苦恼。
- TableView和ScrollView发生冲突的原因:
UItableVIew是继承自UIScrollView类的,它可以响应父类scrollView的方法,当然包括代理方法。由此TableView在滚动的时候可能会触发ScrollView的代理方法,bug。 - 解决方法:
可以在ScrollView的代理方法中做一下类名判断就欧克了。
例如
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if ([scrollView isKindOfClass:[UIScrollView class]]) {
NSLog(@"ScrollView在滚动");
}else if ([scrollView isKindOfClass:[UITableView class]]) {
NSLog(@"TableView在滚动");
}
}
好啦,小伙伴们尽情的滚动吧 .