##DAY6 UIScrollView
##DAY6 UIScrollView
#pragma mark ———————UIScrollView———————————
属性:
contentSize 内容滚动范围
contentOffset 滚动视图的偏移量,如果不设置,默认开始是偏移(0,0)
contentInset 设置保留区域,在动态效果结束后,会在开头或结尾保留以下设置的值,UIEdgeInsetsMake(60, 0, 80, 0)
bounces 关闭滚动视图的回弹效果,默认开启
pagingEnabled 设置整页滚动,分页属性,是按照UIScrollView的frame的宽度分页的。
scrollEnabled 设置是否能滚动,默认YES
showsHorizontalScrollIndicator 关闭横向显示条
showsVerticalScrollIndicator 关闭竖向滚动条
tag tag值
delegate 设置滚动视图的代理
/*
如果想实现滚动视图的缩放功能,必须指定缩放的视图以及缩放的比例
指定缩放视图需要实现的代理方法,指定缩放比例,是为滚动设置缩放比例
*/
minimumZoomScale 最小缩放比例
maximumZoomScale 最大缩放比例
zoomScale 当前比例
代理中监控滚动的方法:
//滚动过程中触发的方法
scrollViewDidScroll:
//即将开始进行拖拽,此时的滚动视图即将加速
scrollViewWillBeginDragging:
//结束拖拽的方法,不再进行加速
scrollViewDidEndDragging:willDecelerate:
//即将开始减速
scrollViewWillBeginDecelerating:
//结束减速,停止滚动
scrollViewDidEndDecelerating:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
NSLog(@"结束减速");
// 先从负责滚动的⼤scrollView找到他的⼦视图
for (UIScrollView *sView in scrollView.subviews){
// 在根据⼦类的对象类型进⾏判断
if ([sView isKindOfClass:[UIScrollView class]]){
// 把视图的尺⼨恢复到原有尺⼨
sView.zoomScale = 1.0;
}
}
}
代理中监控视图缩放的方法:
//指定缩放视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return [scrollView.subviews firstObject];
//scrollView上还有两个子视图,横向指示器和纵向指示器
}
//结束缩放
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale{
NSLog(@"%@",NSStringFromCGSize(scrollView.contentSize));
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
UIImageView *imageView = [scrollView.subviews firstObject];
if (scrollView.zoomBouncing <= 1.0) {
imageView.center = CGPointMake(kWidth / 2, kHeight / 2);
}
}
#pragma mark -----pageControl与scrollView关联的方法,两个都要写----------
#pragma mark -----scrollView的方法----------
//在滚动视图停止滚动时,改变pageControl上面点的位置
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
//获取滚动视图当前偏移量
CGPoint offset = scrollView.contentOffset;
//计算偏移量与屏幕宽度的关系,也就是偏移了多少倍
NSInteger page = offset.x / kWidth;
//赋值
self.pageControl.currentPage = page - 1 < 0 ? 9 : page - 1;
}
#pragma mark -----pageControl的触发事件的方法----------
- (void)click:(UIPageControl *)page{
self.scrollView.contentOffset = CGPointMake(kWidth * (page.currentPage + 1), 0);
}
##DAY6 UIScrollView的更多相关文章
- 【原】Masonry+UIScrollView的使用注意事项
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...
- UIScrollView的封装
UIScrollView的封装 效果 特点 1.用法简单,尺寸大小,随意设置位置 2.可以有多个数据源的数据,可以定制不通的界面(如同上图,一个有文字,一个没有文字) 3.能够实现点击事件 用法 1. ...
- UI第十七节——UIScrollView
// 实例化一个ScrollView UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen main ...
- Python之路,Day6 - Python基础6
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- day6
开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...
- UI控件(UIScrollView)
@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //创建一个scrollview UIScrollV ...
- UIScrollView的delaysContentTouches与canCencelContentTouches属性
UIScrollView有一个BOOL类型的tracking属性,用来返回用户是否已经触及内容并打算开始滚动,我们从这个属性开始探究UIScrollView的工作原理: 当手指触摸到UIScrollV ...
- iOS 视图:重绘与UIScrollView(内容根据iOS编程编写)
我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import " ...
- 学习笔记之-------UIScrollView 基本用法 代理使用
//contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...
随机推荐
- css Block formatting context BFC
w3c关于BFC解释: http://www.w3.org/TR/CSS21/visuren.html#block-formatting Mdn描述: A block formatting conte ...
- 十几个remote control software
5 alternatives to LogMeIn Free for remote PC access VNC VNC, or Virtual Network Computing, isn’t its ...
- C语言数据结构----栈的应用(程序的符号匹配检测)
本节主要讲利用栈来实现一个程序中的成对出现的符号的检测,完成一个类似编译器的符号检测的功能,采用的是链式栈. 一.问题的提出以及解决方法 1.假定有下面一段程序: #include <stdio ...
- Saiku国际化总结
国际化步骤: 1.在mondrian.properties同路径下加上locale_zh_CN.properties资源文件,内容例如:schema.name.K12UserAnalysis=K12用 ...
- 一步一步学c#(四):继承
继承 1·继承的类型 在面向对象的编程中,有两种截然不同的继承类型,实现继承和接口继承. 实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数. 接口继承:表示一个类型只继承了函 ...
- 自学JavaScript的几个例子
学习了广泛使用的浏览器脚本JavaScript和HTML的DOM模型(也是用JavaScript实现),下面给出两个自己学习时的例子,具体JavaScript语法请参考W3C相关网页(http://w ...
- JavaScript引用类型之Array数组的排序方法
数组中已经存在两个JavaScript给我们定义好的重排序的方法:reverse()和sort()方法,下面来简单分析下: 1.reverse() 用于反转数组项的顺序,代码如下: <sc ...
- Java并发编程:Thread类的使用介绍
在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换,然后接着介绍Thread类中的方法的具体使用. 以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Thread类中 ...
- 搭建Hadoop集群 (三)
通过 搭建Hadoop集群 (二), 我们已经可以顺利运行自带的wordcount程序. 下面学习如何创建自己的Java应用, 放到Hadoop集群上运行, 并且可以通过debug来调试. 有多少种D ...
- $()和getElementById()的区别
jQuery的成功多归功于其强大的选择器. 然而,相信不少初学jQuery的同学都会遇到下面的问题. 在javascript下,我们可以根据getElementById()来获取页面元素.如下: va ...