zoukankan      html  css  js  c++  java
  • UIKit框架-高级控件:2.UIScrollView的单图分页设置

    在前面, 我们了解了UIScrollView的基本属性, 也知道了它运作之后的效果, 现在让我们来看看UIScrollView的其他更高级的功能, 那就是分页设置, 下面让我们来看看如何设置分页.



    1.设置全局变量:

    @interface ViewController ()
    {
        UIPageControl *_pageControl;
        UIScrollView *_scrollView;
    }
    @end
    



    2.在.h文件中设置UIScrollViewDelegate:

    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController <UIScrollViewDelegate>
    
    
    @end
    


    3.添加一个UIScrollView:

    #pragma mark - 添加ScrollView
    - (void)myScrollView
    {
        // 1.实例化ScrollView
        _scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 28, self.view.frame.size.width, self.view.frame.size.height)];
        [_scrollView setBackgroundColor:[UIColor grayColor]];
        
        // 2.设置ScrollView内容
        UIImage *image = [UIImage imageNamed:@"002.jepg"];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        [_scrollView addSubview:imageView];
        
        // 3.设置ScrollView属性
        [_scrollView setContentSize:image.size];
        [_scrollView setBounces:NO];
        [_scrollView setShowsHorizontalScrollIndicator:NO];
        
        // 4.ScrollView分页设置
        [_scrollView setPagingEnabled:YES];
        
        [self.view addSubview:_scrollView];
        
        // 设置ScrollView为代理
        [_scrollView setDelegate:self];
    }
    



    4.设置ScrollView的代理方法

    #pragma mark - 设置ScrollView代理方法
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
        NSInteger pageNo = scrollView.contentOffset.x / scrollView.bounds.size.width;
        
        [_pageControl setCurrentPage:pageNo];
    }
    


    5.添加pageControl

    - (void)myPageControl
    {
        // 1.添加分页控件
        _pageControl = [[UIPageControl alloc]init];
        
        // 1.1指定位置和大小
        [_pageControl setBounds:CGRectMake(0, 0, 150, 50)];
        [_pageControl setCenter:CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height - 50)];
        
        // 2.设置页面属性
        [_pageControl setNumberOfPages:2];
        [_pageControl setCurrentPage:0];
        
        [_pageControl setCurrentPageIndicatorTintColor:[UIColor redColor]];
        [_pageControl setPageIndicatorTintColor:[UIColor greenColor]];
        
        // 3.监听分页控制器的变化
        // PS: 第三个参数是ValueChanged
        [_pageControl addTarget:self action:@selector(updatePageChanged:) forControlEvents:UIControlEventValueChanged];
        
        [self.view addSubview:_pageControl];
    
    }
    


    6.添加pageControl的监听方法

    #pragma mark 分页控制器的监听方法
    - (void)updatePageChanged:(UIPageControl *)pageControl
    {
        CGFloat offsetX = pageControl.currentPage * _scrollView.bounds.size.width;
        
        [_scrollView setContentOffset:CGPointMake(offsetX, 0) animated:YES];
    }


    7.添加所有方法到viewDidload

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self myScrollView];
        [self myPageControl];
    }
    





    最后实现的效果:

      


    好了, 这次我们就讲到这里, 下次我们继续~~

  • 相关阅读:
    CentOS 7源码安装zabbix
    CentOS 7 yum安装Zabbix
    Centos 7配置LAMP
    Oracle 12c RMAN备份文档
    Oracle 12c: RMAN restore/recover pluggable database
    Oracle 12c利用数据泵DataPump进行Oracle数据库备份
    EBS测试环境DataGuard配置
    oracle数据库将一列的值拼接成一行,并且各个值之间用逗号隔开
    ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
    rman输出日志的几种方法(转)
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4333146.html
Copyright © 2011-2022 走看看