本节学习内容:
1.滚动视图的高级属性
2.滚动视图的协义函数
3.滚动视图的高级使用
【ViewController.h】
#import<UIKit/UIKit.h>
//UIScrollViewDelegate当前视图控件器要实现协义UIScrollView的协义函数
@interface ViewController:UIViewController(UIScrollViewDelegate){
//定义一个滚动视图成员变量
UIScrollView* _scrollview;
}
@end
【ViewController.m】
#import“ViewController.h";
@interfacViewController()
@end
@implementation ViewController
-(void)viewDidLoad{
[super viewDidLoad];
//创建滚动视图
_scrollview=[[UIScrollView alloc]init];
//设定视图位置
_scrollview.frame=CGRectMake(10,50,300,400);
//取消弹动效果
_scrollview.bounces=NO;
//是否允许通过点击屏幕让滚动视图响应事件,YES:滚动视图可以接受触屏事件,NO:不接爱触屏事件
_scrollview.userInterfactionEnabled=NO;
//设置画布大小,纵向效果
_scrollview.contenSize=CGSizeMake(300,400*9);
for(int i=0;i<9;i++){
//17_%d.jps表示图片名称以17_开头且名称为数字的图片
//生成图片名称
NSString* strName=[NSString stringWithFormat:@"17_%d.jpg",i+1];
UIImage* image=[UIImage imageNamed:strName];
//创建图像视图
UIImageView* iView=[[UIImageView alloc]init];
//图像赋值
iView.image=image;
//设置图像在滚动视图画布中的位置
iView.frame=CGRectMake(0,400+i,300,400);
[_scorllView addSubview:iView];
}
[self.view addSubview:_scrollView];
//取消按页滚动效果
_scorllView.pagingEnabled=NO;
//滚动视图画布的移动位置,偏移位置,决定画布显示的最终图像结果
_scorllView.contentOffset=CGPointMake(0,0);
//将当前视图控件器做为代理对像
_scorllView.delegate=self;
}
//当滚动视图移动时,只要offset坐标发生变化,都会调用此函数
//参数:调用此协义的滚动视图对象
//可以使用些函数来监控滚动视图对象
-(void)scrollviewDidScroll:(UIScrollView*)scrollview{
//打印Y坐标位置
NSLog(@"Y= %f",_scorllView.contentOffset.y);
}
//当滚动视图结束拖动时调用此函数
-(void)scrollviewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
NSLog(@"Did End Drag!");
}
//滚动视图即将开始被拖动时调用
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
NSLog(@"willBegingDrag!");
}
//视图即将结束拖动时调用
-(void)scrolViewWillEndDragging:(UIScrollView *)scrollview withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
NSLog(@"will End Drag!");
}
//视图即将减速时调用
-(void)scrollViewWillBeginDecelerating:(UIScrollview *)scrollview{
NSLog(@"Will Begin Decelerating!");
}
//视图已经结束减速时调用,视图停止的瞬间调用
-(void)scrollviewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"Did End Decelerating!");
)
//点击屏幕空白处将画布调整到指定位置
-(void)touchesBegan:(NSSet<UITouch*>*)touches withEvent:(UIEvent *)event{
//-scrollview.contentoffset=CGPointMake(0,0);
//让滚动视图移动到指定位置,动画移动,animated:YES表示有动画,NO表示没有动画
[-scrollview scrollRectToVisible:CGRectMake(0,0,300,400) animated:YES)];
}