- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:kScreenBounds];
scrollView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:scrollView];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.backgroundColor = [UIColor blueColor];
button.frame = CGRectMake(, , kScreenWidth - , );
[scrollView addSubview:button];
// 1. 默认 CGSizeZero == CGSizeMake(0, 0)
// contentSize 设置可以滚动的范围
scrollView.contentSize = CGSizeMake(, );
// 2. 默认 CGPointZero
// contentOffset 偏移量, 滚动的位置
// 不设置contentSize, contentOffset也可以改变
// 问题: 改变contentOffset什么变了?
// 答案: 改变contentOffset, 实质上是对scrollView的bounds进行了改变.(改变子视图的坐标)
NSLog(@"scrollView frame is : %@", NSStringFromCGRect(scrollView.frame));
NSLog(@"scrollView bounds is : %@", NSStringFromCGRect(scrollView.bounds));
scrollView.contentOffset = CGPointMake(, );
NSLog(@"scrollView frame is : %@", NSStringFromCGRect(scrollView.frame));
NSLog(@"scrollView bounds is : %@", NSStringFromCGRect(scrollView.bounds));
// 3. contentInset
// 添加滚动区域四周的滚动范围
// UIEdgeInsets age = {10, 10, 10, 10};
scrollView.contentInset = UIEdgeInsetsMake(, , , );
// 4. directionalLockEnabled
// 锁定垂直或水平滚动(45度角, 锁会失效)
scrollView.directionalLockEnabled = YES;
// 5. bounces 回弹效果
// 边缘弹动动画关闭 NO
// scrollView.bounces = NO;
// 6. alwaysBounceVertical 在没有垂直方向的滚动范围时(0), 保证垂直方向的回弹效果
scrollView.alwaysBounceVertical = YES;
// 7. alwaysBounceHorizontal 在没有水平方向的滚动范围时(0), 保证垂直方向的回弹效果
scrollView.alwaysBounceHorizontal = YES;
// 8. pagingEnabled 按页滚动
scrollView.pagingEnabled = YES;
// 9. scrollEnabled 滚动视图能否滚动, 默认为YES, NO(不可以滚)
scrollView.scrollEnabled = YES;
// 10. showsHorizontalScrollIndicator 是否显示水平滚动指示器
scrollView.showsHorizontalScrollIndicator = YES;
// 11. showsVerticalScrollIndicator 是否显示垂直滚动的指示器
scrollView.showsVerticalScrollIndicator = YES;
// 12. 滚动指示器的边距
scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(, , , );
// 13. indicatorStyle 滚动指示器的颜色(深色背景丶浅色背景)
scrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
// 14.
// scrollView.tracking 用户有没有开始拖动
// scrollView.tracking
// scrollView.dragging 用户是否正在拖动
// scrollView.dragging
// scrollView.decelerating 是否减速中
// scrollView.decelerating
// 14. scrollsToTop 滚动视图, 双击状态栏手势是否存在
scrollView.scrollsToTop = NO;
// 15. 代理
scrollView.delegate = self;
// 16. 键盘消失模式(一般用这个UIScrollViewKeyboardDismissModeOnDrag)
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
// 测试:
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(, , kScreenWidth - , )];
textField.backgroundColor = [UIColor cyanColor];
[scrollView addSubview:textField];
// 17. 缩放系数
// 如果想进行视图放大缩小, 必须实现viewForZoomingInScrollview:
scrollView.minimumZoomScale = ;
scrollView.maximumZoomScale = ;
}
// 与其想要缩放的子视图绑定, scrollView的contentSize会跟随这个子视图改变
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return scrollView.subviews.firstObject;
}
// 滚动视图滚动, 就会执行
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
// tracking 用户触摸
if (scrollView.tracking) {
NSLog(@"正在拖动滚动");
} else {
NSLog(@"自己滚动中");
}
// dragging 用户开始滑动
if (scrollView.dragging) {
NSLog(@"");
}
// decelerating 用户触摸结束
if (scrollView.decelerating) {
NSLog(@"");
}
}
// 将要开始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
// NSLog(@"开始拖拽");
}
// 将要结束拖拽
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { }
// 将要开始进行减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
// NSLog(@"开始减速");
}
// 已经结束减速
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
//NSLog(@"结束减速");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

