scrollView ——自动轮播并且设置图片底部小圆点
来源:互联网 发布:数据库免费账号 编辑:程序博客网 时间:2024/05/12 01:04
#import "ScrollViewController.h"#import "Global.h"#define ScrollViewHeight (SCREENHEIGHT - 100)@interface ScrollViewController ()@property (nonatomic, strong) UIScrollView *scrollView;@property (nonatomic, strong) UILabel *label;@property (nonatomic, strong) UIPageControl *pageControl;@property (nonatomic, strong) NSTimer *timer;@end@implementation ScrollViewController- (void)viewDidLoad{ [super viewDidLoad]; [self initView];}- (void)initView{ //设置滚动视图的主体 _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREENWIDTH, ScrollViewHeight)]; _scrollView.pagingEnabled = YES; _scrollView.bounces = NO; _scrollView.delegate = self; for (int i = 1; i < 5; ++i) { UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(0, (i - 1) * ScrollViewHeight, SCREENWIDTH, ScrollViewHeight)]; imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i]]; [_scrollView addSubview:imageView]; } //设置第五张图片和第一张图片相同 UIImageView *imageView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 4 * ScrollViewHeight, SCREENWIDTH, ScrollViewHeight)]; imageView.image = [UIImage imageNamed:@"1.jpg"]; [_scrollView addSubview:imageView]; _scrollView.contentSize = CGSizeMake(SCREENWIDTH, ScrollViewHeight * 5); [self.view addSubview:_scrollView]; //设置时钟 _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(changeView) userInfo:nil repeats:YES]; //设置底部文字 _label = [[UILabel alloc] initWithFrame:CGRectMake(SCREENWIDTH / 2 - 50, ScrollViewHeight, SCREENWIDTH, 50)]; _label.textColor = [UIColor whiteColor]; _label.text = @"这是第1页"; [self.view addSubview:_label]; //设置视图上的小圆点 _pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, ScrollViewHeight - 50, SCREENWIDTH, 30)]; _pageControl.numberOfPages = 4; _pageControl.currentPage = 0; [_pageControl addTarget:self action:@selector(pageTurn:) forControlEvents:UIControlEventValueChanged]; [self.view addSubview:_pageControl];}//设置时钟调用的方法- (void)changeView{ float resultPiontY = 0.0; //这里获取的信息是未翻页前的信息。 //当前的点不在最后一页的时候,每次正常翻页,当是最后一页的时候,把最后一页变为第一页(小圆点当前页数设置为1,当前点设置为0.0) //注意:当前的计算点是下一页的点,当前计算的页数是下一页的页数 int i = 1; if (_scrollView.contentOffset.y < 3 * ScrollViewHeight) { i = _scrollView.contentOffset.y / (SCREENHEIGHT - 100) + 1; } else if (_scrollView.contentOffset.y == 3 *ScrollViewHeight) { i = 0; } else { _scrollView.contentOffset = CGPointMake(0, 0); } _label.text = [NSString stringWithFormat:@"这是第%d页", i + 1]; _pageControl.currentPage = i; resultPiontY = _scrollView.contentOffset.y + ScrollViewHeight; [_scrollView setContentOffset:CGPointMake(0, resultPiontY) animated:YES];}//设置小圆点点击方法- (void)pageTurn:(UIPageControl *)sender{ [_scrollView setContentOffset:CGPointMake(0, sender.currentPage * _scrollView.frame.size.height) animated:YES];}//当开始拖拽的时候停止时钟- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ [_timer setFireDate:[NSDate distantFuture]];}//当结束拖拽时执行的方法,- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ _label.text = [NSString stringWithFormat:@"这是第%d页", (int)(scrollView.contentOffset.y / (SCREENHEIGHT - 100)) + 1]; }//当结束滚当时执行的方法,变更页数,并且在5秒后开始时钟- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ //这里获取的信息是已经翻过页的信息 int i = 0; if (_scrollView.contentOffset.y < 4 * ScrollViewHeight) { i = scrollView.contentOffset.y / (SCREENHEIGHT - 100); } else { _scrollView.contentOffset = CGPointMake(0, 0); i = 0; } _label.text = [NSString stringWithFormat:@"这是第%d页", i + 1]; _pageControl.currentPage = i; [_timer setFireDate:[NSDate dateWithTimeInterval:5.0 sinceDate:[NSDate date]]];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}/*#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // Get the new view controller using [segue destinationViewController]. // Pass the selected object to the new view controller.}*/@end
0 0
- scrollView ——自动轮播并且设置图片底部小圆点
- 设置自动轮播的小圆点
- 自动轮播+小圆点
- 小圆点自动轮播
- ViewPager加载网络图片+自动轮播+小圆点指示
- 一个自动轮播以及小圆点的设置
- ViewPager自动轮播+底部文字动态+底部小圆点动态滑动
- 自动轮播加小圆点
- ViewPager 带小圆点 自动轮播
- ViewPager 带小圆点 自动轮播
- ViewPager自动轮播+小圆点
- viewpager自动轮播 加小圆点
- 无限自动轮播+小圆点
- viewpager+自动轮播+无线轮播+小圆点
- Viewpager 自动轮播(无限循环) ,手动滑动时停止轮播+底部小圆点(一)
- Viewpager 自动轮播(无限循环) ,手动滑动时停止轮播+底部小圆点(二)
- AsyncTask+HttpClient网络请求图片实现自动轮播+小圆点
- ViewPager无限自动轮播小圆点+网络加载图片+活动倒计时
- 在Android中使用Lombok减少编码
- 第一周《C语言及程序设计》视频笔记数据的输入
- c++ 调用 oc
- itoa的实现
- ListView中嵌套ListView
- scrollView ——自动轮播并且设置图片底部小圆点
- Android ANR问题
- Android中 "WebView"的使用
- codeforces 703C
- 拦截器在struts2中的应用
- 【60】把二叉树打印成多行
- 侧滑菜单HorizontalScrollView,类中如何使用intent跳转
- OkHttp
- ZooKeeper的原生API