IOS开发基础之图片轮播器-12

核心代码

//
//  ViewController.m
//  12-图片轮播器
//
//  Created by 鲁军 on 2021/2/2.
//#import "ViewController.h"@interface ViewController () <UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
@property (nonatomic,strong) NSTimer *timer;
@end@implementation ViewController
//实现UIScrollView的滚动方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{CGFloat offsetX = scrollView.contentOffset.x;offsetX = offsetX + (scrollView.frame.size.width * 0.5);int page = offsetX / scrollView.frame.size.width;self.pageControl.currentPage = page;
}- (void)viewDidLoad {[super viewDidLoad];CGFloat imgW = 300,imgH=130,imgY=0;for(int i=0;i<5;i++){UIImageView *imgView = [[UIImageView alloc] init];NSString *imgName = [NSString stringWithFormat:@"img_%02d",i+1];imgView.image = [UIImage imageNamed:imgName];CGFloat imgX = i * imgW;imgView.frame = CGRectMake(imgX, imgY, imgW, imgH);[self.scrollView addSubview:imgView];}CGFloat maxW = self.scrollView.frame.size.width * 5;self.scrollView.contentSize = CGSizeMake(maxW, 0);self.scrollView.pagingEnabled = YES;self.scrollView.showsHorizontalScrollIndicator = NO;self.pageControl.numberOfPages  = 5;self.pageControl.currentPage = 0;//创建一个定时器的的组件self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(scrollImage) userInfo:nil repeats:YES];// 优先级NSRunLoop *runLoop = [NSRunLoop currentRunLoop];[runLoop addTimer:self.timer forMode:NSRunLoopCommonModes];}
-(void)scrollImage{NSInteger page = self.pageControl.currentPage;if(page==self.pageControl.numberOfPages-1){page = 0;}else{page++;}CGFloat offsetX = page * self.scrollView.frame.size.width;[self.scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES];
}//实现即将开始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{//调用invalidate 一旦停止计时器那么这个 计时器不可再重用,无法用了[self.timer invalidate];self.timer = nil;
}- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{self.timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(scrollImage) userInfo:nil repeats:YES];// 优先级NSRunLoop *runLoop = [NSRunLoop currentRunLoop];[runLoop addTimer:self.timer forMode:NSRunLoopCommonModes];
}@end

IOS开发基础之图片轮播器-12相关推荐

  1. 图片轮播c语言,IOS开发之UIScrollView实现图片轮播器的无限滚动

    IOS开发之UIScrollView实现图片轮播器的无限滚动 简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告.新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScr ...

  2. ios ScrollerView之图片轮播器

    ios ScrollerView之图片轮播器 今天项目中用到了图片轮播器,写完之后贴到博客里来记录一下,也方便有兴趣的同学学习 #import "JYHCarouselController. ...

  3. swift:创建滚动视图的图片轮播器

    用swift创建图片轮播器和用OC创建的方式是一样的,都主要用到UIScrollView和UIImageview这两个控件,有几张图片,就将滚动视图的内容区域大小设置为每一张图片的大小乘以张数即可.然 ...

  4. Android高级图片滚动控件,编写3D版的图片轮播器

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博 ...

  5. 图片轮播器,relativelayout,外加textview小结

    十多个textview,外加三个relativelayout,心烦的是图片轮播器,就环境老玄了,写了三个图片轮播器才成功,直接来代码吧,gogogo. Activity_main.xml <?x ...

  6. 图片轮播器(swift)

    如何实现一个无限循环,无缝衔接的图片轮播器 自己实现一次以后就不用使用轮播器的框架了 能用代码解决的问题就不在这里瞎BB了  O(∩_∩)O 首先先在Carousel文件件夹创建以下几个文件 Caro ...

  7. javascript+css实现走马灯图片轮播器

    javascript+css实现图片轮播-走马灯式 该图片轮播器主要是通过改变"图片容器"(即下面html代码中的div class="innerBox")的m ...

  8. 图片轮播器——javascript

    在网页中,图片轮播器用得比较多. 效果图: <!DOCTYPE html> <html><head><meta http-equiv="Conten ...

  9. JAVA轮播器_Android 图片轮播器的实现及源码解析

    在很多产品,尤其是电商类社区内的网页或者app中,我们经常会看到一个图片轮播墙,一页一页的广告/活动/商品介绍每隔一段时间就切换到下一张.那在安卓中我们该如何实现图片轮播器呢?面对自定义样式.自定义图 ...

最新文章

  1. 高手讲解PHP遍历数组的方法
  2. 人工智能助力全国大学智能车竞赛
  3. MyEclipse的安装和汉化过程
  4. idea自动为行尾加分号
  5. jpannel设置位置xy_实用的摄影技巧!10种常见摄影场景的单反相机设置技巧!
  6. 关于增强(五)-Class Enhancement
  7. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(6) - 移位与循环移位指令
  8. (转)Spring Boot(四):Thymeleaf 使用详解
  9. 自学前端很难吗?只要你足够努力,高中学历也能获得offer
  10. SQL Express几个版本的区别
  11. ros运行cpp文件
  12. matlab 三维图像 叠加,利用 Matlab构建“波的叠加”图样
  13. 申请计算机助理的英语作文,助理面试英文自我介绍范文(通用5篇)
  14. 01_多操作系统课题研究[2011-01-21]
  15. Ubuntu 16.04 安装wine-qq 7.8 并解决不能输入中文问题
  16. 30岁前不必在乎的30件事
  17. 网站是用什么来赚钱的?
  18. noip初赛复习(全)(转)
  19. C++中Exit()与atexit()函数的使用
  20. 基于Python+django的高校资产管理系统-计算机毕业设计

热门文章

  1. matlab平面抛射方程,MATLAB 数学实验 第七章 微分方程与计算机模拟 PPT注记
  2. python集成工具包_pyBit
  3. 数据挖掘 python roc曲线_利用scikitlearn画ROC曲线实例
  4. php内置函数数组函数,PHP 数组排序内置函数
  5. FPGA的Veilog HDL语法、框架总结
  6. C++ 基础知识!初学者必看!
  7. 手把手教你研发属于自己的智能无人机
  8. h700通话糊 索尼wi_专业的事还是要交给专业的人,盘点索尼千元以下的好耳机...
  9. c语言是自动四舍五入,请问c语言如何实现四舍五入?
  10. 过程计算机控制综合课程设计,自动化10本 12升《计算机控制综合课程设计》任务书...