IOS--UIScrollView delegate 协议-
以下为该协议的相关方法:
- (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 协议-相关推荐
- iOS - UIScrollView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIScrollView : UIView <NSCoding>@available(iOS 2.0, ...
- IOS 委托和协议区别和联系 (-)
2019独角兽企业重金招聘Python工程师标准>>> IOS 委托和协议区别和联系 (-) IOS上的协议类似于C#.Java上面的接口,他是从类中抽出来的一系列方法,但方法的实现 ...
- iOS UIScrollView和缩放
In this tutorial, we'll be implementing the UIScrollView along with the Zoom feature in our iOS Appl ...
- iOS之代理/协议 @protocal
理解: @protocal 可以定义一个协议.一个类如果使用了这个协议,那么就要按照这个协议要求的去办事.最常见的就是UITableViewDelegate.UITableViewDataSource ...
- ios学习-delegate、传值、跳转页面
ios学习-delegate.传值.跳转页面 1.打开xcode,然后选择ios--Application--Empty Application一个空项目. 项目目录: 2.输入项目名称以及选择保 ...
- FreeEIM 来点新知识iOS UIScrollView详解
老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...
- IOS UIScrollView (转)
UIScrollView 类负责所有基于 UIKit 的滚动操作. 一.创建 1 CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ...
- ios UIScrollView 基础属性
转 UIScrollView 原理 在滚动过程当中,其实是在修改原点坐标.当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器.假如在计时器到点后没有发生手指移动事件,那么 scr ...
- iOS 中delegate的理解与使用(传值)
之前做了半年的iOS,刚入了门,又被拉去转战java,现在iOS的那位大佬离职了,又被弄过来维护app,之前对于iOS中的delegate一直都是半知半解,所以刚好趁着这个机会把我所了解的记下来,以便 ...
最新文章
- Linux 增加对外开放的端口
- Java常用排序算法/程序员必须掌握的8大排序算法
- 释放C盘空间27招具体优化技巧
- Web文件的ContentType类型大全
- 数据分析思维框架---认知决定差异
- 找不到编译动态表达式所需的一种或多种类型。是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用?...
- C++set容器-构造和赋值
- jQuery.grep()
- Access SqLDbHelper
- 介绍如何隐藏JDataGridBean的SplashScreen?
- vue项目中使用lib-flexible解决移动端适配
- Linux系统磁盘管理基本知识
- 启动计算机显示屏没反应,电脑开机后显示器无反应怎么办
- SQL Server Management Studio(SSMS)对象资源管理器的使用以及查询分析器的使用
- java异常处理(Exception handing)机制
- laravel-admin / Dcat admin 上传Excel并导入数据到数据库
- 国内银行英文简称及全称
- c#串口通信(三)--半双工通信的数据接收
- gif截屏工具推荐(ScreenToGif)
- 免费的几个CDN加速
热门文章
- 双电子两个格点Hubbard模型严格对角化
- 电脑开机只显示计算机界面,笔记本电脑进不了桌面?开机只显示BIOS界面?
- Android 容联云IM集成:初始化与登录中的坑
- 手把手教你用 VuePress 快速搭建个人技术博客~
- n76e003引脚图_N76E003 复位引脚(P20)配置为输入的两种方法
- 电商项目:拼团活动设计及表结构设计
- 通过修改rom包永久获取root权限和所有应用调试功能ro.debuggable
- 解决python通过pip离线安装flask,numpy报错解决(centos)
- 湘鄂情资源独具 大数据转型可期
- java代码视频数据和音频数据的采集