zoukankan      html  css  js  c++  java
  • UIPageViewController

    前言

    • iPhone 和 iPad 都是通过页控件来展示多个桌面,很多 App 在第一次使用时也会使用页控件来介绍自己的功能,页控件的交互效果非常好,适用于把几个简单的页面充分展示出来。

    1、UIPageControl 的创建

    // 实例化页控制器
    UIPageControl *pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 0, 300, 30)];
    
    // 添加到窗口中
    [self.view addSubview:pageControl];
    
    // 设置位置
    pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50);            
    // 设置个数
    pageControl.numberOfPages = 15;
    

    2、UIPageControl 的设置

    // 设置 frame
    /*
    高度设置无效
    */
    pageControl.frame = CGRectMake(10, 200, 10, 0);
    
    // 设置位置
    pageControl.center = CGPointMake(self.view.bounds.size.width / 2, self.view.bounds.size.height - 50);
    
    // 设置个数
    pageControl.numberOfPages = 15;
    
    // 设置颜色
    
    // 当前页面小圆点的颜色
    pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
    
    // 其它页面小圆点的颜色
    pageControl.pageIndicatorTintColor = [UIColor redColor];
    
    // 设置当前页
    /*
    设置高亮显示点
    */
    pageControl.currentPage = 0;
    
    // 设置只有一页时是否隐藏页码指示器
    /*
    default is NO
    */
    pageControl.hidesForSinglePage = YES;
    
    // 设置是否可点击
    /*
    点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应
    */
    pageControl.userInteractionEnabled = YES;
    
    // 添加点击触发事件 
    /*
    点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应
    */
    [pageControl addTarget:self action:@selector(pageControlClick:) forControlEvents:UIControlEventValueChanged];
    

    3、页控制器小圆点随视图滚动

    • 3.1 页控制器小圆点随视图滚动

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    
    	UIPageControl *pageControl = (id)[self.view viewWithTag:200];
    
    	// 计算当前页数
    	/*
    	小数四舍五入为整数:(int)(小数 + 0.5)
    	0.3 > (int)(0.3 + 0.5) > 0
    	0.6 > (int)(0.6 + 0.5) > 1
    	*/
    	int pageNum = (int)(scrollView.contentOffset.x / scrollView.frame.size.width + 0.5);
    
    	// 设置当前页
    	pageControl.currentPage = pageNum;
    }
    
    
    • 3.2 视图随页控制器小圆点滚动

    /*
    点击的是页控制器的左边或右边,依次左移或右移,具体点击某个点时没有反应
    */
    - (void)pageControlClick:(UIPageControl *)pageControl {
    
    	UIScrollView *scrollView = (id)[self.view viewWithTag:100];
    
    	// 计算点击的页面
    	CGFloat pageOffsetX = scrollView.frame.size.width * pageControl.currentPage;
    
    	// 设置 scrollView 的偏移量
    	scrollView.contentOffset = CGPointMake(pageOffsetX, 0);
    }
    
    
  • 相关阅读:
    微信公众号接口配置
    OFBIZ:启动之ContainerLoader
    OFBIZ:启动之StartupLoader
    Capture a Screen Shot
    在 Windows 上安装Rabbit MQ 指南
    Quartz.NET管理周期性任务
    使用Topshelf创建Windows服务
    Redirecting Console.WriteLine() to Textbox
    Greenplum 备忘
    CockroachDB 备忘
  • 原文地址:https://www.cnblogs.com/CH520/p/9413495.html
Copyright © 2011-2022 走看看