UIScrollView 几乎所有的属性和方法的更多相关文章

  1. PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定

    PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...

  2. 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间

    [源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...

  3. String类型的属性和方法

    × 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...

  4. python 类属性与方法

    Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...

  5. Node.js process 模块常用属性和方法

    Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...

  6. UIKit的外观属性及方法汇总

    本文授权转载,作者:楚天舒(简书) 开发中经常会碰到要设置UI的某个生僻的外观属性,虽然在头文件中都能查到,但一是每个控件的头文件比较分散繁杂,二是每个头文件里有太多不用到的方法和属性,所以这里将UI ...

  7. 理解JAVA - 面向对象(object) - 属性,方法

    理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...

  8. [OC][转]UITableView属性及方法大全

    Tip: UITableView属性及方法大全  (摘录地址) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 1 ...

  9. html5 audio的语法以及属性和方法

    使用语法<audio src="song.mp3" controls="controls" loop="loop" autoplay= ...

随机推荐

  1. 所有依赖的jar将提取到lib目录

    1.在pom.xml添加如下内容: <build> <plugins> <plugin> <artifactId>maven-dependency-pl ...

  2. vue引入自己写的js文件

    话不多说,直接上代码呀~ 先来个结构图: 中规中矩的vue-cli就写了一个自己的js文件 那么我想要引入到vue组件里. 1.首先写我的js文件 2.引入到vue组件!!!一定要用{}把方法名拿过来 ...

  3. 【51nod】1594 Gcd and Phi

    题解 跟随小迪学姐的步伐,学习一下数论 小迪学姐太巨了! 这道题的式子很好推嘛 \(\sum_{i = 1}^{n} \sum_{j = 1}^{n} \sum_{d|\phi(i),\phi(j)} ...

  4. 【洛谷】P4585 [FJOI2015]火星商店问题

    题解 题目太丧,OJ太没有良心,我永远喜欢LOJ! (TLE报成RE,垃圾洛谷,我永远喜欢LOJ) 好的,平复一下我debug了一上午崩溃的心态= =,写一写这道题的题解 把所有限制去掉,给出一个值, ...

  5. loadrunner乱码问题解决办法

    7.LoadRunner回放脚本时,在浏览器显示的中文是乱码 最近,遇到了好多乱码的问题,解决了一些,还有最后一个乱码,能想到的各种办法都试过了,还是不行,很奇怪啊. 解决这些乱码时,涉及到了http ...

  6. CSS3之背景定位原点background-origin

    背景定位原点background-origin是CSS3新添加的有关背景的属性,主要是改变背景起始的原点位置的.CSS3之背景定位原点background-origin的属性值有三个:border.p ...

  7. 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应 如果pytorch的编译时 ...

  8. Python学习之argparse

    http://www.2cto.com/kf/201412/363654.html https://docs.python.org/3.4/howto/argparse.html# 一.简介: arg ...

  9. GeneXus手机开发基础配置

    最近使用GeneXus15 U3版本做了几个手机端的项目,感觉还不错,开发速度很快,而且想要的功能也都实现了.其中有一些常用的配置和小技巧和大家分享一下. 基础环境要求 如果想开发Android程序, ...

  10. MAC OS 10.11.1虚拟机免费下载已安装Xcode7图片后有下载地址

    MAC OS 10.11.1虚拟机免费下载已安装Xcode7图片后有下载地址 注意:已经下载过MAC OS 10.10.5虚拟机免费下载(可安装Xcode7)链接:http://www.cnblogs ...