• ios UIScrollView


      用来实现 “滚动”和“缩放”

      一、简单使用步骤:

            (1)创建UIScrollView;

              (2) 添加子控件;

            (3)设置滚动区域

            注意:不能点击可能出现的情况

      设置滚动区域
     [scrollView setContentSize:self.btImage.frame.size];
    

      设置是否可以点击

     [scrollView setScrollEnabled:YES];
    

          设置是否可以交互

    scrollView.userInteractionEnabled=NO;
    

      没有取消autolayout功能,自动布局

        三、常见属性

          当UIScrollView内部的内容滚动时,相对于UIScrollView左上角的偏移:也可以手动设置

     scrollView setContentOffset:<#(CGPoint)#> //不带动画
    

      

     [scrollView setContentOffset:<#(CGPoint)#> animated:YES];//带动画
    

     

       设置是否需要弹簧效果:

     [scrollView setBounces:NO];
    

     

      隐藏指示器

        scrollView.showsVerticalScrollIndicator=NO;//隐藏垂直
        scrollView.showsHorizontalScrollIndicator=NO;//隐藏水平
    

     

     设置scrollView内边距:相当于给内容加了一个框

     [scrollView setContentInset:[UIEdgeInsetsMake(top, left, bottom, right)];
    

      

        获取控件的Y坐标的最大值:

     CGFloat cgFloat= CGRectGetMaxY(self.btImage.frame);
    

      

        四、代理滑动事件:

          1、滚动事件设置

      self.scrollView.delegate=self;//设置控制器
    
    @interface ViewController () <UIScrollViewDelegate>   //遵守协议
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView  //滚动过程事件

         

      

          2、缩放实现

              1)设置滚动事件

              2)写协议缩放方法

    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
        
        return self.image;//返回需要缩放的按钮
    }

             

              3)设置缩放的大小

      self.scrollView.minimumZoomScale=2.0;//缩小的比例
      self.scrollView.maximumZoomScale=4.0; //放大的比例

      五、滚动方法总结

             

    /**
     滚动
     */
    //用户在滚动的时候调用
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        
    }
    //用户在即将开始拖拽调用
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        
    }
    //用户在结束拖拽
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
        
    }
    
    /**
    缩放
    */
    //返回要进行缩放的控件,这个方法在控件创建的就会执行
    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
    
        return self.image;
    }
    
    //即将开始缩放的时候调用
    - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view{
        
    }
    //正在缩放的时候调用
    - (void)scrollViewDidZoom:(UIScrollView *)scrollView{
        
    }
    
    //缩放完毕的时候调用
    - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
    
    }

           六、实现自动分页           

     self.scrollView.pagingEnabled=YES;//根据scrollView自身的宽度来分页

         

          七、UIPageControl 指示器

        [self.pageControl setNumberOfPages:5];//设置点的总个数;
        [self.pageControl setCurrentPage:0];//设置当前选中的第几个点
        self.pageControl.hidesForSinglePage=YES;  //是否隐藏页码指示器
        self.pageControl.currentPageIndicatorTintColor=[UIColor redColor];//当前页面指示器颜色
        self.pageControl.pageIndicatorTintColor=[UIColor redColor];//其他页码颜色

          八、计时器

             1、NSTimer(时间间隔比较大) 1秒、几秒

             2、CADisplayLink (时间间隔比较小)0.0几秒

        //创建计时器
        NSTimer *timer= [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(banerImage) userInfo:nil repeats:YES];
        //销毁计时器:销毁计时器将不能使用,再次启动需要重新启动
        [timer invalidate];
        timer=nil;
        //设置计时器的优先级,获取消息对象
        NSRunLoop *runLoop=[NSRunLoop currentRunLoop];
        // 改变优先级  NSDefaultRunLoopMode://默认优先级  NSRunLoopCommonModes:指定和控件一样优先级
        [runLoop addTimer:timer  forMode:NSRunLoopCommonModes];

      

               

      

  • 相关阅读:
    C#练习3
    C#练习2
    C#环境变量配置及csc命令详解(转自cy88310)
    建站流程(转)
    C#练习
    程序竞赛1
    排序算法
    输出有向图的邻接矩阵
    C#高效分页代码(不用存储过程)
    存储过程详解
  • 原文地址:https://www.cnblogs.com/huihuizhang/p/12706618.html
Copyright © 2020-2023  润新知