iOS 只要一分钟,学会改变UIScrollView的分页宽度

大家都知道UIScrollView自带分页效果,但是他的分页效果一页的宽度却是和自身的宽度相等,这个宽度在UIScrollView里面是没有办法设置的,但是我们可以利用其他的一些属性去改变它。

众所周知UIScrollView是可以分页的,只要设置如下变量:
scrollView.pagingEnabled = YES;
效果就是Photo那种一页一页的看照片。
默认的话,一页的尺寸就等于 scrollView.bounds.size,但对于iPad这种大屏幕来讲,经常会遇到需要一页要小于这个数值,比如我希望能同时看到3张照片,但又同时想slide的时候scrollView一次只移动一张照片的宽度 (scrollView.bounds.size.width/3),而不是一页的大小 (scrollView.bounds.size.width)。

有个很简单的方法,关键就是把scrollView的宽度設置成想要的page宽度,然後设置 clipsToBounds = NO。接着再定义scrollView 所在的 UIView 的 hitTest:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {  
    if ([self pointInside:point withEvent:event]) {  
        return _scrollView;  
    }  
    return nil;  
} 

如果 scrollView 所在的View有其他subView,可以用以下代码:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {  
    UIView *child = [super hitTest:point withEvent:event];  
  
    if (child == self) {  
        return self.scrollView;  
    }  
  
    return child;  
}  

是不是会感叹居然有这种操作?!

顺便附上UIScrollView滚动到指定位置的方法:

[mScrollView setContentOffset:CGPointMake(0, 200) animated:YES];  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容