今天在做一个功能的时候,有用到ScrollView,之前在一个控制器中加入ScrollView,都没遇到加入子控件,子控件往下便宜,超出ScrollView范围的问题。而今天随便怎么设置尺寸大小,始终毫无反应,最后通过多方跟踪查找,终于找到问题所在,记录一下。
首先看出现的问题,如图所示
看图应该明白,我在对ScrollView中加入了8个uilabel子控件,但启动模拟器却看不见UILabel,但在UI调试里面明显看到已经加进去了,只是系统自动把子控件往下偏移了,而目前scrollview只支持横向滚动,禁止了上下滚动,这样的话始终不会显示加进去的8个子控件。
最后多方查找调试,终于找到问题的原因,原因就在上面的导航栏,当前控制器是作为navigationController的子控制器,自然会有一个导航栏,而系统会自动使导航栏下面的第一个scrollview的contentOffset.y值下移64个点,就是导航栏的height。
解决方法有两种,假如通过storyboard创建的控制器,请在属性拦中去掉一个layout的属性,如下图
代码的话:只需设置一句,(self是控制器)
self.automaticallyAdjustsScrollViewInsets = NO;
搞定!如图(注明:这是做滑动标题使标题内容颜色渐变的功能及控制器循环利用转换,代码地址:
https://github.com/lzzbCoder/ZZBGroupChange)