UIScrollView的集成关系:
UIScrollView : UIView : UIResponder : NSObject
- (void)viewDidLoad
{
[super viewDidLoad];
/**
1、初始化
*/
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
scrollView.backgroundColor = [UIColor grayColor];
[self.view addSubview:scrollView];
/**
2、管理内容的显示
- setContentOffset:animated: //设置滚动的偏移量,可以带动画效果
.contentOffset //设置滚动的偏移量CGPoint
.contentSize //设置滑动区域CGSize
.contentInset
*/
scrollView.contentSize = CGSizeMake(320, 1000);
scrollView.contentOffset = CGPointMake(0, 200);
//scrollView.contentInset = UIEdgeInsetsMake(20, 20, 20, 20); //注意观察加上这行代码的效果
/**
3、管理滚动
.scrollEnabled //设置是否可以滑动 (默认YES)
.pagingEnabled //是否开启翻页效果 (默认NO)
.directionalLockEnabled //设置滚动方向是否锁定(默认NO),YES则只能在一个方向滚动
.scrollsToTop //设置当点击状态栏是否滚动到视图顶端(默认Yes)。注意:页面中有两个ScrollView且此属性都设置为Yes,将失去效果
.bounces //设置是否开启回弹效果 (默认YES)
.alwaysBounceVertical //是否开启垂直方向的回弹效果(默认NO)
.alwaysBounceHorizontal //是否开启水平方向的回弹效果(默认NO)
.decelerationRate //设置滑动速度
.dragging //获取用户是否开始拖动视图(只读)
.tracking //获取用户是否触及视图内容(只读)
.decelerating //获取视图是否开始减速(用户停止拖动但视图仍在滚动)
- scrollRectToVisible:animated: //设置滚动视图滚动到某个可见区域,可以带动画效果
- touchesShouldBegin:withEvent:inContentView:
- touchesShouldCancelInContentView: //重写这两个方法可以控制起子视图的事件响应
.canCancelContentTouches //设置是否给子视图传递取消动作的消息(默认设置为YES,当scrollView触发事件的时候,其子视图不能触发,如果设置为NO,则子视图会继续触发事件)
.delaysContentTouches //设置视图是否延迟处理触摸事件(会将消息传递给子视图)
*/
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = NO;
scrollView.scrollsToTop = YES;
scrollView.bounces = YES;
/**
4、管理滚动视图的指示器
.indicatorStyle //设置滑动条风格,UIScrollViewIndicatorStyleDefault、Black、White
.scrollIndicatorInsets //设置滑动条的位置
.showsHorizontalScrollIndicator//设置是否显示水平滑动条(默认NO)
.showsVerticalScrollIndicator //设置是否显示竖直滑动条(默认NO)
- flashScrollIndicators //显示一个短暂的滚动指示器
*/
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 0, 10);
scrollView.showsVerticalScrollIndicator = YES;
/**
5、缩放和拖动手势
.panGestureRecognizer //获取pan手势 (只读)
.pinchGestureRecognizer //获取pinch手势(只读)
.zoomScale //设置缩放比例
.maximumZoomScale //设置内容最大缩放比例
.minimumZoomScale //设置内容最小缩放比例
- setZoomScale:animated: //设置缩放比例,可以带动画效果
- zoomToRect:animated: //设置缩放显示到某个区域,可以带动画效果
.zooming //获取是否正在缩放模式(只读)
.zoomBouncing //获取是否当前的缩放比例超出设置的峰值(只读)
.bouncesZoom //设置是否可以缩放回弹
*/
/**
6、管理键盘
.keyboardDismissMode //设置键盘消失的模式
UIScrollViewKeyboardDismissModeNone,
UIScrollViewKeyboardDismissModeOnDrag, //手指滑动视图键盘就会消失
UIScrollViewKeyboardDismissModeInteractive, //手指滑动视图后可以与键盘交互,上下滑动键盘会跟随手指上下移动
*/
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(20, 200, 280, 30)];
textField.backgroundColor = [UIColor whiteColor];
[scrollView addSubview:textField];
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
/**
7、代理
.delegate
- scrollViewDidScroll: //视图已经开始滑动时触发的方法
- scrollViewWillBeginDragging: //视图开始拖动时触发的方法
- scrollViewWillEndDragging:withVelocity:targetContentOffset:
- scrollViewDidEndDragging:willDecelerate: //视图拖动结束时触发的方法
- scrollViewShouldScrollToTop: //返回yes,开启快捷滚动回顶端,将要滚动时调用
- scrollViewDidScrollToTop: //视图快捷滚动回顶端开始动作时调用
- scrollViewWillBeginDecelerating: //视图开始减速时触发的方法
- scrollViewDidEndDecelerating: //视图减速结束时触发的方法
- viewForZoomingInScrollView: //返回进行缩放的视图
- scrollViewWillBeginZooming:withView: //视图内容将要开始缩放时触发的方法
- scrollViewDidEndZooming:withView:atScale://视图内容结束缩放时触发的方法
- scrollViewDidZoom: //视图已经开始缩放时触发的方法
- scrollViewDidEndScrollingAnimation: //视图动画结束时触发的方法,使用set方法设置偏移量后回触发
*/
}