UIScrollView 是可以滚动的View UIview是不可以滚动的,但是他的子类UIScrollView拓展了滚动方面的功能
UIScrollView是所有滚动视图的基类,UITableView,UItextView等视图都集成与该类
使用场景:一个屏幕显示不了太大的图片;内容太多;滚动头条(图片);相册等
UIScrollView的核心功能
UIScrollView主要专长与两个方面:
1.滚动:contentSize大于frame.size 的时候,能够滚动
2.缩放:自带缩放,可以指定缩放倍数
[1]UIScrollView滚动相关属性
1.contentSize 定义内容区域大小,决定是否能够滚动
2.contentOffset 视图左上角距离坐标原点的偏移量
3.scrollsToTop 滑动到顶部(点击状态条的时候,也就是屏幕最上边)
4.pagingEnabled 是否整平滚动
5.bounces 边界是否回弹
6.scorllEnabled 是否能够滚动
7.showHorizontalScrolllndicator 控制是否显示水平方向的滚动条
8.showVerticalScrollindicator 控制是否显示垂直方向的滚动条
9.alwaysBounceVertical 控制垂直方向遇到边框是否反弹
10.alwaysBounceHorizontal 控制水平方向遇到的边框是否反弹
[2]UIScrollView缩放相关属性
1.minimumZoomScale 缩小的最小比例
2.maximumZoomScale 放的的最大比例
3.zoomScale 设置变化比例
4.zooming 判断是否正在进行缩放的反弹
5.bouncesZoom 控制缩放的时候是否反弹
注意:要实现缩放,还需要实现delegate, 指定缩放的视图是谁
[3]UIScrollView滚动代理方法
先设置代理
self.myview.scrollV.delegate = self;
1.返回要缩放的视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return self.myview.imV;
}
//2.只要视图偏移发生变化,就触发这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// NSLog(@"发生了什么事");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
//3.将要拖拽的时候,触发这个方法
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
NSLog(@"what‘s happen???");
}
//4.拖拽结束时,触发这个方法
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
NSLog(@"结束了吗");
}
//5.拖拽完成后减速的时,触发这个方法
-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
NSLog(@"慢点");
}
//6.减速结束时,触发这个方法
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"怎么停了呢");
}
//7.当缩放的时候,触发这个方法
- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2)
{
NSLog(@"大了.小了");
}
在.h中声明属性
//滚动视图
@property(nonatomic,retain)UIScrollView*scrollVlV;
//传里一个图片
UIImage *image = [UIImage imageNamed:@"s.png"];
//滚动视图
self.scrollV = [[UIScrollView alloc] init];
self.scrollV.frame = [UIScreen mainScreen] .bounds;
//内容尺寸
self.scrollV.contentSize = image.size;
//是否有弹动效果
self.scrollV.bounces = NO;
//显示内容坐标
self.scrollV.contentOffset = CGPointMake(900, 700);
//点击状态栏置顶
self.scrollV.scrollsToTop = YES;
//能否滚动
self.scrollV.scrollEnabled = YES;
//滚动条,竖向显示
self.scrollV.showsHorizontalScrollIndicator = YES;
//滚动条,横向显示
self.scrollV.showsVerticalScrollIndicator = YES;
//分页滑动(手在上面滑得时候,图片跟着滑动到下一页)如果不设置默认是no
self.scrollView.pagingEnabled = YES;
//如果内容小于bounds,也能有弹动效果
self.scrollV.alwaysBounceHorizontal = YES;
self.scrollV.alwaysBounceVertical = NO;