UIScrollview自定义分页大小
2018-01-30 18:53
323 查看
Demo中UIScrollview的frame大小为屏幕大小:
默认ios的UIScrollview系统只支持bound宽度或高度的分页,不能自定义分页大小,这种不能满足某些情况下交互需求,要实现自定义分页有以下两种方法:
pagingEnabled = YES
clipsToBounds = NO,从而能显示超出bounds的内容
此时自定义分页效果已经实现了,但是超出bounds的部分没办法响应触摸效果,这时候要重写UIScrollview的
在改子类里面实现滚动视图的delegate,通过在合适的时机人为设置偏移量,已达到自定义分页效果
要注意的点,一个是delegate设置,二是customPagingEnabled与系统分页不能同时开启,会产生拉到最后回弹的一个bug.
这边测试代码是用swift写的,OC也可以用,附上DEMO
1、自定义水平分页pageWidth = 300效果:
2、自定义垂直分页pageHeight = 400效果:
默认ios的UIScrollview系统只支持bound宽度或高度的分页,不能自定义分页大小,这种不能满足某些情况下交互需求,要实现自定义分页有以下两种方法:
方法1
将UIScrollview的bounds设置为需要分页的大小pagingEnabled = YES
clipsToBounds = NO,从而能显示超出bounds的内容
此时自定义分页效果已经实现了,但是超出bounds的部分没办法响应触摸效果,这时候要重写UIScrollview的
superView的hitTest:withEvent方法,通过重写hitTest, 就可以将
superView接受到的触摸事件传递给UIScrollView
//这边注意重写的是滚动视图的父视图响应链方法 - (UIView *) hitTest:(CGPoint) point withEvent:(UIEvent *)event {//这边根据需求自己改写 if ([self pointInside:point withEvent:event]) { return scrollView; } return nil; }
方法2
创建一个UIScrollView的子类,重写delegate的get,set方法在改子类里面实现滚动视图的delegate,通过在合适的时机人为设置偏移量,已达到自定义分页效果
要注意的点,一个是delegate设置,二是customPagingEnabled与系统分页不能同时开启,会产生拉到最后回弹的一个bug.
这边测试代码是用swift写的,OC也可以用,附上DEMO
相关文章推荐
- UIScrollView实现自定义分页的大小
- UIScrollView的分页滑动(page可以不一个屏幕大小)
- block代替协议自定义UIScrollView实现分页效果
- 可自定义分页宽度的UIScrollView(Swift实现)
- [iOS]UIScrollview自定义分页的实现方法
- UIScrollView显示超出屏幕大小的内容
- UIScrollView和UIPageControl的分页 && NSTimer【图片轮播器】
- 290_自定义View固定大小
- Android自定义View研究:View的大小
- Android自定义ViewGroup View的大小和坐标控制
- Android自定义View研究(五)--View的大小
- iOS 只要一分钟,学会改变UIScrollView的分页宽度
- UIScrollView 和UIPageControl结合实现分页
- 自定义TextView 可以设置drawable的大小
- Android自定义ViewGroup View的大小和坐标控制
- 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距
- 第二十篇:滚动视图UIScrollView ,分页控制器UIPageControl 定时器 NSTimer
- 使用UIScrollView 实现分页功能
- 重写PageStatePersister属性 自定义压缩方法来减小ViewState大小来优化页面加载时间
- iOS UI-UIScrollView控件实现图片轮播 (UIPageControl-分页指示器)