如何设置scrollview的contentoffset却不触发DidScroll方法

因为项目须要自定义一个日历,后来在GitHub上找到了FSCalendar跟咱们的项目需求很类似,就想拿过来改一下,看了看代码,做者逻辑代码能力挺强悍的(最起码我看代码饶了很长时间尚未彻底看懂)。咱们的需求就是要把FS日历的hearder换成中间显示月份两边是两个button能够点击向左向右切换月份,因为做者全部切换日历的逻辑都写在Scrollview的代理方法scrollViewDidScroll里面,因此在个人button点击事件里面设置Scrollview的contentoffset的时候,系统会自动调用ScrollviewDidScroll方法,因此除了执行点击事件里面我设置的更换日历相关逻辑,还会自动调用ScrollviewDidScroll方法中实现的逻辑,致使混乱。最终仍是受做者的代码启发,使用bounds代替contentoffset,一样实现切换Scrollview显示的位置可是不会触发ScrollviewDidScroll方法,核心代码以下:ide

    

_scrollView.bounds = CGRectOffset(_scrollView.bounds, self.flowOffset.x, self.flowOffset.y);spa


其实bounds的x,y值也是能够不为0的,不为0时表明相对于自身坐标系的位置偏移,和contentoffset做用类似,作个笔记,若有错误,敬请指出!3d

相关文章
相关标签/搜索