方法&&属性:

// 监控目前滚动的位置(默认CGPointZero)

  1. CGPoint contentOffset;
  2. - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;

// 滚动范围的大小(默认CGSizeZero)

  1. CGSize contentSize;

// 视图在scrollView中的位置(UIEdgeInsetsZero)

  1. UIEdgeInsets contentInset;

// 设置协议

  1. id<UIScrollViewDelegate> delegate;

// 指定控件是否只能在一个方向上滚动(默认为NO)

  1. BOOL directionalLockEnabled;

// 控制控件遇到边框是否反弹(默认为YES)

  1. BOOL bounces;

// 控制垂直方向遇到边框是否反弹(默认为NO,如果为YES,bounces也是YES)

  1. BOOL alwaysBounceVertical;

// 控制水平方向遇到边框是否反弹(默认为NO,如果为YES,bounces也是YES)

  1. BOOL alwaysBounceHorizontal;

// 控制控件是否整页翻动(默认为NO)

  1. BOOL pagingEnabled;

// 控制控件是否能滚动

  1. BOOL scrollEnabled;

// 控制是否显示水平方向的滚动条

  1. BOOL showsHorizontalScrollIndicator;

// 控制是否显示垂直方向的滚动条

  1. BOOL showsVerticalScrollIndicator;

// 指定滚动条在scrollerView中的位置

  1. UIEdgeInsets scrollIndicatorInsets;

// 设定滚动条的样式

  1. UIScrollViewIndicatorStyle indicatorStyle;

UIScrollViewDelegate详解

  1. //scrollView滚动时,就调用该方法。任何offset值改变都调用该方法。即滚动过程中,调用多次
  2. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewDidScroll");
  4. CGPoint point=scrollView.contentOffset;
  5. NSLog(@"%f,%f",point.x,point.y);
  6. // 从中可以读取contentOffset属性以确定其滚动到的位置。
  7. // 注意:当ContentSize属性小于Frame时,将不会出发滚动
  8. }
  1. // 当scrollView缩放时,调用该方法。在缩放过程中,回多次调用
  2. - (void)scrollViewDidZoom:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewDidScroll");
  4. float value=scrollView.zoomScale;
  5. NSLog(@"%f",value);
  6. }
  1. // 当开始滚动视图时,执行该方法。一次有效滑动(开始滑动,滑动一小段距离,只要手指不松开,只算一次滑动),只执行一次。
  2. - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewWillBeginDragging");
  4. }
  1. // 滑动scrollView,并且手指离开时执行。一次有效滑动,只执行一次。
  2. // 当pagingEnabled属性为YES时,不调用,该方法
  3. - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset{
  4. NSLog(@"scrollViewWillEndDragging");
  5. }
  1. // 滑动视图,当手指离开屏幕那一霎那,调用该方法。一次有效滑动,只执行一次。
  2. // decelerate,指代,当我们手指离开那一瞬后,视图是否还将继续向前滚动(一段距离),经过测试,decelerate=YES
  3. - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
  4. NSLog(@"scrollViewDidEndDragging");
  5. if (decelerate) {
  6. NSLog(@"decelerate");
  7. }else{
  8. NSLog(@"no decelerate");
  9. }
  10. CGPoint point=scrollView.contentOffset;
  11. NSLog(@"%f,%f",point.x,point.y);
  12. }
  1. // 滑动减速时调用该方法。
  2. - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewWillBeginDecelerating");
  4. // 该方法在scrollViewDidEndDragging方法之后。
  5. }
  1. // 滚动视图减速完成,滚动将停止时,调用该方法。一次有效滑动,只执行一次。
  2. - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewDidEndDecelerating");
  4. [_scrollView setContentOffset:CGPointMake(0, 500) animated:YES];
  5. }
  1. // 当滚动视图动画完成后,调用该方法,如果没有动画,那么该方法将不被调用
  2. - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewDidEndScrollingAnimation");
  4. // 有效的动画方法为:
  5. // - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 方法
  6. // - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 方法
  7. }
  1. // 返回将要缩放的UIView对象。要执行多次
  2. - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
  3. NSLog(@"viewForZoomingInScrollView");
  4. return self.imgView;
  5. }
  1. // 当将要开始缩放时,执行该方法。一次有效缩放,就只执行一次。
  2. - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
  3. NSLog(@"scrollViewWillBeginZooming");
  4. }
  1. // 当缩放结束后,并且缩放大小回到minimumZoomScale与maximumZoomScale之间后(我们也许会超出缩放范围),调用该方法。
  2. - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
  3. NSLog(@"scrollViewDidEndZooming");
  4. }
  1. // 指示当用户点击状态栏后,滚动视图是否能够滚动到顶部。需要设置滚动视图的属性:_scrollView.scrollsToTop=YES;
  2. - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{
  3. return YES;
  4. }
  1. // 当滚动视图滚动到最顶端后,执行该方法
  2. - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{
  3. NSLog(@"scrollViewDidScrollToTop");
  4. }

