UIScrollView 几乎所有的属性和方法
- (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 几乎所有的属性和方法的更多相关文章
- PHP 面向对象编程和设计模式 (2/5) - 静态变量、属性和方法及延迟绑定
PHP高级程序设计 学习笔记 2014.06.10 Static(静态)关键字用来定义静态方法和属性,static 也可用于定义静态变量以及后期静态绑定. 1.静态变量 static variable ...
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...
- String类型的属性和方法
× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已 ...
- python 类属性与方法
Python 类属性与方法 标签(空格分隔): Python Python的访问限制 Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外 ...
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
- UIKit的外观属性及方法汇总
本文授权转载,作者:楚天舒(简书) 开发中经常会碰到要设置UI的某个生僻的外观属性,虽然在头文件中都能查到,但一是每个控件的头文件比较分散繁杂,二是每个头文件里有太多不用到的方法和属性,所以这里将UI ...
- 理解JAVA - 面向对象(object) - 属性,方法
理解JAVA - 面向对象(object) - 属性,方法 多态的体现: 向上造型,父类接收子类对象:向上造型: 从父类角度看不到子类独有的方法:面向对象,人类认知世界的方式:生活中每天都 ...
- [OC][转]UITableView属性及方法大全
Tip: UITableView属性及方法大全 (摘录地址) p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 14.0px; font: 1 ...
- html5 audio的语法以及属性和方法
使用语法<audio src="song.mp3" controls="controls" loop="loop" autoplay= ...
随机推荐
- Windows内核进程管理器解析
Windows内核是如何实现线程挂起的?如何实现线程挂载到进程的?如何实现杀死进程和线程的? 从源码分析一下,这些操作具体在源码上是如何实现的. 进程创建.线程切换.线程跨越CPU权限级.进程挂靠.杀 ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- 洛谷 P1652圆 题解
题目传送门 这道题也就是考你对几何的了解: 圆与圆没有公共点且一个圆在另一个圆外面时,叫做圆与圆相离. 当圆心距大于两圆半径之和时,称为两圆外离: 当圆心距小于两圆半径之差的绝对值时,称为两圆内含. ...
- 用JDK自带的监控工具jconsole来监控程序运行
工具目录:C:\Program Files\Java\jdk1.6.0_06\bin\jconsole.exe 效果如下:监控类ThreadPoolExecutorTest 的运行 选择我们运行的程序 ...
- Js数组的常用的方法概述
学习JS的同学们,也曾对数组进行学习掌握,所以我也把数组中常用的方法列举下来,相互学习 不多废话,直接上正文 . 快乐的分割线... 一.对象继承的方法 数组是一种特殊 ...
- 创建数据模型(View Models )和监控属性(Observables)
Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. 声明式绑定 3. 模版机制 在本节中,我们将学习3个核心里面的第一个.但在这之前,先让我们学习一下MVVM设计模式和V ...
- VMware虚拟机VMware Authorization Service不能启动问题
出现VMware Authorization Service不能启动问题,注意要在安装VMware Player时使用管理员权限
- spring-cloud学习BUG小结
1.com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: c ...
- Learn to Create Everything In a Fragment Shader(译)
学习在片元着色器中创建一切 介绍 这篇博客翻译自Shadertoy: learn to create everything in a fragment shader 大纲 本课程将介绍使用Shader ...
- 【BZOJ 4171】 4171: Rhl的游戏 (高斯消元)
4171: Rhl的游戏 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 74 Solved: 33[Submit][Status][Discuss] ...