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

发布时间:2020-10-09 07:15:46 作者:JoeyYYF
来源:网络 阅读:4761

由于项目需要自定义一个日历,后来在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作用相似,做个笔记,如有错误,敬请指出!

推荐阅读:
  1. Android设置ScrollView滚动到底部和顶部
  2. Android布局 屏幕滚动方法 ScrollView

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

scrollview bounds contentoffset

上一篇:详解自定义ajax支持跨域组件封装

下一篇:jQuery获取table下某一行某一列的值实现代码

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》