zoukankan      html  css  js  c++  java
  • 三个ImageView 实现无线轮播 方法

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        //开始滚动,判断位置,然后替换复用的三张图
        [self changeImageWithOffset:scrollView.contentOffset.x];
    }
    
    - (void)changeImageWithOffset:(CGFloat)offsetX
    {
        if (offsetX >= ScrollWidth * 2)
        {
            _currentIndex++;
            
            if (_currentIndex == _MaxImageCount-1)
            {
                [self changeImageLeft:_currentIndex-1 center:_currentIndex right:0];
                
            }else if (_currentIndex == _MaxImageCount)
            {
                
                _currentIndex = 0;
                
                [self changeImageLeft:_MaxImageCount-1 center:0 right:1];
                
            }else
            {
                [self changeImageLeft:_currentIndex-1 center:_currentIndex right:_currentIndex+1];
            }
            _PageControl.currentPage = _currentIndex;
            
        }
        
        if (offsetX <= 0)
        {
            _currentIndex--;
            
            if (_currentIndex == 0) {
                
                [self changeImageLeft:_MaxImageCount-1 center:0 right:1];
                
            }else if (_currentIndex == -1) {
                
                _currentIndex = _MaxImageCount-1;
                [self changeImageLeft:_currentIndex-1 center:_currentIndex right:0];
                
            }else {
                [self changeImageLeft:_currentIndex-1 center:_currentIndex right:_currentIndex+1];
            }
            
            _PageControl.currentPage = _currentIndex;
        }
    }
    
    #pragma mark - 给复用的imageView赋值
    
    - (void)changeImageLeft:(NSInteger)LeftIndex center:(NSInteger)centerIndex right:(NSInteger)rightIndex
    {
        if (_isNetworkImage)
        {
            
            [_leftImageView sd_setImageWithURL:[NSURL URLWithString:_imageArray[LeftIndex]] placeholderImage:_placeholderImage];
            [_centerImageView sd_setImageWithURL:[NSURL URLWithString:_imageArray[centerIndex]] placeholderImage:_placeholderImage];
            [_rightImageView sd_setImageWithURL:[NSURL URLWithString:_imageArray[rightIndex]] placeholderImage:_placeholderImage];
            
        }else
        {
            _leftImageView.image = _imageArray[LeftIndex];
            _centerImageView.image = _imageArray[centerIndex];
            _rightImageView.image = _imageArray[rightIndex];
        }
        
        [_scrollView setContentOffset:CGPointMake(ScrollWidth, 0)];
    }
    
  • 相关阅读:
    使用 virtualenv/venv 和 pip 管理虚拟环境
    Python:virtualenv 和 venv 的区别
    Python | Get unique values from a list
    Python ORM 框架 Peewee 知识点
    python之配置日志的几种方式
    python 中的 None,知识点
    Gunicorn 知识点
    gunicorn部署flask的log处理
    Python 逻辑运算符(and、or、not)、成员运算符(in、not in)、身份运算符(is、is not)
    Python 中没有 null,用 None 表示
  • 原文地址:https://www.cnblogs.com/mkai/p/6404635.html
Copyright © 2011-2022 走看看