以下为该协议的相关方法:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

{

//    NSLog(@" scrollViewDidScroll");

NSLog(@"ContentOffset  x is  %f,yis %f",scrollView.contentOffset.x,scrollView.contentOffset.y);

}

//开始拖拽视图

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewWillBeginDragging");

}

//完成拖拽

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

{

NSLog(@"scrollViewDidEndDragging");

//    if (scrollView.contentOffset.x <= 110) {

//        [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

//        [ApplicationDelegate setPlayIndex:0];

//        return;

//    }

//    if (scrollView.contentOffset.x > ( 110 + 210 * (ApplicationDelegate.programCount-2)))

//    {

//        [scrollView setContentOffset:CGPointMake(210 + 210 * (ApplicationDelegate.programCount-2), 0) animated:YES];

//        [ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];

//        return;

//    }

for(int i = 0 ; i < ApplicationDelegate.programCount-2 ; i++){

if (scrollView.contentOffset.x > (110 + i * 210) && scrollView.contentOffset.x <= ( 110 + 210 * (i+1)))

{

[scrollView setContentOffset:CGPointMake(210 + 210 * i, 0) animated:YES];

[ApplicationDelegate setPlayIndex:i+1];

NSLog(@"%d" , i);

//return;

}

}

}

//将开始降速时

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewWillBeginDecelerating");

}

//减速停止了时执行,手触摸时执行执行

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewDidEndDecelerating");

if (scrollView.contentOffset.x <= 110) {

[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

[ApplicationDelegate setPlayIndex:0];

return;

}

if (scrollView.contentOffset.x > ( 110 + 210 * (ApplicationDelegate.programCount-2)))

{

[scrollView setContentOffset:CGPointMake(210 + 210 * (ApplicationDelegate.programCount-2), 0) animated:YES];

[ApplicationDelegate setPlayIndex:ApplicationDelegate.programCount-1];

NSLog(@"over");

return;

}

for(int i = 0 ; i < ApplicationDelegate.programCount-2 ; i++){

if (scrollView.contentOffset.x > (110 + i * 210) && scrollView.contentOffset.x <= ( 110 + 210 * (i+1)))

{

[scrollView setContentOffset:CGPointMake(210 + 210 * i, 0) animated:YES];

[ApplicationDelegate setPlayIndex:i+1];

//return;

}

}

}

//滚动动画停止时执行,代码改变时出发,也就是setContentOffset改变时

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewDidEndScrollingAnimation");

}

//设置放大缩小的视图,要是uiscrollview的subview

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

{

NSLog(@"viewForZoomingInScrollView");

return nil;

}

//完成放大缩小时调用

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale;

{

NSLog(@"scale between minimum and maximum. called after any 'bounce' animations");

}// scale between minimum and maximum. called after any 'bounce' animations

//如果你不是完全滚动到滚轴视图的顶部,你可以轻点状态栏,那个可视的滚轴视图会一直滚动到顶部,那是默认行为,你可以通过该方法返回NO来关闭它

- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewShouldScrollToTop");

return YES;

}

- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

{

NSLog(@"scrollViewDidScrollToTop");

}

注意还要对使用的ScrollView进行属性设置

// scrollView的 长  宽 设置

self.programScrollView.contentSize=CGSizeMake(ApplicationDelegate.programCount * 210+10 , 40);

// 是否分页显示

self.programScrollView.pagingEnabled=NO;

//协议

self.programScrollView.delegate=self;

// 监听手指动作

self.programScrollView.canCancelContentTouches=NO;

//延迟手指动作

self.programScrollView.delaysContentTouches=YES;

IOS--UIScrollView delegate 协议-相关推荐

  1. iOS - UIScrollView

    前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding>@available(iOS 2.0, ...

  2. IOS 委托和协议区别和联系 (-)

    2019独角兽企业重金招聘Python工程师标准>>> IOS 委托和协议区别和联系 (-) IOS上的协议类似于C#.Java上面的接口,他是从类中抽出来的一系列方法,但方法的实现 ...

  3. iOS UIScrollView和缩放

    In this tutorial, we'll be implementing the UIScrollView along with the Zoom feature in our iOS Appl ...

  4. iOS之代理/协议 @protocal

    理解: @protocal 可以定义一个协议.一个类如果使用了这个协议,那么就要按照这个协议要求的去办事.最常见的就是UITableViewDelegate.UITableViewDataSource ...

  5. ios学习-delegate、传值、跳转页面

    ios学习-delegate.传值.跳转页面   1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选择保 ...

  6. FreeEIM 来点新知识iOS UIScrollView详解

     老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...

  7. IOS UIScrollView (转)

    UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 1 CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ...

  8. ios UIScrollView 基础属性

    转 UIScrollView 原理 在滚动过程当中,其实是在修改原点坐标.当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器.假如在计时器到点后没有发生手指移动事件,那么 scr ...

  9. iOS 中delegate的理解与使用(传值)

    之前做了半年的iOS,刚入了门,又被拉去转战java,现在iOS的那位大佬离职了,又被弄过来维护app,之前对于iOS中的delegate一直都是半知半解,所以刚好趁着这个机会把我所了解的记下来,以便 ...

最新文章

  1. [视频]用SQL Server Compact创建简单的Windows应用程序
  2. 仿IPhone滚轮组件分析WheelScroller
  3. 电脑插个“U盘”就能给基因测序,实时查看结果,售价1000美元
  4. 【揭秘】12306是如何抗住几亿日活、百万级高并发的?
  5. Windows10安装TensorFlow GPU版本
  6. UBUNTU下双显示器设置
  7. Stack Overflow 2021开发者调查报告 - 数据库篇!
  8. centos7系统使用杀毒软件clamav
  9. Android 百度地图开发(三)--- 实现比例尺功能和替换自带的缩放组件
  10. ModelState对象
  11. 站在思想层面看MVX架构
  12. 自己计算机设置盘密码怎么操作,电脑硬盘,教您电脑硬盘怎么设置密码
  13. 递归实现二叉树的前序遍历
  14. 复星医药2020年实现营业收入人民币303亿元,同比增长6%
  15. 制作网页头部固定悬浮的导航栏
  16. 前端性能优化:如何提高页面加载速度和用户体验
  17. 编译原理:素短语、短语、直接短语、句柄的基本概念
  18. html type file清空,清空
  19. python游戏制作软件_python制作小游戏(二)
  20. 用bash直接提取freesufer统计数据

热门文章

  1. 这是最好的年代,也是最坏的年代?
  2. 人工智能时代,语音技术怎么赚钱?
  3. Marvell深耕智能家居行业 赞同语音控制将成必然发展趋势
  4. html中 title标签放在()位置,[单选] HTML中,title标签放在什么位置()
  5. html 文字 跑马灯效果,CSS3 长文字跑马灯效果
  6. NameNode处理上报block块逻辑分析
  7. [经验总结]Perl模块使用 = 简短例子代码集合
  8. 一个人有没有领导力,就看这3点
  9. mysql+php+模板+条目_html模板
  10. pdf文件两栏内容提取信息思路