iOS控件之UIScrollView
首先这段代码放在AppDelegate.m
创建一个Window
然后这段代码写在rootViewController.m里面
这是新创建的一个类,继承于UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
//定义并且创建一个滚动视图
//可以对视图内容进行滚屏查看功能
UIScrollView* sv = [[UIScrollView alloc] init];
//设置滚动视图的位置,使用矩形来定位视图位置
sv.frame = CGRectMake(0, 200, 400, 100);
//是否按照整页来滚动视图
sv.pagingEnabled = YES;
//是否可以开启滚动效果
sv.scrollEnabled = YES;
//设置画布的大小,画布显示在滚动视图内部,一般大于 Frame的大小
sv.contentSize = CGSizeMake(100 * 20, 100);
//是否可以边缘弹动效果
sv.bounces = YES;
//开启横向弹动效果
sv.alwaysBounceHorizonal = YES;
//开启纵向弹动效果
sv.alwaysBounceVertical = YES;
//显示横向滚动条
sv.showsHorizontanlScrollIndicator = YES:
//是否显示纵向滚动条
sv.showsVerticalScrollIndicator = YES;
//设置背景颜色
sv.backgroundColor = [UIColor yellowColor];
//使用循环创建5张图片视图
for (int i = 0; i < 21; i++) {
NSString* strName = [NSString stringWithFormat:@"%d.jpg", i + 1];
UIImage* image = [UIImage imageNamed:strName];
UIImageView* iView = [[UIImageView alloc] initWithImage:image];
//注意这里iView的父视图是sv,
//所以设置它的x,y时参照物是sv.注意坐标原点的位置
//不再是屏幕左上角。
//而是画布左上角
iView.frame = CGRectMake(100 * i, 0, 100, 100);
[sv addSubview:iView];
}
[self.view addSubview:sv];
}
个人总结:
设置滚动视图时,注意设置子视图位置x,y的参照点。
图片比较多时,采用循环加载图片比较好,也显得很高级
下面谈一下UIScrollView的一些高级功能
在这之前,你需要在ViewController.h实现一个协议函数
@interface ViewController:UIViewController
//当前视图控制器要实现协议UIScrollView的协议函数
在ViewController.h
<UIScrollViewDelegate>
{
//定义一个滚动视图成员变量
UIScrollView* _scrollView;
}
这一段写在ViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
//创建滚动视图
_scrollView = [[UIScrollView alolc] init];
//设定滚动视图的位置
_scrollView.frame = CGRectMake(10, 50, 300, 400);
//取消弹动效果
_scrollView.userInteractionEnabled = NO;
//是否允许通过点击屏幕让滚动视图响应事件
//YES:滚动视图可以接受触碰事件
//NO:不接受触碰事件
_scrollView.userInteractionEnabled = YES;
//设置画布大小,纵向效果
_scrollView.contentSize = CGSizeMake(300, 400 * 9);
for (int i = 0; i < 9; i++) {
//生成图片名称
NSString* strName = [NSString stringWithFormat:@"%d.jpg", i + 1];
UIImage* image = [UIImage imageNamed:strName];
//创建图像视图位置
UIImageView* iView = [[UIImageView alloc] init];
//图像赋值
iView.image = image;
//设置图像视图在滚动视图画布中的位置
iView.frame = CGRectMake(0, 400 * I, 300, 400);
[_scrollView addSubview:iView];
}
}