文档章节

IOS 图片轮播

xx明
 xx明
发布于 2014/12/11 11:01
字数 390
阅读 3537
收藏 3
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

#import "ViewController.h"


@interface ViewController ()<UIScrollViewDelegate>

@property(nonatomic, strong) NSTimer *timer;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    UIScrollView *sView = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 20, 300, 440)];
    
    sView.contentSize = CGSizeMake(1200, 440);
    sView.pagingEnabled = YES;
    sView.showsHorizontalScrollIndicator = NO;
    sView.tag = 200;
    //循环创建添加4张图片
    for (int i = 0; i < 4; i ++) {
        UIImageView *imgView = [[UIImageView alloc]init];
        imgView.frame = CGRectMake(i*300, 0, 300, 440);
        imgView.image = [UIImage imageNamed:[NSString  stringWithFormat:@"%d",i]];
        [sView addSubview:imgView];
    }
    
    [self.view addSubview:sView];
    
    //创建书页控件
    UIPageControl *pageControl = [[UIPageControl alloc]init];
    pageControl.frame = CGRectMake( 100, 440, 120, 20);
    pageControl.numberOfPages = 4;
    pageControl.currentPage = 0;
    pageControl.tag = 100;
    [self.view addSubview:pageControl];
    
    //设置scrollView的代理为当前类对象
    sView.delegate = self;
    
    //添加定时器,使用scheuled方法创建的定时器,不需要用fird方法打开(自动开启的)
    [self addtimer];
}

//添加定时器方法
-(void) addtimer{
    _timer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];
    
    //返回当前的消息循环对象
    [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
//删除定时器方法
-(void) deleteTimer{
    [_timer invalidate];
    _timer = nil;
}

-(void)nextPage{
    int page = 0;
    UIPageControl *pControl = (UIPageControl *)[self.view viewWithTag:100];
    if (pControl.currentPage == 3) {
        page = 0;
    }else{
        page = pControl.currentPage + 1;
    }
    
    //计算滚动的位置
    UIScrollView *sView = (UIScrollView *)[self.view viewWithTag:200];
    CGFloat offsetX = page * sView.frame.size.width;
    CGPoint offset = CGPointMake(offsetX, 0);
    [sView setContentOffset:offset animated:YES];
}

#pragma  - mark UIScrollViewDelegate
//监听滚动的位置,改变pageCotrol的currentPage的值.
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    
    UIPageControl *pControl = (UIPageControl *)[self.view viewWithTag:100];
    CGFloat scrollW = scrollView.frame.size.width;
    
    int page = (scrollView.contentOffset.x + scrollW * 0.5 )/ scrollW;
    pControl.currentPage = page;
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    [self deleteTimer];
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    [self addtimer];
}

@end


© 著作权归作者所有

xx明
粉丝 5
博文 29
码字总数 10912
作品 0
朝阳
私信 提问
MUI在Android与IOS上的一些小问题以及一些框架的用法

我费话少说,上正文; 区域滚动与下拉刷新、上拉加载在安卓上有冲突,一但调用了区域滚动也就是: 那么区域滚动在安卓上将无法滑动,iOS则没有影响。 并且就算iOS没有初始化区域滚动也没有影...

教父君
2018/11/07
0
0
h5实现视频手势上下屏滑动(类似抖音)

1. 首先考虑无限滑动的实现,最初的第一反应,是用竖向的轮播来实现。 这里要考虑的是如何实现无缝衔接~ 是否开启无限循环 我是这样实现的,总共轮播有三帧,所以特殊的是前两张和没有后续数...

天上月丶
05/21
0
0
iOS小白点效果、打地鼠游戏、轮播效果、画板、富文本编辑器等源码

iOS精选源码 美团外卖商家点菜页面(http://www.code4app.com/thread-29383-1-1.html) 板书录制演示程序(http://www.code4app.com/thread-29384-1-1.html) 分类轮播、直播间礼物列表轮播 -- O...

sunnyaigd
2018/04/24
28
0
iOS简单音乐实现、React-Native完整项目、仿闲鱼京东列表分页、语音识别、网络加载过度动画等源码

iOS精选源码 iOS快速入手语音识别、听写、评测、播报 网络加载数据的过渡动画(仿简书网页) iOS 封装跑马灯和轮播效果 crash防护组件,适用常见常用的数组,字典等crash保护 iOS:高仿闲鱼、...

Code4app
2018/09/26
0
0
react native Android无法正常显示

1.react native swiper轮播图不显示,但是在ios上显示正常 2.标题栏汉字不能居中,我设置过textAligin = ‘center’,ios也是显示正常

小孔4363
2016/11/21
493
2

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部