我的问题与我正在尝试使用滚动条的自定义形式的分页有关,如果您首先考虑在老虎机中实现的滚动视图的类型,那么这种更容易可视化.
所以说我的UIScrollView的宽度为100像素.假设它包含3个内部视图,每个内部视图的宽度为30像素,因此它们以3像素的宽度分隔开.我想要实现的分页类型是每页都是我的一个视图(30像素),而不是滚动视图的整个宽度.
我知道通常,如果视图占据了滚动视图的整个宽度,并且分页被启用,那么一切都有效.但是,在我的自定义分页中,我也希望看到滚动视图中的周围视图.
我该怎么做?
解决方法
我刚刚做了另一个项目.您需要做的是将UIScrollView放入UIView的自定义实现中.我为这个名为ExtendedHitAreaViewController创建了一个类. ExtendedHitAreaView覆盖hitTest函数以返回其第一个子对象,这将是您的滚动视图.
您的滚动视图应该是您想要的页面大小,即clipToBounds =否为30px.
扩展的命中区域视图应该是要显示的区域的完整大小,其中clipsToBounds = YES.
将滚动视图作为子视图添加到扩展命中区域视图,然后将扩展命中区域视图添加到视图控制器的视图.
@implementation ExtendedHitAreaViewContainer - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if ([self pointInside:point withEvent:event]) { if ([[self subviews] count] > 0) { //force return of first child,if exists return [[self subviews] objectAtIndex:0]; } else { return self; } } return nil; } @end