思路
自定义一个view,view 里面封装了一个 scrollview,scrollview 的宽度等于你需要的那个滚动子控件宽度。
scrollview的clipsToBounds = NO; 让里面的内容超出scrollview 的大小
自定义view 的clipsToBounds = YES;
4.实现
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *view = [super hitTest:point withEvent:event];
if ([view isEqual:self])
{
for (UIView *subview in scrollview.subviews)
{
CGPoint offset = CGPointMake(point.x - scrollview.frame.origin.x + scrollview.contentOffset.x - subview.frame.origin.x,
point.y - scrollview.frame.origin.y + scrollview.contentOffset.y - subview.frame.origin.y);
if ((view = [subview hitTest:offset withEvent:event]))
{
return view;
}
}
return scrollview;
}
return view;
}
源码地址在
https://github.com/zhufengyi01/RollProject