1、使用ScrollView搭建超出屏幕的界面
UIScrollView是iOS开发的重要组成部分,可以优雅的显示超出屏幕的内容。然而,利用其自动布局属性可能对我们许多人来说是一个令人困惑的任务,因为我们不是使用自动布局的正常模式布局的页面。下面我将以详细的步骤描述如何在storyBoard中使用scrollView。
首先,在控制器中添加一个scrollView,设置它的上、下、左、右约束相对于safeArea为0,如下图:
二、在scrollView上添加一个UIView,作为scrollView的contentView,设置它的设置它的上、下、左、右约束相对于父视图为0,如下图:
然后设置这个view相对于控制器的view是等高,等宽的,如下图:
如果需要垂直滚动,则设置这个contentView的高度为需要的高度,如果需要水平滚动,则设置这个contentView的宽度为需要的宽度,既相当于设置scrollView的contentSize。例如需要设置垂直滚动,contentSize的高度为 屏幕高度+300,则在storyBoard中布局如下:
这样,storyBoard就可以垂直滚动了,其他的子控件的布局按照正常模式布局即可。
2、在storyBoard中显示超出屏幕的界面
storyBoard中选中当前控制器,点击右侧的尺状的按钮,设置成 freedom 类型的,然后就可以自己设置高度了,则在storyBoard中显示如下图:
3、设置scrollView在用户拖拽的时候实现键盘回收,自己代码设置的滚动键盘不回收:
scrollView.keyboardDismissMode = .onDrag