2.7 分页控制器——UIPageControl

分页视图是一种十分流行的界面设计模式,使用的场景也十分多,如新手引导页和广告轮播页等。UIPageControl是用于页码管理的一个UI控件,其表现形式是一行圆点,其中高亮的一个圆点标记当前所在的页码。使用Xcode开发工具创建一个名为UIPageControlTest的工程,在ViewController类的viewDidLoad方法中添加如下代码。

Swift语言版本:

         override func viewDidLoad() {
             super.viewDidLoad()
             self.view.backgroundColor = UIColor.black
             let page = UIPageControl(frame: CGRect(x: 20, y: 100, width: 280, height: 30))
             page.currentPageIndicatorTintColor = UIColor.red
             page.addTarget(self, action: #selector(changeNum), for: .valueChanged)
             page.numberOfPages = 8
             self.view.addSubview(page)
         }

Objective-C语言版本:

        - (void)viewDidLoad {
            [super viewDidLoad];
            self.view.backgroundColor = [UIColor blackColor];
            UIPageControl * page = [[UIPageControl alloc]initWithFrame:CGRectMake(20, 100, 280, 30)];
            page.currentPageIndicatorTintColor = [UIColor redColor];
            [page addTarget:self action:@selector(changeNum:) forControlEvents:UIControlEventValueChanged];
            page.numberOfPages = 8;
            [self.view addSubview:page];
        }

将当前视图的背景颜色设置为黑色便于进行效果的演示,UIPageControl的currentPageIndicatorTintColor属性用于设置高亮页码点的颜色,numberOfPages属性用于设置页码数量。运行工程,效果如图2-27所示。

图2-27 UIPageControl

在单击UIPageControl控件的左半边时,页码点会向左移动,单击UIPageControl的右半边时,页码点会向右移动。在单击UIPageControl控件的同时也会触发交互方法,交互方法的实现如下,这里打印了当前的页码数(从0开始)。

Swift语言版本:

            func changeNum(page:UIPageControl)  {
                print(page.currentPage)
            }

Objective-C语言版本:

        -(void)changeNum:(UIPageControl *)page{
            NSLog(@"%lu", page.currentPage);
        }