zoukankan      html  css  js  c++  java
  • UI控件篇——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_wallpaper%02d.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];



     

  • 相关阅读:
    .net里面实现javascript中的 escape 和 unescape 功能
    CMM/CMMI的5个等级
    数据库连接字符串大全
    关于ExtJS的许可协议
    C#网页自动登录和提交POST信息的多种方法
    [转]如何在网页中设置禁止查看源文件
    应用程序池的配置
    解决为应用程序池 提供服务的进程关闭时间超过了限制
    百度推出开放平台 或颠覆下载网站等六大行业
    UNION会自动删除重复项,union与union all的差异
  • 原文地址:https://www.cnblogs.com/lovecode/p/3224514.html
Copyright © 2011-2022 走看看