Tip:判断uiscrollview是向上滚动还是向下滚动

  1. int _lastPosition; //A variable define in headfile
  2. - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
  3. int currentPostion = scrollView.contentOffset.y;
  4. if (currentPostion - _lastPosition > 25) {
  5. _lastPosition = currentPostion;
  6. NSLog(@"ScrollUp now");
  7. }
  8. else if (_lastPosition - currentPostion > 25)
  9. {
  10. _lastPosition = currentPostion;
  11. NSLog(@"ScrollDown now");
  12. }
  13. }
  14. // 25 可以是任意数字,可根据自己的需要来设定。
  1. // 升级版:到达顶部或底部时不会反弹
  2. - (void)scrollViewDidScroll:(UIScrollView *)scrollView
  3. {
  4. int currentPostion = scrollView.contentOffset.y;
  5. if (currentPostion - _lastPosition > 20 && currentPostion > 0) { //这个地方加上 currentPostion > 0 即可)
  6. _lastPosition = currentPostion;
  7. NSLog(@"ScrollUp now");
  8. }
  9. else if ((_lastPosition - currentPostion > 20) && (currentPostion <= scrollView.contentSize.height-scrollView.bounds.size.height-20) ){
  10. _lastPosition = currentPostion;
  11. NSLog(@"ScrollDown now");
  12. }
  13. }

 

iOS UIScrollview代理方法的更多相关文章

  1. IOS UITableview代理方法总结

    tableview的datasource代理 @required的两个数据源方法 1.返回每个 session 中 cell 的个数 - (NSInteger)tableView:(UITableVi ...

  2. UIScrollView 代理方法

    在使用UIScrollView和它的子类UITableView时,有时需要在不同操作状态下,做不同的响应. 如何截获这些状态,如正在滚动,滚动停止等,使用UIScrollViewDelegate_Pr ...

  3. UIScrollView代理方法

    手拖拽后会调用 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView [scrollView setContentOffset ...

  4. IOS UIScrollView常用代理方法

    iOS UIScrollView代理方法有很多,从头文件中找出来学习一下 //只要滚动了就会触发 - (void)scrollViewDidScroll:(UIScrollView *)scrollV ...

  5. ios开发UI篇—UIScrollView属性及其代理方法

    一.UIScrollView是什么? 1.UIScrollView是滚动的view,UIView本身不能滚动,子类UIScrollview拓展了滚动方面的功能. 2.UIScrollView是所有滚动 ...

  6. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

  7. UIScrollView的基本使用和一些常用代理方法

    - (void)viewDidLoad { [super viewDidLoad]; scrollView = [[UIScrollView alloc] initWithFrame:CGRectMa ...

  8. iOS - UIScrollView 相关属性代理详解

    一.UIScrollView的属性和代理方法详解 属性: - (void)viewDidLoad { [super viewDidLoad]; _scrollView.backgroundColor ...

  9. AJ学IOS(09)UI之UIScrollView代理触摸实现_图片缩放

    AJ分享,必须精品 先看效果 代码 // // NYViewController.m // 05-放大缩小图片UIScrollView // // Created by apple on 15-3-2 ...

随机推荐

  1. jarring type lambda

    object IntStateMonad extendsMonad[({type IntState[A] = State[Int, A]})#IntState] {...}This syntax ca ...

  2. Linux 虚拟机性能监控

    性能监控工具 perf kvm 为了在主机中使用perf kvm,您必须访问/ proc / modules和/ proc / kallsyms文件."复制/ proc文件从guest虚拟机 ...

  3. Servlet之保存用户偏好设置简单功能的实现

    写在前面: 先来陈述一下为什么会有这样一个需求和这篇博文. 这是公司的一个项目,我们负责前端,后台服务由其他公司负责.该系统有一个系统偏好设置模块,用户可以设置系统的背景图片等系统样式,因为这是一个比 ...

  4. thinkphp pdo 重写问题

    ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用. 首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括: 复制代码 ...

  5. javascript初始笔记

    1.在html中使用点击事件: <button type="button" onclick="myclick()">click me<butt ...

  6. Oracle获取时间日期月份星期数

    1.日期和字符转换函数用法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; ...

  7. intellij idea 12 搭建maven web项目 freemarker + spring mvc

    配置spring mvc ,写这篇文章的时候spring已经出了4.0 这里还是用稳定的3.2.7.RELEASE,先把spring和freemarker配置好 1.spring mvc配置 在web ...

  8. ubuntu下百度云安装

    1.安装 在github上下载 .deb 安装包 下载地址 https://github.com/LiuLang/bcloud-packages 下载完成双击安装文件安装成功 2.解决验证码问题 (1 ...

  9. 获取星座的JS函数

    通过JS获取星座的函数 function getConstellation(m,d){ var s="魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; var arr=[2 ...

  10. 一些Wifi破解姿势

    wlan0:无线网卡设备 BSSID/AP's MAC:目标路由器的mac地址 Client's MAC:连接到此wifi客户端的mac地址 ESSID:这个无线的名字 大致思路: 获取bssid和e ...