在 app 开发中我们经常会碰到有些页面很长,屏幕一次显示不完,需要用户滑动屏幕来现实,对此,android 和 ios 都引入了 Scrollview 这个控件来实现滑动显示过长的页面,andriod中这个控件的使用比较简单,用Scrollview把布局包起来就可以实现滑动,而且开发人员在开发UI的时候,实时UI视图也会根据布局的长度而变长,方便开发人员搭建UI,但是 ios 的开发就没这么好的待遇了,xcode 中的根视图不会因为uiScrollview里面布局的加长而改变,因此我们在搭建超出屏幕那部分界面的时候就需要采取一些特殊手段啦,下面就为大家讲解用法。

  首先我们先把 ScrollView 拖入布局器,然后设置约束,上下左右的约束均设置为 0 ,让其充满屏幕,此时还不能往里面添加我们的控件,还需要最重要的一步,我们需要拖入一个 UIView 放入 ScrollView 中,设置约束让其充满屏幕,然后在视图结构目录右击点住刚才放入的 UIView不放手,鼠标拖向 ScrollView ,弹出菜单,选择 “equal widths” 和 “equal heights”,如下图所示:

ios真机appium滑动 ios滑动失灵_uiscrollview

  这么设置的原因是 ScrollView 并没有自身的高度,而控件要在屏幕绘制就必须知道控件的宽和高,所以 ScrollView 就必须从它的子根控件获取宽高,然后设置给自己。

      做好这几步之后就可以做布局了,为了屏幕更好的适配小屏幕手机,我们选择预览视图的机型为iphoneSE,它和5s一样都是 4英寸的屏幕,当我们绘制满了整个布局器的时候,该怎么绘制多出来的布局呢?

scrollView.contentSize = CGSize(width: 320, height: 900),紧接着,我们就再重写一个方法:viewDidLayoutSubviews(),代码如下:
 override func viewDidLayoutSubviews() {
      
        let y : CGFloat = scrollView.bounds.height;
        secondView.frame = CGRect(x: 0, y: y, width: view.bounds.width, height: secondView.bounds.height)
        rootview.addSubview(secondView);
    }



    我们先是获取了当前页面ScrollView 的高度,把它作为第二个UIView的y轴坐标,设置好rect,再把它添加进第一个视图的UIView中,这样就基本实现了ScrollView的滑动~~

   下面是我仿作的某App的个人中心实现的ScrollView的滑动,做的比较粗糙哈哈,第二个页面就放了一个大大的蓝色view意思意思,凑合能看就行~~




 

ios真机appium滑动 ios滑动失灵_控件_02

ios真机appium滑动 ios滑动失灵_ios_03