• UIScrollView的大全


    UIScrollView是iOS中提供滚动控件,用于解决当内容区域大于可视区域时不能完全查看的问题,UISrollView就可提供滑动方式查看全部内容,UISrollView是所有滚动视图的基类,后期我们要学习UItableView(表示图)和UIColltionView(集合视图)

    //1创建UISrollView对象
        UIScrollView *scroll = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 30, kScreenwidth - 20 *2 , KScreenheight - 30 *2)];
        
        //2配置属性
        scroll.backgroundColor =[UIColor greenColor];
        //2.2设置内容区域的大小
        ///可以同控制区域的大小设定滚动方向,当内容区域的宽小于等于可视区域的宽不能左右滚动,当内容区域高小于与等于不能上下滚动
    #pragma mark -- 重要属性
        scroll.contentSize = CGSizeMake(280, 508);
        //2.3设置内容区域的偏移量(bounds位置)
        scroll.contentOffset = CGPointMake(0, 0);
        //X增大向左偏 X减小向右偏 Y增大向上篇 Y减小向下篇偏
        //2.4设置释放显示滚动条
        //是否显示水平方向的滚动条
        scroll.showsHorizontalScrollIndicator = YES;
        //是否显示竖子方向的滚动条
        scroll.showsVerticalScrollIndicator = YES;
        //2.5设置滚动条的样式
        scroll.indicatorStyle =UIScrollViewIndicatorStyleBlack;
        //2.6设置scrollEnabled能否滚动
        scroll.scrollEnabled = YES;
        //2.7设置方向锁滚动时只支持一个滚动方向
    //    scroll.directionalLockEnabled = YES;
        //2.8设置是否有弹簧效果
        scroll.bounces = YES;
        //2.9当内容区域小于或等于可视区域的时候,是否依然有弹簧效果
        scroll.alwaysBounceHorizontal = YES;
        scroll.alwaysBounceVertical = YES;
        //2.10设置点击状态栏时候回到顶部,其实内部操作把Y轴的偏移量置为零
        scroll.scrollsToTop = YES;
        //2.11设置代理属性
        scroll.delegate = self;
        //2.12是否整页滚动
        scroll.pagingEnabled = NO;
        //2.13要缩放UIScollview的子视图,必须要设定最大,最小的缩放比例
        scroll.minimumZoomScale = 0.5;
        scroll.maximumZoomScale = 2.0;
        //3.添加到父视图
        [self.view  addSubview:scroll];
        
        //4.释放
        [scroll release];

    #pragma mark -- UIScollView的代理方法
    //1触发时机:只要UIScollview滚动这个方法就一直被触发,会触发N次
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
        NSLog(@"滚着呢滚着呢");
    }
    // 2 触发时机:缩放的过程一直会被触发
    - (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    }
    //3触发时机:UIScollview将要开始拖拽的时候被触发(此时是手指刚刚开始移动的时候)
    - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
        NSLog(@"将要开始拖了");
    }
    //4触发时机:UIScollview将要结束拖拽的时候触发
    - (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
        NSLog(@"将要脱完了");
    }
    //5触发时机:UIScollview结束拖拽
    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
        NSLog(@"拖完了");
    }
    //6触发时机:将要减速的时候触发(但是次方法不一定触发,如果每次都要触发这个方法把pageEnable置为YES)
    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
        NSLog(@"将要开始减速");
    }
    //7触发时机:结束的时候会被触发(此方法也不一定被触发      VIP)
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
        NSLog(@"减速结束");
        //都是在这方法中获取到固定的内容区域偏移量
        NSLog(@"%@",NSStringFromCGPoint(scrollView.contentOffset));
    }
    //8触发时机:UIScollview结束滚动 且结束减速是带有动画效果,此方法才会被触发,没有动画不会被触发
    - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
        
    }
    //9触发时机:触发时机:缩放视图的时候触发,返回缩放后的视图,而且这个视图必须是UIScollview上,也就是视图必须得UIScollview子视图
    - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
        
        NSLog(@"返回缩放视图");
        return [scrollView viewWithTag:100];
    }
    //10触发时机:将要开始缩放的时候触发
    - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
        NSLog(@"将要开始缩放");
    }
    //11触发时机:结束缩放的时候触发
    - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
        NSLog(@"结束缩放");
    }
    //12触发时机:点击状态条的被触发,能触发的前提ScollviewToTop
    - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
        NSLog(@"能回到顶部");
        return YES;
    }
    //13:触发时机:UIScollview已经活到顶部
    - (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView  {
        NSLog(@"已经回到头部");
    }
    /*UIScollview的总结代理方法中比较重要的方法scrollViewDidEndDecelerating:在这个方法中 我们能拿到偏移量  
     scrollViewDidZoom:在这个方法中能实时拿到contentSize大小
    */



    梦想不是挂在嘴边炫耀的空气,而是需要认真的实践,等到对的风,我们展翅翱翔;没有风,只要拥有足够强壮的翅膀,我们照样拔地飞行。天空见。
  • 相关阅读:
    Android播放器实现视频窗口实时放大缩小功能
    Spydroid还是大牛直播内置RTSP服务SDK
    安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流
    mingw64+msys2下使用cmake问题
    h264, h265 和 libvpx 比较(h264/avc, hevc 和vp9比较)
    直播协议的选择:RTMP vs. HLS
    如何推送和播放RTMP H265流 (RTMP HEVC)
    如何支持RTSP播放H.265(HEVC)流
    如何实现RTSP推送H.264、RTSP推送H.265(hevc)
    rtmp/rtsp/hls公网测试地址
  • 原文地址:https://www.cnblogs.com/size/p/5031199.html
Copyright © 2020-2023  润新知