UIScrollView
2013-12-01 21:47
218 查看
UIScrollView实现屏幕的滑动,首先了解其原理。
contentsize是内容的宽和高,contentsize.width是内容的宽度,contentsize.heght是高度,contentsize是UIScrollView的一个属性,它是一个CGSize,是由核心图形所定义的架构,那定义了你可以滚轴内容的宽度和高度,你也可以添加可以上下滚动的额外区域。第一种方法是你可以通过添加内容的大小来完成。另外一个比较动态的选择是UIScrollView的另一个属性contentInset,contentInset增加你在contentsize中指定的内容能够滚动的上下左右区域数量contentInset.top以及contentInset.buttom分别表示上面和下面的距离。
![](https://img-blog.csdn.net/20131201204953421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGluZ3h1YW5fcWht/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
在滚轴视图中,有一个叫做ContentOffset的属性跟踪UIScrollView的具体位置,你能够自己获取和设置它,ContentOffset是你当前可视内容在滚轴视图边界的左上角那个点。如图:
![](https://img-blog.csdn.net/20131201205122531?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGluZ3h1YW5fcWht/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
可以看出,ContentOffset内容中的那个点不是从contentInset的左上角开始的,而是内容的左上角,此时的ContentOffset是正值,但有时也是负值。
了解了原理后,就动手看UIScrollView是如何使用的。
1、创建UIScrollView
UIScrollView * scrollView = [[UIScrollView
alloc]initWithFrame:CGRectMake(0,
0, 320,
460)];
2、设置UIScrollView的内容
UIImageView *imageView = [[UIImageView
alloc]initWithImage:[UIImage
imageNamed:@"scrollView"]];
[scrollView
addSubview:imageView];
3、设置UIScrollView的属性
scrollView.contentSize =
CGSizeMake(320*3,
460*3);
// 是否反弹
scrollView.bounces = YES;
// 是否分页
scrollView.pagingEnabled =
YES;
// 是否滚动
scrollView.scrollEnabled =
YES;
scrollView.showsHorizontalScrollIndicator =
YES;
// 设置indicator风格
scrollView.indicatorStyle =
UIScrollViewIndicatorStyleWhite;
// 设置内容的边缘和Indicators边缘
scrollView.contentInset =
UIEdgeInsetsMake(0,
50, 50,
0);
scrollView.scrollIndicatorInsets =
UIEdgeInsetsMake(0,
50, 0,
0);
[scrollView flashScrollIndicators];
// 是否同时运动,lock
scrollView.directionalLockEnabled =
YES;
4、实现UIScrollView的代理方法
scrollView.delegate = self;
// 是否支持滑动至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
return YES;
}
// 滑动到顶部时调用该方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScrollToTop");
}
// scrollView 已经滑动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScroll");
}
// scrollView 开始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"scrollViewWillBeginDragging");
}
// scrollView 结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"scrollViewDidEndDragging");
}
示例代码:https://github.com/tingxuan/UIScrollViewDemo
contentsize是内容的宽和高,contentsize.width是内容的宽度,contentsize.heght是高度,contentsize是UIScrollView的一个属性,它是一个CGSize,是由核心图形所定义的架构,那定义了你可以滚轴内容的宽度和高度,你也可以添加可以上下滚动的额外区域。第一种方法是你可以通过添加内容的大小来完成。另外一个比较动态的选择是UIScrollView的另一个属性contentInset,contentInset增加你在contentsize中指定的内容能够滚动的上下左右区域数量contentInset.top以及contentInset.buttom分别表示上面和下面的距离。
在滚轴视图中,有一个叫做ContentOffset的属性跟踪UIScrollView的具体位置,你能够自己获取和设置它,ContentOffset是你当前可视内容在滚轴视图边界的左上角那个点。如图:
可以看出,ContentOffset内容中的那个点不是从contentInset的左上角开始的,而是内容的左上角,此时的ContentOffset是正值,但有时也是负值。
了解了原理后,就动手看UIScrollView是如何使用的。
1、创建UIScrollView
UIScrollView * scrollView = [[UIScrollView
alloc]initWithFrame:CGRectMake(0,
0, 320,
460)];
2、设置UIScrollView的内容
UIImageView *imageView = [[UIImageView
alloc]initWithImage:[UIImage
imageNamed:@"scrollView"]];
[scrollView
addSubview:imageView];
3、设置UIScrollView的属性
scrollView.contentSize =
CGSizeMake(320*3,
460*3);
// 是否反弹
scrollView.bounces = YES;
// 是否分页
scrollView.pagingEnabled =
YES;
// 是否滚动
scrollView.scrollEnabled =
YES;
scrollView.showsHorizontalScrollIndicator =
YES;
// 设置indicator风格
scrollView.indicatorStyle =
UIScrollViewIndicatorStyleWhite;
// 设置内容的边缘和Indicators边缘
scrollView.contentInset =
UIEdgeInsetsMake(0,
50, 50,
0);
scrollView.scrollIndicatorInsets =
UIEdgeInsetsMake(0,
50, 0,
0);
[scrollView flashScrollIndicators];
// 是否同时运动,lock
scrollView.directionalLockEnabled =
YES;
4、实现UIScrollView的代理方法
scrollView.delegate = self;
// 是否支持滑动至顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{
return YES;
}
// 滑动到顶部时调用该方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScrollToTop");
}
// scrollView 已经滑动
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidScroll");
}
// scrollView 开始拖动
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"scrollViewWillBeginDragging");
}
// scrollView 结束拖动
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"scrollViewDidEndDragging");
}
示例代码:https://github.com/tingxuan/UIScrollViewDemo
相关文章推荐
- iphone ios UIScrollView 机制及实现
- 第二、UIScrollView的使用大全
- iOS7的适配小问题, uiscrollview中view向下偏移64
- iOS开发UI篇—UIScrollView控件实现图片轮播
- IOS开发UIScrollView控件详解
- iOS开发 -UIScrollView详解
- UIScrollView视差模糊效果
- [iOS基础控件 - 5.2] 查看大图、缩放图片代码(UIScrollView制作)
- [转]UIScrollView的属性总结
- 用按钮控制UIScrollView滚动到下一页的标准解法
- UIImageView与UIScrollView的关系图
- UIScrollView,UIView截屏代码
- UIScrollView(滑动切换图片,图片的循环切换(自动))
- iOS: UIScrollView的属性minimumZoomScale
- 在Storyboard中对UIScrollView使用autolayout自动布局应该注意的地方
- UIScrollView的属性总结
- 【iphone应用开发】Iphone应用开发之五: UIScrollView的详细讲解
- IOS 怎么用UIScrollView来滚动和缩放他的内容第一篇
- ios ui控件-UIScrollView封装