• 九三
    2019-05-10
    老师,您好,为什么scrollview 在显示的时候,没有滚动的时候 先执行一次代理方法scrollViewDidScroll,这个是什么时候触发的?

    作者回复: 这次的触发我们可以看到是在scrollView add到didMoveToWindow之后触发的,并且我们如果加入断点可以发现此时的offset已经不是0了。

    原因就是对于UIScrollView来说,默认的 UIScrollViewContentInsetAdjustmentBehavior属性调整了Inset所以导致了offset的变化。而这次offset的变化就在我们没有手动滚动的时候,触发了一次scrollViewDidScroll。如果我们设置scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;就不会触发函数的调用了。

    而对于 UIScrollViewContentInsetAdjustmentBehavior 这个属性我们讲在之后适配的课程中进行讲解。

    简单的理解就是,对于一个默认的UIScrollView,在初始化之后被展示出来前,系统会默认的调整Inset以适配我们的屏幕,调整inset之后为了保证看起来还在最初的位置,就需要调整offset。这就导致了这次delegate函数的调用。当然这个策略是暴露给我们的,我们可以做自定义的设置。

    
     5
  • 戒惜舍得
    2019-05-14
    大神,基于国内大部分iOS开发者没有使用TDD的现状。猫神oneVcat 和轮子 哥 vczh 都很重视TDD。已经不是一次,cto要求做TDD . 这几年到了一个新公司cto 或者技术领导开始就会要求TDD,或者要求写测试。由于大神较多识广,可否为广大开发者指点迷津。
    
    
我们在线,来聊聊吧