zoukankan      html  css  js  c++  java
  • UIScrollView和UIPageControl结合使用

    @interface YSWeiBoExpressionView ()<UIScrollViewDelegate>
    /** 表情scrollecView */
    @property (nonatomic, weak) UIScrollView *expressionScrollView;
    /** pageControll */
    @property (nonatomic, weak) UIPageControl *expressionPageControl;
    @end

    #pragma mark - Controll
    - (UIScrollView *)expressionScrollView
    {
        if (!_expressionScrollView)
        {
            UIScrollView *expressionScrollView = [[UIScrollView alloc] init];

            expressionScrollView.backgroundColor = [UIColor grayColor];
            
            expressionScrollView.opaque = YES;
            expressionScrollView.pagingEnabled = YES;
            expressionScrollView.showsHorizontalScrollIndicator = NO;
            expressionScrollView.showsVerticalScrollIndicator = NO;
            expressionScrollView.delegate = self;

            self.expressionScrollView = expressionScrollView;
            [self addSubview:expressionScrollView];
        }
        return _expressionScrollView;
    }

    - (UIPageControl *)expressionPageControl
    {
        if (!_expressionPageControl)
        {
            UIPageControl *expressionPageControl = [[UIPageControl alloc] init];

            expressionPageControl.backgroundColor = [UIColor yellowColor];
            expressionPageControl.pageIndicatorTintColor = [UIColor whiteColor];
            expressionPageControl.currentPageIndicatorTintColor = [UIColor orangeColor];

            expressionPageControl.userInteractionEnabled = NO;
            expressionPageControl.hidesForSinglePage = YES; // 单页隐藏
            
            self.expressionPageControl = expressionPageControl;
            [self addSubview:expressionPageControl];
        }
        return _expressionPageControl;
    }

    #pragma mark - Layouts
    - (void)layoutSubviews
    {
        [super layoutSubviews];
        
        self.expressionPageControl.width = self.width;
        self.expressionPageControl.height = 35;
        self.expressionPageControl.x = 0;
        self.expressionPageControl.y = self.height - self.expressionPageControl.height;
        
        self.expressionScrollView.width = self.width;
        self.expressionScrollView.height = self.expressionPageControl.y;
        self.x = 0;
        self.y = 0;
        
        NSInteger pageCount = self.expressionScrollView.subviews.count;
        
        for (int i = 0; i < pageCount; i++)
        {
            YSWeiBoExpressionEmojiView *emotionsPageView = self.expressionScrollView.subviews[i];
            
            emotionsPageView.width = self.expressionScrollView.width;
            emotionsPageView.height = self.expressionScrollView.height;
            emotionsPageView.x = emotionsPageView.width * i;
            emotionsPageView.y = 0;
        }
        
        self.expressionScrollView.contentSize = CGSizeMake(pageCount * self.expressionScrollView.width, 0);
        

    }

    #pragma mark - UIScrollViewDelegate
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        double pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width;
        self.expressionPageControl.currentPage = (int)(pageNumber + 0.5);
    }

  • 相关阅读:
    计算机基础知识
    测试用例设计
    Windows MySql增量备份、完整备份采坑之路
    GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系
    GOF 的23种JAVA常用设计模式总结 01 设计模式的概念分类和功能
    Springboot 整合ApachShiro完成登录验证和权限管理
    玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务
    玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现
    玩转Spring全家桶笔记 02 那些好用的连接池HikariCP
    Springboot token令牌验证解决方案 在SpringBoot实现基于Token的用户身份验证
  • 原文地址:https://www.cnblogs.com/happyEveryData/p/5520890.html
Copyright © 2011-2022 走看看