zoukankan      html  css  js  c++  java
  • scrollerView 滚动的时候改变 scrollerView 的背景色代码

    要实现点击电池条的时候立即回到页面的顶部的时候注意:
    

    只有当一个主控制器有一个scrollview 并把这个属性设置为yes,其他的scrollview.scrollsToTop = NO 这样才会响应这个事件,原理很简单,如果有2个scrollview,系统根本不知道你需要哪个滚动到最上面 切记!

    滑动页面的时候,改变scrollerView 的背景色:
    
    1、遵循协议:<UIScrollViewDelegate>
    
    
    2、写成私有变量
        // 优化页面的拖拽的时候使用
        CGFloat _contentOffsetY;
        CGFloat _oldContentOffsetY;
        CGFloat _newContentOffsetY;
    
    3、执行方法
    #pragma mark—————— 优化页面的拖拽的时候使用(开始)
    // 开始拖拽页面
    -(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        _contentOffsetY = scrollView.contentOffset.y;
        if (_contentOffsetY <= 0) {//确保在向上快拖的时候,底部色值不抖动
           
            scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
            //NSLog(@"
    
     %s  【_contentOffsetY】= %.2f 
    ",__FUNCTION__,_contentOffsetY);
        }
    }
    //滚动时候调用该方法(手指离开屏幕后)
    -(void)scrollViewDidScroll:(UIScrollView *)scrollView{
       
        _newContentOffsetY = scrollView.contentOffset.y;
       
        // 滚动
        if (_newContentOffsetY > _oldContentOffsetY && _oldContentOffsetY > _contentOffsetY) { // 向上滚动
             if (_newContentOffsetY > 0) {// 确保,上下抖动的时候,顶部不抖色
               scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
             }
           
        } else if (_newContentOffsetY < _oldContentOffsetY && _oldContentOffsetY < _contentOffsetY) { // 向下滚动
            if (_newContentOffsetY < 0) {// 确保,上下抖动的时候,底部不抖色
    
              scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
              //NSLog(@"
    
     %s 
    ",__FUNCTION__);
            }
           
        }
       
        // 拖拽
        if (scrollView.dragging) {
            if ((scrollView.contentOffset.y - _contentOffsetY) > 5.0f) { // 向上拖拽
               
                //NSLog(@"
    
     %s 【_newContentOffsetY】 = %.2f 
    ",__FUNCTION__,_newContentOffsetY);
                if (_newContentOffsetY > 0) {// 确保,上下抖动的时候,顶部不抖色
                  scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
                }
               
            } else if ((_contentOffsetY - scrollView.contentOffset.y) > 5.0f) { // 向下拖拽
               
                if (_newContentOffsetY < 0) {// 确保,上下抖动的时候,底部不抖色
                   scrollView.backgroundColor = K_SET_COLOR_VALUE(K_NAV_BGC);
                //NSLog(@"
    
     %s 
    ",__FUNCTION__);
                }
               
            }
        }
    }
    // 确实结束减速
    -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
       
        //NSLog(@"
    
    【_newContentOffsetY】 =  %.2f 
    ",_newContentOffsetY);
        if (_newContentOffsetY > 0) {//确保在向上快拖的时候,顶部色值不抖动
           
            scrollView.backgroundColor = K_SET_COLOR_VALUE(K_ROOT_BGC);
        }
        _newContentOffsetY = 0.0f;
    }
    
    // 完成拖拽(滚动停止时,调用此方法,手指离开屏幕前)
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    
        _oldContentOffsetY = scrollView.contentOffset.y;
       
    }
    #pragma mark—————— 优化页面的拖拽的时候使用(结束)
  • 相关阅读:
    退出状态、测试(test or [])、操作符、[]与[[]]区别
    shell中$(( ))、$( )、``与${ }的区别
    正则表达式
    vim常用快捷键
    hadoop综合大作业
    分布式文件系统HDFS 练习
    安装Hadoop
    Hadoop综合大作业
    分布式文件系统HDFS 练习
    安装hadoop
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4943481.html
Copyright © 2011-2022 走看看