首页 > 代码库 > 如何设置scrollview的contentoffset却不触发DidScroll方法
如何设置scrollview的contentoffset却不触发DidScroll方法
由于项目需要自定义一个日历,后来在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的contentoffset却不触发DidScroll方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。