• UIPageControl


     UIPageControl类提供一行点来指示当前显示的是多页面视图的哪一页。当然,由于UIPageControl类可视样式的点击不太好操作,所以最好是确保再添加了可选择的导航选项,以便让页面控件看起来更像一个指示器,而不是一个控件。当用户界面需要按页面进行显示时,使用 UIPageControl控件将要显示的用户界面内容分页进行显示会使编程工作变得快捷。

          用户点击页面控件,会触发UIControlEventValueChanged事件,并启动设置为控件动作的任何方法。可以通过调用currentPage查询控件的新值,并通过调整numberOfPages属性设置可用的页面数。

    // 初始化页面控件
    pageControl.numberOfPages = 9;
    pageControl.currentPage = 0;

    [pageControl addTarget:self action:@selector(pageTurn) forControlEvents:UIControlEventValueChanged];
     
    - (void)pageTurn:(UIPageControl *)pageControl
    {
    CATransition *transition;
    int secondPage = [pageControl currentPage];
    if((secondPage - currentPage)>0)
    transition = [self getAnimation:@"fromRight"];
    else
    transition = [self getAnimation:@"fromLeft"];

    UIImageView *newView = (UIImageView *)[[contentView subviews] objectAtIndex:0];
    [newView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"ipad_wallpaperd.jpg",secondPage+1]]];
    [contentView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
    [[contentView layer] addAnimation:transition forKey:@"transitionView Animation"];

    currentPage = [pageControl currentPage];
    }
     

    结合ScrollView后关于UIPageControl的页面设置算法:

    // 在ScrollView的委托方法中

    int index = fabs(scrollView.contentOffset.x) / scrollView.frame.size.width;
    pageControl.currentPage = index;

    自定义之一:给UIPageControl控件添加背景

    View Code

     1 int pagesCount =5;
    2 UIPageControl *pageControl = [[UIPageControl alloc] init];
    3 pageControl.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height-15); // 设置pageControl的位置
    4 pageControl.numberOfPages = pagesCount;
    5 pageControl.currentPage = 0;
    6
    7 [pageControl setBounds:CGRectMake(0,0,16*(pagesCount-1)+16,16)]; //页面控件上的圆点间距基本在16左右。
    8 [pageControl.layer setCornerRadius:8]; // 圆角层
    9 [pageControl.setBackgroundColor:[UIColor clorWithWhite:0.0 alpha:0.2]];
    10 [self.view addSubview:pageControl];
  • 相关阅读:
    QuickSort(快速排序)原理及C++代码实现
    MergeSort(归并排序)原理及C++代码实现
    InsertionSort(插入排序)原理及C++代码实现
    基于STC89C516的多游戏实现
    环境变量之classpath配置和临时配置
    搭建Java开发环境之配置环境变量
    一本糊涂账项目
    获取目录-Winform
    读取注册表-64位
    拦截窗体关闭、最大、最小事件
  • 原文地址:https://www.cnblogs.com/dingfuyan/p/5210025.html
Copyright © 2020-2023  润新知