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(@"停止缩放");
}