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);
    }

  • 相关阅读:
    前端开发在手机UC浏览器上遇到的坑
    前端开发在uc浏览器上遇到的坑
    object-fit 解决图片指定大小被压缩问题
    前端新手需要注意的几个问题
    利用apache搭建本地环境
    有简历,为何还要自我介绍?
    移动端项目总结
    JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)
    Net Core 控制台程序使用Nlog 输出到log文件
    net core服务器缺包,如何在线安装?
  • 原文地址:https://www.cnblogs.com/happyEveryData/p/5520890.html
Copyright © 2011-2022 走看看