• Masami
    2019-06-08
    我发现pagingEnabled在案例中,除了翻页的效果外,使用之后整个scrollView刚开始是正常的,然后经过点击或滑动,它就会自动上移一个导航栏的高度后,保持这个高度。
    如果没有使用scrollView.pagingEnabled。那么scrollView高度就稳定在导航栏高度之下。
    请问这是什么原因呢?使用和不使用它,会造成
    不一样的结果,那如何解决呢?

    作者回复: 整体的原因就是因为UIScrollViewContentInsetAdjustmentBehavior这个属性。

    在项目中我们没有设置,默认系统会在addsubview之后,就是scrollView展示之前自动的调整Inset,导致了offset的变化,所以初始化的时候,其实整体的页面是下移的。

    设置了pagingEnabled,系统会自动的处理offset来实现分页的效果.所以对于垂直方向,所以这种自动处理在滑动时会导致之前变化的offset回滚到0。所以就有了上移,而不设置pagingEnabled时系统不会自动调整offset,完全由用户操作,所以就不会出现这种现象。

    解决的办法就是设置scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever。在日常frame布局的项目中,所有的scrollView也都设置了这个属性。相关的知识因为在之后的课程中会进行讲解,所以在当前的项目中,没有设置这个属性。

    
     3
  • Bojack
    2019-09-26
    想问下老师,UIViewController的高度是多少,为什么还会出现纵向滚动条。

    作者回复: view的bounds,scrollview的bounds是相同的,同时scrollview 中 contentsize的height也是和view/scrollView height相同,比如iphoneXR中,都是896. 为什么会出现滚动条呢?在课程中也讲过,对于一个滚动视图来说,影响滚动的不光有contentSize,还有contentInset。所以我们可以在视图加载完成之后选择合适的时机增加断点,可以发现scrollView的contentInset是有值的。那么为什么我们没有设置contentInset,它自动就有值了?是因为在iOS11之后,系统增加了contentInsetAdjustmentBehavior这个属性,默认是UIScrollViewContentInsetAdjustmentAutomatic,他会根据当前的页面结构(比如在navigation controller中)自动的设置contentInset来进行适配。当然这个属性在使用frame布局的项目中会造成一定的迷惑,所以可以手动的设置该属性为UIScrollViewContentInsetAdjustmentNever,这样就和我们设置frame时候的预期相同了。可以增加这个属性之后,结合断点在看下~

    
     1
  • itgou
    2019-09-05
    frame和bounds有什么区别呢?

    作者回复: frame是相对于父View坐标系下的位置,而bounds是相对于自己坐标系的位置。简单的说就是对于size来说,两者是一样的,而对于origin ,frame是这个view在superView的位置,而bounds一般来说是origin是{0,0}

     1
     1
  • Geek_da3bc7
    2019-09-08
    这个适合刚入行的朋友们

    作者回复: 加油!

    
    
  • Geek_562ab0
    2019-08-05
    [scrollView addSubview:({...})]; 这里addSubview 后面的代码是block吗,而且为什么要在后面写 view; 这句代码呢?

    作者回复: 具体可以看下https://gcc.gnu.org/onlinedocs/gcc/Statement-Exprs.html 哈。其实也可以不用纠结,就是一个书写的方式而已,在代码较多的时候会显得整洁一些。

    
    
  • Geek_baozi
    2019-07-30
    为何我的横向移动看不到滚动条呢?纵向是正常的,是被底部的tabbar挡住了吗

    作者回复: 可以简单的debug下,contentSize横向是否可以滚动?showsHorizontalScrollIndicator是否有正确的设置?是否能看到scrollview的底部没有被遮挡?如果还是没有找到问题的愿意,建议发下代码的地址哈,我帮你看下

     2
    
我们在线,来聊聊吧