UIScrollView的大全

时间:2022-09-17 16:48:54

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大小
*/

UIScrollView的大全的更多相关文章

  1. 第二、UIScrollView的使用大全

    UIScrollView UIPageControl 的使用 2011-11-19 16:48 4690人阅读 评论(0) 收藏 举报 imagescrollspringiphone // //    ...

  2. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  3. IOS控件大全及控件大小

    一 视图UIView和UIWindow iphone视图的规则是:一个窗口,多个视图.UIWindow相当于电视机,UIViews相当于演员. 1.显示数据的视图 下面几个类可在屏幕上显示信息: UI ...

  4. iOS常用第三方库大全,史上最全第三方库收集

    下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableVie ...

  5. iOS 资源大全整理

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  6. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  7. 开源 iOS 项目分类索引大全 - 待整理

    开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...

  8. .NET Core dotnet 命令大全

    dotnet 命令大全,让你理解dotnet 命令. 本文将以一个实例串起 dotnet 所有命令,让你玩转dotnet 命令. 本篇文章编写环境为windows 10 ,dotnet 命令同样适用于 ...

  9. Python 资源大全中文版

    Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...

随机推荐

  1. js 判断数据类型的方法及实现

    转载自 http://blog.csdn.net/xujiaxuliang/archive/2009/10/21/4708353.aspx null 与 undefined 区别: null 是js的 ...

  2. openId 列表

    http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html 根据OpenID列表群发[订阅号不可用,服务号认证后可用] ...

  3. c++异常详解

    一.什么是异常处理 一句话:异常处理就是处理程序中的错误. 二.为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在<The C++ Programming ...

  4. Django之Model世界

    Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数 ...

  5. &OpenCurlyDoubleQuote;乐”动人心--2017年10款最佳音乐类APP设计盘点

    在上下班的路上,听几首自己喜欢的音乐来打发无聊的等公交车和地铁的时间是现代年轻人的常态.音乐作为最能鼓动人心的"语言",也成为了人们在互联网生活里占比例最高的消费活动之一,一款好看 ...

  6. TypeScript 的声明文件的使用与编写

    https://fenying.net/2016/09/19/typings-for-typescript/ TypeScript 是 JavaScript 的超集,相比 JavaScript,其最关 ...

  7. 将IP转换为16进制,用于IPv4-IPv6

    # --*-- coding: utf-8 --*--# create by xiaocaiji while 1: str_ip = input("input a IP:") li ...

  8. Android 目前最稳定和高效的UI适配方案

    Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解.刚好,近期准备对糗事百科Android客户端设计 ...

  9. HDU 5727 - Necklace - &lbrack;全排列&plus;二分图匹配&rsqb;&lbrack;Hopcroft-Karp算法模板&rsqb;

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 Problem DescriptionSJX has 2*N magic gems. ...

  10. C&num;中获取用户登录IP地址

    using System.Net; //导入命名空间 public string getLocalIP() { string strHostName = Dns.GetHostName(); //得到 ...