UIKit框架 -09.UIPageControl

来源:互联网 发布:淘宝购物券是什么 编辑:程序博客网 时间:2024/06/06 03:23

1.概述

  • 很多软件都会存在在一个UIScrollView中有多个分页视图的情况,类是于系统桌面有不同页的视图,这时候苹果为了用户方便管理和标记当前视图,在UIKit框架中提供了这么一个控件来实现这个功能,即UIPageControl
  • UIPageControl是分页控制控件,用来标示当前界面的视图总数和当前显示视图

2.基本使用

- (void)viewDidLoad {    [super viewDidLoad];  // 1.创建PageControl,添加到视图中    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(250, 200, 100, 37)];    // 1.1设置pageControl的总页数和当前标记界面    pageControl.numberOfPages = 5;    pageControl.currentPage = 2;    // 1.2设置pageControl的颜色属性    // 设置当前页面标记颜色和其他页面的标记颜色    pageControl.pageIndicatorTintColor = [UIColor purpleColor];    pageControl.currentPageIndicatorTintColor = [UIColor yellowColor];    // 2.添加到视图    [self.view addSubview:pageControl];    // 3.添加监听事件    // 由于UIPageControl继承自UIControl,所以我们也可以像监听按钮一样给UIPageControl添加监听事件    [pageControl addTarget:self action:@selector(pageControlClick:) forControlEvents:UIControlEventValueChanged];}      //监听方法实现-(IBAction)pageControlClick:(UIPageControl *)sender{      NSLog(@"%lu",sender.currentPage);}

3.通过KVC自定义UIPageControl

  • 由于pageControl的样式只有默认值为小圆点,我们有时可能需要自定义样式,在Xcode7以前我们可以在声明文件中找到UIPageControl的两个私有属性,Xcode7中由于苹果加强了封装性,看不到这些私有属性了

    UIImage* _currentPageImage;
    UIImage* _pageImage;

  • 通过设置这两个属性可以自定义样式,但是对象的私有属性我们不能直接访问,这个时候我们可以通过KVC机制来访问和设置私有属性的值

// 设置当前页标的图片[pageControl setValue:[UIImage imageNamed:@"current"] forKeyPath:@"_currentPageImage"];// 设置其他页标的图片    [pageControl setValue:[UIImage imageNamed:@"other"] forKeyPath:@"_pageImage"];
0 0
原创粉丝点击