如何设置scrollview的contentoffset却不触发DidScroll方法
2017-06-09 14:46
169 查看
由于项目需要自定义一个日历,后来在GitHub上找到了FSCalendar跟我们的项目需求很相似,就想拿过来改一下,看了看代码,作者逻辑代码能力挺强悍的(最起码我看代码饶了很长时间还没有完全看懂)。我们的需求就是要把FS日历的hearder换成中间显示月份两边是两个button可以点击向左向右切换月份,由于作者所有切换日历的逻辑都写在Scrollview的代理方法scrollViewDidScroll里面,所以在我的button点击事件里面设置Scrollview的contentoffset的时候,系统会自动调用ScrollviewDidScroll方法,所以除了执行点击事件里面我设置的更换日历相关逻辑,还会自动调用ScrollviewDidScroll方法中实现的逻辑,导致混乱。最终还是受作者的代码启发,使用bounds代替contentoffset,同样实现切换Scrollview显示的位置但是不会触发ScrollviewDidScroll方法,核心代码如下:
_scrollView.bounds = CGRectOffset(_scrollView.bounds, self.flowOffset.x, self.flowOffset.y);
其实bounds的x,y值也是可以不为0的,不为0时代表相对于自身坐标系的位置偏移,和contentoffset作用相似,做个笔记,如有错误,敬请指出!
_scrollView.bounds = CGRectOffset(_scrollView.bounds, self.flowOffset.x, self.flowOffset.y);
其实bounds的x,y值也是可以不为0的,不为0时代表相对于自身坐标系的位置偏移,和contentoffset作用相似,做个笔记,如有错误,敬请指出!
相关文章推荐
- iOS: UIScrollViewDelegate Protocol的方法scrollViewWillEndDragging:withVelocity:targetContentOffset:
- WEB页面打印方法,包括如何设置打印分页
- anjuta的基本使用方法(包括如何设置MYSQL)
- Qt 4中如何为对话框设置背景?说说我总结的方法
- 如何自由设置.net缓存/设置.net缓存必选方法之一
- 如何设置操作系统处于最佳性能?此方法可以取消系统自带的界面渲染及其它多余的辅助功能.
- [原创]如何在关闭当前页面时刷新父页面(调用它的页面),或者触发父页面的某个事件或方法
- WIN7远程桌面连接方法!远程控制教程!XP远程桌面连接教程!如何设置远程桌面连接?远程桌面连接设置!
- Flex中如何通过dataTipOffset样式设置HSlider控件的数据开销的例子
- 如何把资源管理器默认排列方式,设置为按修改日期排列图标的方法?
- scrollView的几个属性contentSize contentOffset contentInset
- 关于服务器如何设置动易系统数据库路径的方法
- DOS下启动/关闭服务方法,包括如何设置NT服务
- 如何设置在IE 邮件查看Source 的方法
- ajax指定为post但是未设置content-type时如何获取提交的内容
- WEB页面打印方法,包括如何设置打印分页
- 什么是BIOS?如何进入BIOS,恢复BIOS原始设置的快捷方法
- [VB.NET]如何动态设置数据库访问方法
- 如何把文本框设置为不可用的四种方法
- 如何设置jquery的ajax方法为同步