IOS开发控件视图day15:UIPageControl设置定时器自动翻页,以及更改小圆点背景图片

.h文件

@property(nonatomic,strong)UIScrollView *scrollView0;
@property (strong, nonatomic) UIPageControl *pageControl0;
@property (nonatomic,strong) NSTimer *nstime;

.m文件(具体循环view内容已省略)

_scrollView0.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width*5, 0);
_scrollView0.showsVerticalScrollIndicator = NO;//隐藏滚动条
_scrollView0.pagingEnabled = YES;//开启分页功能
_scrollView0.delegate = self;

_pageControl0 = [[UIPageControl alloc]init];
_pageControl0.backgroundColor = [UIColor whiteColor];
_pageControl0.numberOfPages = 5;
_pageControl0.currentPage = 0;//默认起始页
//当前页背景样式图片
[_pageControl0 setValue:[UIImage imageNamed:@"菜单-滑动切换"] forKeyPath:@"_currentPageImage"];
//非当前页背景样式图片
 [_pageControl0 setValue:[UIImage imageNamed:@"菜单-滑动切换灰"] forKeyPath:@"_pageImage"];

//设置定时器方法
self.nstime=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(scrolllab) userInfo:nil repeats:YES];

-(void)scrollImg
{
    //NSLog(@"1");
    //获取当前页码
    NSInteger page=_pageControl0.currentPage;
    //判断最后一页,回到第一页否则页码加1
    if (page==_pageControl0.numberOfPages-1) {
        page=0;
    }else
    {
        page++;
    }
    //页宽*(页码+1)
    CGFloat offsetX=page*_scrollView11.frame.size.width;
    //赋值
    [_scrollView0 setContentOffset:CGPointMake(offsetX, 0) animated:YES];
}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    //获取x方向偏移值
    CGFloat offsetX = scrollView.contentOffset.x;
    //让图片翻页过半时页码显示下一个
    offsetX=offsetX+(scrollView.frame.size.width*0.5);
    //偏移值除以图片或每页宽度得到第几页
    int page= offsetX / scrollView.frame.size.width;

    _pageControl0.currentPage=page;
}

//拖拽时
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    //停止计时器,不可重用
    [self.nstime invalidate];
    self.nstime=nil;
}
//停止拖拽时
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    //重启一个计时器
    self.nstime=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(scrollImg) userInfo:nil repeats:YES];
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值