UIScorlView 循环滚动
- - (void) createAdScrollView
- {
- _view = [[UIView alloc] initWithFrame:CGRectMake(, , WIDTH, )];
- [self.view addSubview:_view];
- _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(, , WIDTH, )];
- _scrollView.delegate = self;
- // 设置scrollView的contentSize
- _scrollView.contentSize = CGSizeMake(WIDTH*(self.scrollViewDataArray.count+), );
- _scrollView.pagingEnabled = YES;
- _scrollView.delegate = self;
- // 注意这里不需要add,因为在headerView时直接return _scrollView;
- [_view addSubview:_scrollView];
- for (int i=; i<self.scrollViewDataArray.count+; i++) {
- int y = i;
- if (y == self.scrollViewDataArray.count) {
- y = ;
- }
- UIButton *button = [ZCControl createButtonWithFrame:CGRectMake(WIDTH*i, , WIDTH, ) title:nil imageName:nil bgImageName:nil target:self method:@selector(buttonClick:)];
- // [button sd_setBackgroundImageWithURL:[NSURL URLWithString:self.scrollViewDataArray[y][@"image_path"]] forState:UIControlStateNormal]; placeholderImage:[UIImage imageNamed:@"recommend_Face"];
- button.tag = +i;
- [_scrollView addSubview:button];
- }
- // 添加定时器
- [NSTimer scheduledTimerWithTimeInterval: target:self selector:@selector(timerClick) userInfo:nil repeats:YES];
- // 添加小白点
- pageController = [[UIPageControl alloc]initWithFrame:CGRectMake(, , , )];
- pageController.numberOfPages = self.scrollViewDataArray.count;
- // 白色看不清设置成其他颜色
- pageController.pageIndicatorTintColor = [UIColor grayColor];
- // pageController虽然是和scrollView并用的,但是并不加载在sc
- [_view addSubview:pageController];
- // kvo观察者模式,负责观察某一个对象其中某一个值的变化,如果有新值变化就通知你。需要注意的是,观察者模式需要手动销毁,当前界面销毁并不代表观察者模式也销毁了
- // sc观察的对象,self为响应的对象,path为观察sc其中的一个属性,使用字符串来表示这个属性,要求与属性名保持一致。options为观察值变化为有新的变化的时候,通知我。context上下文
- [_scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
- }
- - (void)timerClick{
- // 首先判断_scrollView当前的偏移
- CGPoint point = _scrollView.contentOffset;
- point.x = point.x+WIDTH;
- [UIView animateWithDuration: animations:^{
- _scrollView.contentOffset = point;
- }completion:^(BOOL finished) {
- CGPoint point1 = _scrollView.contentOffset;
- if (_scrollView.contentOffset.x/WIDTH == self.scrollViewDataArray.count) {
- _scrollView.contentOffset = CGPointZero;
- }
- }];
- }
- - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
- {
- // keyPath为观察的那个key也就是属性,object为观察的的那个对象,change为变化的值
- int x = _scrollView.contentOffset.x/;
- pageController.currentPage = x;
- }
UIScorlView 循环滚动的更多相关文章
- IOS实现自动循环滚动广告--ScrollView的优化和封装
一.问题分析 在许多App中,我们都会见到循环滚动的视图,比如广告,其实想实现这个功能并不难,用ScrollView就可以轻松完成,但是在制作的过程中还存在几个小问题,如果能够正确的处理好这些小问题, ...
- Jquery制作--循环滚动列表
自己模仿JQ插件的写法写了一个循环滚动列表插件,支持自定义上.下.左.右四个方向,支持平滑滚动或者间断滚动两种方式,都是通过参数设置.JQ里面有些重复的地方,暂时没想到更好的方法去精简.不过效果还是可 ...
- marquee 实现首尾相连循环滚动效果
<marquee></marquee>可以实现多种滚动效果,无需js控制.使用marquee标签不仅可以滚动文字,也可以滚动图片,表格等 marquee标签不是HTML3.2 ...
- Expression Blend4经验分享:文字公告无缝循环滚动效果
这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...
- ul 仿 table 循环滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- html+css+javascript实现列表循环滚动示例代码
使用html+css+javascript实现列表循环滚动,设置时间定时,在规定的时间内替换前一个节点的内容,具体示例如下,感兴趣的朋友可以参考下 说明:设置时间定时,在规定的时间内替换前一个节点的内 ...
- UIScrollView循环滚动1
现在基本每一个商业APP都会有循环滚动视图,放一些轮播广告之类的,都是放在UIScrollView之上.假如我要实现N张图片的轮播,我借鉴了几个博文,得到两种方法实现: [第一种]:如下图(图片来源于 ...
- ios UIPickerView 技巧集锦(包括循环滚动)
摘自: http://blog.csdn.net/ipromiseu/article/details/7436521 http://www.cnblogs.com/dabaopku/archive/2 ...
- UIPickerView 循环滚动(一种假象)
因为网上没有查到相关方法,故而采用一种假象的方法来实现,选项循环滚动 - (void)viewDidLoad { [super viewDidLoad]; /** UIPickerView 选择器 * ...
随机推荐
- uitextfield输入字符限制
-(UITextField*)createField:(NSString*)placeholder andTag:(int)tag andFont:(double)font{ UITextField ...
- TP中不区分大小写__APP__和__URL__的注意事项
控制器命名为 : AuthGroupAction.class.php 问题 : 在控制器跳转中.如果模板跳转时地址的大小写错了..就会报无法加载模块 报错 : 无法加载模块:Authgroup 解决办 ...
- php 去除html标记--strip_tags与htmlspecialchars的区别详解
php 去除html标记--strip_tags与htmlspecialchars的区别详解 作者: 字体:[增加 减小] 类型:转载 时间:2013-06-26 本篇文章是对php中去除html ...
- Smarty 配置文件的读取
http://www.cnblogs.com/gbyukg/archive/2012/06/12/2539067.html
- Super不要在Super构造器中调用覆盖方法
import java.util.Date; public class Super{ public Super(){ System."); overrideMe(); System.&quo ...
- js 和 jquery 获取页面和滚动条的高度 视口高度文档高度
js 和 jquery 获取页面和滚动条的高度 //页面位置及窗口大小 function GetPageSize() { var scrW, scrH; if(window.innerHeight & ...
- ubuntu下opencv在Qt中的使用
1. 编译安装OpenCV2.4.9 本博已有文章描述 2. 安装Qt和QtCreator 从qt-project.org 下载Qt安装文件 qt-opensource-linux-x64-5.4. ...
- UI auto test
java.home/lib/security/java.policy (Solaris/Linux) http://www.cnblogs.com/richaaaard/p/5091059.html ...
- 6 个JavaScript日期处理库
1. Later.js Later.js, a stadalone JavaScript library, offers an advanced usage for triggering recurr ...
- 关于YARN的HA
一:准备 1.规划 namenode namenode ZKFC ZKFC journalnode journalnode jou ...