轮播图和UIPageControl(分页控制器)、NSTimer(定时器)
来源:互联网 发布:mac网络测速工具 编辑:程序博客网 时间:2024/06/06 20:03
轮播图和UIPageControl(分页控制器)、NSTimer(定时器)
UIPageControl常用属性 ##
UIPagerControl常用属性
一共有多少页
@property(nonatomic) NSInteger numberOfPages;
当期显示页码
@property(nonatomic) NSInteger currentPage;
只有一页时是否需要隐藏页码指示器
@property(nonatomic) BOOL hidesForSinglePage;
其他页码指示器的颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
当前页码指示器的颜色
@property(nonatomic,retain) UIColor *pageIndicatorTintColor;
NSTimer
NSTimer叫做“定时器”,它的作用如下
在指定的时间执行指定的任务
调用下面的方法就会开启一个定时任务
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
每隔ti秒,调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个任务
通过invalidate方法可以停止定时器的工作,一旦定时器被停止了,就不能再次执行任务。只能再创建一个新的定时器才能执行新的任务
- (void)invalidate;
#define MJImageCount 5#import "MJViewController.h"@interface MJViewController () <UIScrollViewDelegate>@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;/** * 定时器 */@property (nonatomic, strong) NSTimer *timer;@end@implementation MJViewController- (void)viewDidLoad{ [super viewDidLoad]; // 0.一些固定的尺寸参数 CGFloat imageW = self.scrollView.frame.size.width; CGFloat imageH = self.scrollView.frame.size.height; CGFloat imageY = 0; // 1.添加5张图片到scrollView中 for (int i = 0; i<MJImageCount; i++) { UIImageView *imageView = [[UIImageView alloc] init]; // 设置frame CGFloat imageX = i * imageW; imageView.frame = CGRectMake(imageX, imageY, imageW, imageH); // 设置图片 NSString *name = [NSString stringWithFormat:@"img_0%d", i + 1]; imageView.image = [UIImage imageNamed:name]; [self.scrollView addSubview:imageView]; } // 2.设置内容尺寸 CGFloat contentW = MJImageCount * imageW; self.scrollView.contentSize = CGSizeMake(contentW, 0); // 3.隐藏水平滚动条 self.scrollView.showsHorizontalScrollIndicator = NO; // 4.分页 self.scrollView.pagingEnabled = YES;// self.scrollView.delegate = self; // 5.设置pageControl的总页数 self.pageControl.numberOfPages = MJImageCount; // 6.添加定时器(每隔2秒调用一次self 的nextImage方法) [self addTimer];}/** * 添加定时器 */- (void)addTimer{ self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];}/** * 移除定时器 */- (void)removeTimer{ [self.timer invalidate]; self.timer = nil;}- (void)nextImage{ // 1.增加pageControl的页码 int page = 0; if (self.pageControl.currentPage == MJImageCount - 1) { page = 0; } else { page = self.pageControl.currentPage + 1; } // 2.计算scrollView滚动的位置 CGFloat offsetX = page * self.scrollView.frame.size.width; CGPoint offset = CGPointMake(offsetX, 0); [self.scrollView setContentOffset:offset animated:YES];}#pragma mark - 代理方法/** * 当scrollView正在滚动就会调用 */- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ // 根据scrollView的滚动位置决定pageControl显示第几页 CGFloat scrollW = scrollView.frame.size.width; int page = (scrollView.contentOffset.x + scrollW * 0.5) / scrollW; self.pageControl.currentPage = page;}/** * 开始拖拽的时候调用 */- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ // 停止定时器(一旦定时器停止了,就不能再使用) [self removeTimer];}/** * 停止拖拽的时候调用 */- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ // 开启定时器 [self addTimer];}@end
0 0
- 轮播图和UIPageControl(分页控制器)、NSTimer(定时器)
- 第二十篇:滚动视图UIScrollView ,分页控制器UIPageControl 定时器 NSTimer
- IOS分页控制器 - UIPageControl
- UIScrollView和UIPageControl的分页 && NSTimer【图片轮播器】
- ios-day05-04(图片轮播器 UIScrollView的分页、UIPageControl的使用、NSTimer(定时器)的使用)
- iOS定时器(NSTimer)
- 定时器(NSTimer)
- UIPageControl和NSTimer的使用
- IOS UIPageControl(分页控制器) 用法总结
- iPhone开发之UIScrollView滚动组件的使用(七)利用NSTimer计时器和UIPageControl组件代码实现图片轮播器
- IOS 定时器(NSTimer)的使用
- 定时器(二)---ios NSTimer使用
- iOS 定时器(NSTimer)的使用
- 比NStimer准确的定时器(GCD)
- UIScrollView、UIPageControl、NSTimer
- iOS中UIScrollView和UIPageControl以及NSTimer的综合使用
- iOS开发之修改分页控制器UIPageControl的图片和大小以及圆点之间的距离
- UIPageControl分页控件和 UIAlertView提示框
- linux下检查内存泄露的工具--mtrace
- Swift开发IOS-UIImageView
- 关于html5里object、embed、video、audio的小总结
- 低功耗蓝牙4.0BLE编程-nrf51822开发(1)
- 富文本编辑器tinymce获取文本内容和设置文本内容
- 轮播图和UIPageControl(分页控制器)、NSTimer(定时器)
- 微信开放平台开发 微信登录
- 欧拉角与万向节死锁
- 引导页实现ScrollView左右无缝滚动
- vlc在ubuntu下安装
- 模仿网易新闻做的新闻软件
- 美团Android自动化之旅—生成渠道包
- c++练习守护注册表服务程序
- NSSearchPathForDirectoriesInDomains和NSHomeDirectory