1.UIScaollerView包含两个子类
UITableView UITextView
2.视图尺寸与内容尺寸
//
当自身的
frame
改变时,也等比例的修改子视图的属性
view.autoresizesSubviews = NO;
3.创建滑动视图
//
创建滑动视图
UIScrollView *scorllView = [[ UIScrollView alloc ] initWithFrame : CGRectMake ( 50 , 20 , 300 , 200 )];
scorllView. backgroundColor = [ UIColor grayColor ];
[ self . view addSubview :scorllView];
// 子视图
UIView *view1 = [[ UIView alloc ] initWithFrame : CGRectMake ( 0 , 0 , 300 , 200 )];
view1. backgroundColor = [ UIColor redColor ];
UIScrollView *scorllView = [[ UIScrollView alloc ] initWithFrame : CGRectMake ( 50 , 20 , 300 , 200 )];
scorllView. backgroundColor = [ UIColor grayColor ];
[ self . view addSubview :scorllView];
// 子视图
UIView *view1 = [[ UIView alloc ] initWithFrame : CGRectMake ( 0 , 0 , 300 , 200 )];
view1. backgroundColor = [ UIColor redColor ];
[scorllView addSubview:view1];
//
设置内容尺寸
// 当内容尺寸与视图尺寸一样时,没有滑动效果
// 当内容尺寸与视图尺寸一样时,没有滑动效果
scorllView.contentSize = CGSizeMake(300, 400);
/*****UIScrollView
的常用属性
*****/
// 是否显示水平滚动条
scorllView. showsHorizontalScrollIndicator = NO ;
// 是否显示垂直滚动条
// 是否显示水平滚动条
scorllView. showsHorizontalScrollIndicator = NO ;
// 是否显示垂直滚动条
// scorllView.showsVerticalScrollIndicator = NO;
//
设置滚动条的样式
默认,白色,黑色
// scorllView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
// 滚动开始、末尾位置是否加反弹效果
// scorllView.bounces = NO;
// 设置滚动的偏移量
// scorllView.contentOffset = CGPointMake(50, 250);
// 设置是否分页 子视图的尺寸必须是视图尺寸的整数倍
// scorllView.pagingEnabled = YES;
// 是否开启滚动
// scorllView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
// 滚动开始、末尾位置是否加反弹效果
// scorllView.bounces = NO;
// 设置滚动的偏移量
// scorllView.contentOffset = CGPointMake(50, 250);
// 设置是否分页 子视图的尺寸必须是视图尺寸的整数倍
// scorllView.pagingEnabled = YES;
// 是否开启滚动
// scorllView.scrollEnabled = NO;
//
填充
返回时留在偏移的位置
// scorllView.contentInset = UIEdgeInsetsMake(20, 20, 0, 0);
// 设置代理对象
scorllView.delegate = self;
}
#pragma mark-----UIScrollViewDelegate
// 滑动视图滑动时调用,不断的调用
- ( void )scrollViewDidScroll:( UIScrollView *)scrollView
{
// CGFloat ySet = scrollView.contentOffset.y;
// NSLog(@"%.2f", ySet);
}
// 开始拖动的时候调用的
- ( void )scrollViewWillBeginDragging:( UIScrollView *)scrollView
{
NSLog ( @" 开始拖动 " );
}
// 结束拖动的时候调用 ---- 手指离开屏幕
- ( void )scrollViewDidEndDragging:( UIScrollView *)scrollView willDecelerate:( BOOL )decelerate
{
NSLog ( @" 结束拖动 " );
// 是否减速
if (decelerate) {
// 将要开始减速
NSLog ( @" 将要开始减速 " );
} else if (!decelerate){
// 已经停止
NSLog ( @" 结束拖动的时候就已经停止,没有减速 " );
}
}
// 减速才调用的协议方法
- ( void )scrollViewWillBeginDecelerating:( UIScrollView *)scrollView
{
NSLog ( @" 开始减速 " );
}
- ( void )scrollViewDidEndDecelerating:( UIScrollView *)scrollView
{
NSLog ( @" 结束减速 " );
// 滑动视图滑动时调用,不断的调用
- ( void )scrollViewDidScroll:( UIScrollView *)scrollView
{
// CGFloat ySet = scrollView.contentOffset.y;
// NSLog(@"%.2f", ySet);
}
// 开始拖动的时候调用的
- ( void )scrollViewWillBeginDragging:( UIScrollView *)scrollView
{
NSLog ( @" 开始拖动 " );
}
// 结束拖动的时候调用 ---- 手指离开屏幕
- ( void )scrollViewDidEndDragging:( UIScrollView *)scrollView willDecelerate:( BOOL )decelerate
{
NSLog ( @" 结束拖动 " );
// 是否减速
if (decelerate) {
// 将要开始减速
NSLog ( @" 将要开始减速 " );
} else if (!decelerate){
// 已经停止
NSLog ( @" 结束拖动的时候就已经停止,没有减速 " );
}
}
// 减速才调用的协议方法
- ( void )scrollViewWillBeginDecelerating:( UIScrollView *)scrollView
{
NSLog ( @" 开始减速 " );
}
- ( void )scrollViewDidEndDecelerating:( UIScrollView *)scrollView
{
NSLog ( @" 结束减速 " );
}
3.使用捏合手势
UIScrollView
*scrollView = [[
UIScrollView
alloc
]
initWithFrame
:
self
.
view
.
bounds
];
[ self . view addSubview :scrollView];
scrollView. delegate = self ;
// 设置放大的尺寸
scrollView. maximumZoomScale = 3 ;
[ self . view addSubview :scrollView];
scrollView. delegate = self ;
// 设置放大的尺寸
scrollView. maximumZoomScale = 3 ;
scrollView.minimumZoomScale = 1;
#pragma mark---UIScrollViewDelegate
// 设置缩放的子视图
- ( UIView *)viewForZoomingInScrollView:( UIScrollView *)scrollView
{
// NSLog(@"1111");
return [scrollView viewWithTag : 100 ];
}
// 缩放时调用的协议方法 -- 实时调用
- ( void )scrollViewDidZoom:( UIScrollView *)scrollView
{
// 获取到放大的倍数
CGFloat scale = scrollView. zoomScale ;
NSLog ( @"%.2f" ,scale);
}
// 开始缩放
- ( void )scrollViewWillBeginZooming:( UIScrollView *)scrollView withView:( UIView *)view
{
NSLog ( @" 开始缩放 " );
}
// 停止缩放
- ( void )scrollViewDidEndZooming:( UIScrollView *)scrollView withView:( UIView *)view atScale:( CGFloat )scale
{
NSLog ( @" 停止缩放 " );
}
// 设置缩放的子视图
- ( UIView *)viewForZoomingInScrollView:( UIScrollView *)scrollView
{
// NSLog(@"1111");
return [scrollView viewWithTag : 100 ];
}
// 缩放时调用的协议方法 -- 实时调用
- ( void )scrollViewDidZoom:( UIScrollView *)scrollView
{
// 获取到放大的倍数
CGFloat scale = scrollView. zoomScale ;
NSLog ( @"%.2f" ,scale);
}
// 开始缩放
- ( void )scrollViewWillBeginZooming:( UIScrollView *)scrollView withView:( UIView *)view
{
NSLog ( @" 开始缩放 " );
}
// 停止缩放
- ( void )scrollViewDidEndZooming:( UIScrollView *)scrollView withView:( UIView *)view atScale:( CGFloat )scale
{
NSLog ( @" 停止缩放 " );
}