针对页控件实现的点击效果

页控件默认是无法定位点击的,不能实现当前页为首页时,点击跳转到末尾的效果。

页控件需要了解的一些信息:

  • 默认小圆点的矩阵宽高为7px左右
  • 小圆点之间的空白间距为9px左右

在页控件上覆盖同等数量的透明按钮,实现精确定位的点击效果,类似汤姆猫点击图片的头部,手,脚等部位会产生相应动画,原理也是在图片上添加透明的按钮。

01. // 注意UIButton按钮是添加到self.view上的,而不是UIPageControl,试了下,UIPageControl添加不了子视图
02. for(int i = 0; i < ... ; i++)
03. {
04.        //循环添加按钮
05.        UIButton *button = [[UIButton alloc] init];
06.        button.center = CGPointMake(小圆点的中心点.x,小圆点的中心点.y);
07.        button.bounds = CGRectMake(0,0,8,8);  //略大于小圆点的矩形
08.        button.backgoundColor = [UIColor clearColor];
09.        // 设置按钮的tag值,用于标识按钮
10.        button.tag = i;     
11.        [self.view addSubview:button];
12.        // 对按钮添加监听,监听UIControlEventTouchDown事件
13.        [button addTarget:self action:@selector(pressButton:) forControlEvents:UIControlEventTouchDown];
14.        //对按钮继续添加监听,监听UIControlEventTouchUpInside事件
15.        [button addTarget:self action:手指离开时,重启定时器 forControlEvents:UIControlEventTouchUpInside];
16. }
17. ...

实现手指点击按钮时,停止定时器,并且切换图片,至于页控件的当前页码值会跟随图片的切换自动更改,之前在自动轮播器中设置过。

01. ...
02. - (void)pressButton:(UIButton *)button
03. {
04.       //获取按钮的标识值作为页码
05.       NSInteger page = button.tag;
06.       [self.scrollview setContentOffset:CGSizeMake(page * self.scrollview.frame.size.width, 0);
07.       // 页控件的当前页码设置是在监听滚动视图滚动时实现的
08. }
09. ...

你可能感兴趣的:(针对页控件实现的点击效果)