31-使用scrollView以及pageControl,NSTimer实现图片轮播
来源:互联网 发布:微信js sdk开发实例 编辑:程序博客网 时间:2024/06/05 03:59
使用scrollView以及pageControl,NSTimer实现图片轮播
#import "ViewController.h"
//6.2遵守代理协议(UIScrollViewDelegate)
@interface ViewController ()<UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
//设置一个timer对象属性(属性在用之前一定要赋值)
@property (nonatomic,strong) NSTimer *timer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
int count=5;
CGSize size=self.scrollView.frame.size;
CGFloat imgW=size.width;
CGFloat imgH=size.height;
//1.创建5个ImageView
for (int i=0; i<count; i++) {
UIImageView *imageView=[[UIImageView alloc] init];
[self.scrollView addSubview:imageView];
NSString *imgName=[NSString stringWithFormat:@"img_%02d",i+1];
imageView.image=[UIImage imageNamed:imgName];
CGFloat imgY=0;
CGFloat imgX=i*imgW;
imageView.frame=CGRectMake(imgX, imgY, imgW, imgH);
}
//2. 设置滚动范围
self.scrollView.contentSize=CGSizeMake(count * imgW, 0);
//3.启用分页
self.scrollView.pagingEnabled=YES;
//4.禁用横向滚动条
self.scrollView.showsHorizontalScrollIndicator=NO;
//5.设置分页控件 pageControl
//总页数 numberOfPages
self.pageControl.numberOfPages=count;
//6.设置代理
//6.1设置属性
self.scrollView.delegate= self;
//7.定时器
//调用创建定时器的方法
[self creatTimer];
}
//创建定时器
-(void) creatTimer
{
//repeats 是否始终定时
NSTimer *timer=[NSTimer timerWithTimeInterval:2.0 target:selfselector:@selector(nextImge) userInfo:nil repeats:YES];
//NSRunLoop 消息循环 线程
//当页面正在操作其他控件,继续执行当前轮换.将 NSDefaultRunLoopMode 改为 NSRunLoopCommonModes
NSRunLoop *runloop=[NSRunLoop currentRunLoop];
[runloop addTimer:timer forMode:NSRunLoopCommonModes];
//属性在用之前一定要赋值
self.timer=timer;
//定时器一般要先等设置的秒数(当前2秒)以后在执行
//立即调用定时器要执行的方法
//[timer fire];
}
//切换下一张图片
-(void)nextImge
{
//当前第几张
NSInteger page=self.pageControl.currentPage;
if (page==self.pageControl.numberOfPages-1) {
page=0;
}
else
{
page++;
}
//同时设置pageControl
self.pageControl.currentPage=page;
[UIView animateWithDuration:1.0 animations:^{
self.scrollView.contentOffset=CGPointMake(page*self.scrollView.frame.size.width, 0);
}];
}
//6.3实现代理方法
#pragma mark -scrollView的代理方法
//同步pageControl
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//当滚动的位置超过一半的时候设置pageControl的currentPage为下一张图片
int page=(scrollView.contentOffset.x+0.5*scrollView.frame.size.width)/scrollView.frame.size.width;
//pageControl的当前页 currentPage
self.pageControl.currentPage=page;
}
//停止定时器
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
//停止定时器
//停止定时器后,定时器不能再次使用
[self.timer invalidate];
}
//重新开启定时器
-(void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
//调用创建定时器的方法
[self creatTimer];
}
@end
- 31-使用scrollView以及pageControl,NSTimer实现图片轮播
- 28-scrollView以及pageControl,NSTimer的基本使用
- 图片浏览器+scrollView使用+pageControl
- scrollView 实现图片轮播
- 图片轮播器[ScrollView,PageControl]
- scrollview+pagecontrol实现滑动界面
- 图片轮播器以及NSTimer的使用
- scrollView分页和pageControl,广告栏实现
- scrollView和pageControl的搭配使用
- pageControl与ScrollView的联合使用
- object-c之scrollView图片轮播
- ImageView实现图片的无限轮播 以及viewpager实现图片的无限轮播
- 使用ViewPager实现图片轮播
- 使用Jquery实现图片轮播效果
- 使用ViewFlipper实现图片轮播
- 使用UICollectionView实现图片轮播
- 使用UIcollectionView实现图片轮播
- 使用jQuery实现图片轮播
- 杭电 ACM 1003 python实现
- 用Android-X86和VirtualBox打造高性能Android开发环境
- LeetCode Longest Palindromic Substring
- day23_File对象-练习++Properties集合的+综合练习+打印流+序列流
- C++_友元函数
- 31-使用scrollView以及pageControl,NSTimer实现图片轮播
- Android SDK Android NDK Android Studio 官方下载地址
- 极光推送Python简化版
- Hadoop Datanode节点无法启动(All directories in dfs.data.dir are invalid)
- 【UNIX】从一个可执行文件的生成到进程在内存中分布 (上)/可执行文件的生成
- 《做人与处世》
- Java关于个人对于Socket的理解,Socket多线程批量上传文件,适合新手
- 独立人格的行为特质
- BCB中的TLabel,TEdit和TMaskEdit