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(10, 10, kScreenWidth - 20, 100);
    [scrollView addSubview:button];
    // 1. 默认 CGSizeZero == CGSizeMake(0, 0)
    // contentSize 设置可以滚动的范围
    scrollView.contentSize = CGSizeMake(1000, 1000);
    // 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(0, 500);
    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(10, 10, 10, 10);
    // 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(0, 100, 0, 0);
    // 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(10, 300, kScreenWidth - 20, 200)];
    textField.backgroundColor = [UIColor cyanColor];
    [scrollView addSubview:textField];
    // 17. 缩放系数
    // 如果想进行视图放大缩小, 必须实现viewForZoomingInScrollview:
    scrollView.minimumZoomScale = 2;
    scrollView.maximumZoomScale = 6;
}
// 与其想要缩放的子视图绑定, 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.
}
时间: 2024-10-10 09:00:49

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

UIScrollView 的常用属性和方法

1.继承关系:UIView -> UIResponder -> NSObject2.代理:UIScrollViewDelegate// *2.1 一但偏移量发生变化就会调用  - (void)scrollViewDidScroll:(UIScrollView *)scrollView;// *2.2 将要缩放时就return谁   2.2.1 由于要缩放内容,我们需要设置最大和最小的缩放比例    scrollView.minimumZoomScale = 1.0f;    scrollVie

让IE浏览器支持CSS3圆角属性的方法

如果要想在IE浏览器中实现圆角的效果,我们一般都会采用圆角图片的方式.用图片的话,基本就跟浏览器没有多大关系了,因为任何浏览器都支持这种方式.今天我们主要是讲解如果用CSS3样式表来实现圆角效果,值得注意的是,IE6/7/8这三个IE浏览器版本都不支持CSS3的解析,只有还不太主流的IE9支持CSS3和HTML5的标准.让IE支持CSS3的解析方法有很多种,(HTML5 Shiv – 让该死的IE系列支持HTML5吧)下面介绍一种实用的让IE支持CSS3解析的方法——IE利用VML矢量可标记语言

JavaScript原生对象属性和方法详解——Array对象 转载

length 设置或返回 数组中元素的数目. 注意:设置 length 属性可改变数组的大小.如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失.如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined.所以length不一定代表数组的元素个数. var arr = new Array(3) arr[0] = "John" arr[1] = "Andy" arr[2] = "Wendy" cons

动态创建html内容时所用的W3C DOM属性和方法

document的属性和方法:  document.createElement(tagName) :文档对象上的createElement方法可以创建由tagName指定的元素.如果以串div作为方法参数,就会生成一个div元素.  document.createTextNode(text) :文档对象的createTextNode方法会创建一个包含静态文本text的文本节点.  document.createAttribute(): 用指定的名字创建新的Attr节点.  document.cr

jQuery事件对象的属性和方法

jQuery事件对象的属性和方法 事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别 event.type:获取事件的类型 触发元素的事件类型 $("a").click(function(event) { alert(event.type); // "click"事件 }); event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(

JavaScript document属性和方法

JavaScript document属性和方法 --------------------------------------------属性: 1. Attributes     存储节点的属性列表(只读) 2. childNodes     存储节点的子节点列表(只读) 3 .dataType     返回此节点的数据类型 4. Definition     以DTD或XML模式给出的节点的定义(只读) 5. Doctype     指定文档类型节点(只读) 6 .documentEleme

关于JavaScript的对象,属性,方法的一些理解和认识。

对象      万物皆对象,所谓的对象,就是一个实体,一个物体,对象一定是有一个名字的, 在JavaScript中有很多很多对象,这些对象天生就存在在JavaScript中,比如document就是一个对象,window也是对象.     JavaScript想调用一个对象,非常的简单,直接打它的名字即可.     在JavaScript中,每个对象是负责不一样的事情.    document负责一切和文档相关的事情:window负责一切和浏览器窗口相关的事情:console负责一切和控制台相关

JavaScript设置获取和设置属性的方法

这篇文章主要介绍了JavaScript设置获取和设置属性的方法,学会使用getAttribute.setAttribute的用法,需要的朋友可以参考下 getAttribute 该方法用来获取元素的属性,调用方式如下所示: 复制代码代码如下: object.getAttribute(attribute) 以此前介绍的一些方法不同,getAttribute方法不属于document对象,所以不能通过document对象调用.它只能通过元素节点对象来调用. 该方法只接受一个参数,你指定要查询的属性的

js公有、私有、静态属性和方法的区别

现下,javascript大行其道,对于网站开发人员来说,javascript是必需掌据的一门语言,但随着jquery等框架的流行和使用,许多人 对于原生javascript缺乏深入的理解,习惯了函数式的编辑风格,对于闭包.原型总是说不清道不明.对于js面向对象蹩脚的用着,而要了解js面向 对象,就必需先了解js中什么是公有方法.特权方法.静态方法 公有属性和公有方法 function User(name,age){ this.name = name;//公有属性 this.age = age;