基于ScrollView的图片播放

  • ScrollView的方法
  • NSTime的循环
  • UIPageControl的运用
  • 委托方法

基于iphone5 未做屏幕的适配

import "ViewController.h"

@interface ViewController ()<UIScrollViewDelegate>
@property(nonatomic,strong) UIScrollView *scrollView; //声明一个UIScrollView
@property(nonatomic, strong)UIPageControl *pageControl; //声明一个UIPageControl
@property (nonatomic, strong) NSTimer *timer;
@end @implementation ViewController
//设置ScrollView
-(UIScrollView*)scrollView{
if(_scrollView==nil){
//初始化位置
_scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 20, 320, 530)];
self.scrollView.contentSize=CGSizeMake(4*_scrollView.bounds.size.width, 0);
self.scrollView.pagingEnabled=YES;
self.scrollView.bounces=NO;
self.scrollView.showsHorizontalScrollIndicator=NO;
self.scrollView.showsVerticalScrollIndicator=NO;
//委托
self.scrollView.delegate = self;
[self.view addSubview:_scrollView];
}
return _scrollView;
} //分页设置
-(UIPageControl*)pageControl{
if(_pageControl==nil){
_pageControl=[[UIPageControl alloc]init];
_pageControl.numberOfPages=4;
_pageControl.bounds=CGRectMake(0, 0, 150, 20);
//设置中心
_pageControl.center=CGPointMake(self.view.center.x, self.scrollView.frame.size.height+30);
_pageControl.pageIndicatorTintColor=[UIColor redColor];
_pageControl.currentPageIndicatorTintColor=[UIColor blackColor];
[self.view addSubview:_pageControl];
//页数改变
[_pageControl addTarget:self action:@selector(pageChange:) forControlEvents:UIControlEventValueChanged];
}
return _pageControl;
} //页数改变事件
-(void)pageChange:(UIPageControl*)pageCtrl{
//页数改变同时变更scrollView
[self.scrollView setContentOffset:CGPointMake(pageCtrl.currentPage*self.scrollView.bounds.size.width, 0) animated:YES];
} //scrollView的contentOffset 改变
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat scrollviewW = scrollView.frame.size.width;
CGFloat x = scrollView.contentOffset.x;
int page = (x + scrollviewW / 2) / scrollviewW;
self.pageControl.currentPage=page;
} - (void)viewDidLoad {
[super viewDidLoad];
for (int i=0; i<4; i++) {
NSString *imageName= [NSString stringWithFormat:@"%02d",i+1] ;
UIImage *image=[UIImage imageNamed:imageName];
UIImageView *imageView =[[UIImageView alloc]initWithFrame:self.scrollView.bounds];
imageView.image=image;
[self.scrollView addSubview:imageView ];
}
//循环
[self.scrollView.subviews enumerateObjectsUsingBlock:^(UIImageView *imageView, NSUInteger idx, BOOL *stop) {
CGRect frame = imageView.frame;
//索引变化的时候改变坐标位置
frame.origin.x=frame.size.width*idx;
imageView.frame=frame; }];
//默认从第一个
self.pageControl.currentPage=0;
[self startTimer];
} //绑定上timer
- (void)startTimer
{
self.timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} //更新timer
- (void)updateTimer
{
int page = (self.pageControl.currentPage + 1) % 4;
self.pageControl.currentPage = page;
[self pageChange:self.pageControl];
} @end

iOS图片轮播的更多相关文章

  1. iOS 图片轮播图(自动滚动)

    iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...

  2. IOS 图片轮播实现原理 (三图)

    IOS 图片轮播实现原理的一种 图片轮播所要实现的是在一个显示区域内通过滑动来展示不同的图片. 当图片较少时我们可以采用在滚动视图上添加很多张图片来实现. 但是如果图片数量较多时,一次性加载过多图片会 ...

  3. ios图片轮播效果

    代码地址如下:http://www.demodashi.com/demo/11959.html ImageCarousel 简单封装的图片轮播器 内存过大由于我加载的图片分辨率较高(4k) 文件目录 ...

  4. iOS开发UI篇—UIScrollView控件实现图片轮播

    iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: #import "YYV ...

  5. IOS第六天(3:scrollView 图片轮播器)

    IOS第六天(3:scrollView 图片轮播器) #import "HMViewController.h" #define kImageCount 5 @interface H ...

  6. 【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

    原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 ...

  7. iOS开发项目实战——Swift实现图片轮播与浏览

    近期開始开发一个新的iOS应用,自己决定使用Swift.进行了几天之后,发现了一个非常严峻的问题.那就是无论是书籍,还是网络资源,关于Swift的实在是太少了,随便一搜全都是OC实现某某某功能.就算是 ...

  8. ios之无限 自动 图片轮播器的实现

    比较之前发布的手动无限图片轮播器进行了改进.实现了自动无限轮播的功能.比较适合团购标题分类下面的轮播器功能. 实现思路: * 开启一个定时器,把操作放入消息循环池.每隔一定时间,操作执行一次. * 注 ...

  9. ios 学习 广告图片轮播器

    // // ViewController.m // 图片轮播器 // // Created by zjj on 15/5/23. // Copyright (c) 2015年 zjj. All rig ...

随机推荐

  1. 从零开始学习前端开发 — 10、HTML5新标签及表单控件属性和属性值

    一.html5新增标签 1.结构性标签 header 定义网页的头部 nav 定义网页的导航 footer 定义网页的底部 section 定义网页的某个区域 article 定义网页中的一篇文章 a ...

  2. WPF 实现新手指引功能 DEMO

    需求 1.接口化.其他人实现接口就行 2.动态定位到visualTree中任意控件位置,即随意只显示任何部位 3.指示文本控件和箭头控件随意更改(位置,大小,高度,偏移等基本属性) 4.抽出主题 [d ...

  3. parse_url   解析 URL,返回其组成部分

    parse_url - 解析 URL,返回其组成部分 array parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一 ...

  4. Intellij idea 中修改java web代码 ,网页不同步

    问题可能出在  Intellij  idea 没有将源码保存在本地,浏览器访问了缓存而没有访问最新文件 用命令行查看了源码,同步了 接着禁止浏览器缓存,网页同步了 打开火狐浏览器 输入 about:c ...

  5. zabbix入门知识

    zabbix入门知识 zabbix中文手册 https://www.zabbix.com/documentation/3.4/manual/ 1.zabbix介绍 Zabbix 是一个企业级的分布式开 ...

  6. IOS中UIScrollView的contentSize、contentOffset和contentInset属性

    IOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView. 跟所有的view一样,UIScrollView有一个frame属 性,同时, ...

  7. mysql 查询今天,昨天,上个月sql语句 注解

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天Select * FROM 表名 Where TO_DAYS( NOW( ) ...

  8. TF-卷积函数 tf.nn.conv2d 介绍

    转自 http://www.cnblogs.com/welhzh/p/6607581.html 下面是这位博主自己的翻译加上测试心得 tf.nn.conv2d是TensorFlow里面实现卷积的函数, ...

  9. Centos7-两台Centos机器间复制文件

    我又两台Centos机器,一台192.168.1.1:另一台192.168.1.2 现在在将192.168.1.1上的一个文件复制到192.168.1.2.登陆到192.168.1.1然后运行命令 命 ...

  10. wamp版本升级小问题记录

    在升级wamp版本时遇到的一些小问题,特此记录 在安装完成之后,修改了Apache根目录,可以正常访问.但是发现 httpd-vhosts.conf追加配置的无法访问,逐步检查,有以下问题 1.Inc ...