iOS开发之UI_UIScrollView(上)
来源:互联网 发布:大数据服务的简称 编辑:程序博客网 时间:2024/04/30 05:02
【UIScrollView介绍】
·UIScrollView继承自UIView
·UIScrollView 可以实现页面的水平或者垂直滚动,其原理是通过对水平坐标的偏移量或者垂直坐标的偏移量来实现的。
·由于UIScrollView继承自UIView,所以UIScrollView的创建可以根据UIView的方式创建,而且UIScrollView没有自己的自定义初始化方法。
·UIScrollView常用在轮播图的使用中,可以和NSTimer一起使用,来实现自动轮播图
【几个常见和常用的属性】
1.【contentSize】
contentSize是UIScrollView的一条重要属性,只有设置了这个属性UIScrollView才可以滚动,在设置这个属性时如果是水平滚动设置width,如果是垂直滚动设置height
scrollView.contentSize = CGSizeMake(8 * WIDTH, 0);// 水平滚动设置with
scrollView.contentSize= CGSizeMake(0, 8 * HEIGHT);//垂直滚动设置height
contentsize是对滚动视图的容量大小进行设置,8 * WIDTH是总共有8个视图。
2.【pagingEnabled】
pagingEnabled是UIScrollView中对滚动方式进行设置的属性,BOOL类型。默认为NO
scrollView.pagingEnabled = YES// 按照页进行滚动
3.【bounces】
bounces 是UIScrollView中对边界回弹效果进行设置的属性,为BOOL类型,默认为YES。
scrollView.bounces = NO;// 关闭边界回弹效果
4.【showsHorizontalScrollIndicator和showsVerticalScrollIndicator】
showsHorizontalScrollIndicator和showsVerticalScrollIndicator分别是对水平和垂直滚动条状态进行设置的属性,可以设置水平和垂直滚动条是否显示,为BOOL类型,默认为YES.
scrollView.showsHorizontalScrollIndicator =NO;// 关闭水平滚动条
scrollView.showsVerticalScrollIndicator =NO;// 关闭垂直滚动条
5.【contentOffset】
contentOffset 是一条重要属性,用来设置偏移量,以此来实现滚动效果
scrollView.contentOffset = CGPointMake(0, 0);// 偏移量设置
6.【scrollEnabled】
scrollEnabled用来控制滚动的允许与禁止操作
scrollView.scrollEnabled= YES;// 滚动允许
【UIScrollView的使用】
1.【创建一个新的UIScrollView】
#define WIDTH self.view.frame.size.width
#defineHEIGHT self.view.frame.size.height
UIScrollView*scrollView = [[UIScrollViewalloc] initWithFrame:CGRectMake(0,0, WIDTH, HEIGHT)];// 创建一个UIScrollView
scrollView.backgroundColor = [UIColorwhiteColor];// 设置背景色
[self.viewaddSubview:scrollView];// 添加到当前视图控制器
[scrollView release];// 释放
2.【和NSTimer一起实现自动轮播图】
[NSTimer scheduledTimerWithTimeInterval:0.5target:self selector:@selector(changeImage) userInfo:nil repeats:YES];//此处时间间隔有误差,不能设置太小,否则不能实现图片轮播的效果
- (void)changeImage {
// 通过tag值找scrollview
UIScrollView *scrollView = (UIScrollView *)[self.viewviewWithTag:1000];
// 通过设置偏移量,进而设置让哪一张视图显示在屏幕上,这条属性很重要
// scrollView.contentOffset =CGPointMake(scrollView.contentOffset.x + WIDTH, 0);
[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x +WIDTH, 0) animated:YES];//带有偏移量的偏移量设置
// 判断是否到当前最后一页,如果到了需要把偏移量设置到第一章图片位置
if (scrollView.contentOffset.x ==7 * WIDTH) {
scrollView.contentOffset =CGPointMake(0,0);
}
}
【滚动相关的两个方法】
以下两个方法为协议方法,经常用到,需要遵守UIScrollViewDelegate协议,并且设置代理人
#pragma mark 只要一拖拽以滚动就会触发这个协议方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"%g", scrollView.contentOffset.x);
}
#pragma mark 当滑动结束,稳定了之后会被触发
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"我被触发了");
if (scrollView.contentOffset.x ==7 * WIDTH) {// 如果偏移量为7 *WIDTH,则把偏移量改为(0, 0),实现向右无限滚动
scrollView.contentOffset =CGPointMake(0,0);
}
}
说明:为了能够实现滚动效果流畅没有明显的卡顿现象,一般在向右滚动的处理中,在所有图片的最后再加一张第一幅图片,当滚动到最后一张图片时,让偏移量自动跳转到第一幅图。
// 把图片放到scrollview上
for (NSInteger i =1; i < 8; i++) {
// 拼接图片名
NSString *imageName = [NSStringstringWithFormat:@"h%ld.jpeg", i];
// 把图片放到imageView上
UIImageView *imageView = [[UIImageViewalloc] initWithFrame:CGRectMake(WIDTH * (i -1), 0, WIDTH, HEIGHT)];//此处设置坐标时要注意
imageView.image = [UIImageimageNamed:imageName];
[scrollView addSubview:imageView];
[imageView release];
}
- iOS开发之UI_UIScrollView(上)
- iOS开发之UI_UIScrollView(下)
- UI_UIScrollView
- UI_UIScrollView
- iOS上Web开发之远端调试
- IOS开发之OC学习笔记(上)
- UI_UIScrollView/UIpageControl
- iOS 开发之Widget的开发及使用(上)
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- IOS开发之路-Objective-C 集合上(笔记)
- iOS开发之如何在UIAlertView上添加进度条
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- ios即时通讯客户端开发之-mac上安装MySQL
- iOS开发-Xcode6和Xcode7不能共拥-Xcode模拟器独立下载方法
- IOS巅峰之UICollectionView详解
- Gvim开发环境配置笔记--Windows篇
- asm diskgroup中的failgroup--故障组
- myeclipse中在快捷键
- iOS开发之UI_UIScrollView(上)
- 网络编程问题解决方案:查看进程占用了哪个端口号
- vector的标准用法linux
- 对Docker的价值和应用场景分析
- 利用pod trunk发布程序
- Tyvj 题目1023 奶牛的锻炼(DP)
- 增量会话对象——DeltaSession
- 数组循环移位
- RSA密钥之C#格式与Java格式转换