iOS中的UIScrollView 滚动视图

2017-09-24  本文已影响0人  TK001

UIScrollView这个类(也就是滚动视图),可以让我们展示比window尺寸大的内容。用户可以通过手势来实现视图的滚动和缩放。

有一个很好的例子,就是今日头条上的滑动目录就是基于ScrollView实现的

UIScrollView继承于UIView,是UITableView和UITextView等UIKit类的父类。
scrollView frame 相当于是这是View显示在界面上的大小

//创建
 UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(50, 50, 314, 500)];

 //设置背景颜色
 scrollView.backgroundColor = [UIColor redColor];

设置contentSize,这是UIScrollView的内容视图的尺寸,通常contentSize大于UIScrollView的frame (整个内容的大小)

 scrollView.contentSize = CGSizeMake(314*3, 500); //非常重要
 //设置是否可以滚动
 scrollView.scrollEnabled = YES;   // 默认为YES
 //设置是否可以整页滚动
 scrollView.pagingEnabled = YES;  
 // 默认为NO。如果为YES,滑动会停止在视图边界长度的倍数上。

设置偏移量contentOffset

 //CGPoint类型,默认为CGPointZero
 scrollView.contentOffset = CGPointMake(314, 200);

设置是否显示滚动条

//显示水平方向的滚动条(默认YES)
scrollView.showsHorizontalScrollIndicator = NO;
//显示垂直方向的滚动条(默认YES)
scrollView.showsVerticalScrollIndicator = NO;

设置是否反弹

scrollView.bounces = NO;
// 默认为YES。如果该属性为YES,视图滚动时可以越过边界,越过边界后会被弹回。(使用时如果滑到边界时是否会有回弹效果)

如果bounces设为NO,以下两个属性不论是不是YES都不会奏效:

//控制滚动视图遇到垂直方向是否反弹
scrollView.alwaysBounceVertical = YES;// 默认为NO
//如果该属性和bounces同时为YES,那么即使contentSize的height小于frame的height,竖直方向的拖拽也是允许的。

//控制滚动视图遇到水平方向是否反弹    
scrollView.alwaysBounceHorizontal = YES;//默认为NO
//如果该属性和bounces同时为YES,那么即使contentSize的width小于frame的width,水平方向的拖拽也是允许的。

//控制滚动视图遇到水平方向是否反弹    
scrollView.alwaysBounceHorizontal = YES;//默认为NO
//如果该属性和bounces同时为YES,那么即使contentSize的width小于frame的width,水平方向的拖拽也是允许的。

其他设置

上一篇下一篇

猜你喜欢

热点阅读