1、当不希望把屏幕上的一些内容跟着滚动,就不要把这些内容放到滚动组件内。
2、实现步骤
(1)拖拽一个UIScrollView到控制器view,设置该UIScrollView大小与控制器view一致。
(2)设置UIScrollView的背景颜色为RGB:212,212,212
(3)向UIScrollView中增加内容
(4)设置UIScrollView的contentSIze的height为最下面图片的最大的Y值,width=UIScrollView对象frame的width(因为横向不滚动)或直接设置contentSize的width为0.(因为0必然小于UIScrollView大小frame的width,等于告诉UIScrollView对象,里面内容的宽度小于滚动组件的宽度,不需要再横向滚动)
提示:某个方向上不希望滚动,则把该方向上的contentSize的值设置为0;
注意:控件的x、y坐标值是指控件左上角的坐标值,控件最大的x值是指控件的x值加上控件的宽度width的和,控件最大的y值是指控件的y坐标值加上控件高度height之和。可以直接调用CGRectGetMaxY(控件的frame) 与CGRectGetMaxX(frame)来进行获取控件的最大Y值与最大X值。返回double类型数据。
(5)通过contentOffset偏移属性来进行设置内容的默认滚动位置
通过contentInsets来设置内容的内边距。
具体过程如下所示;
1
2
3
4
6
7
8
9
10
11
12
13
14
15
16
17
18
19 发现运行结果下面总弹回去
20在viewDidLoad方法中为UIScrollView的内容设置下方内边距即可
编辑控制器的.m文件,代码如下:
// // ViewController.m // 喜马拉雅案例 // // Created by apple on 15/8/28. // Copyright (c) 2015年 LiuXun. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; @property (weak, nonatomic) IBOutlet UIImageView *lastImageView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 获取最后一个UIImageView组件的最大Y值 double LastImageMaxY = CGRectGetMaxY(self.lastImageView.frame); // 将内容的大小告知UIScrollView组件 self.scrollView.contentSize=CGSizeMake(0, LastImageMaxY); // 为滚动组件中内容的下方设置内边距 self.scrollView.contentInset=UIEdgeInsetsMake(0, 0, 100, 0); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end