##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的更多相关文章

  1. 【原】Masonry+UIScrollView的使用注意事项

    [原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...

  2. UIScrollView的封装

    UIScrollView的封装 效果 特点 1.用法简单,尺寸大小,随意设置位置 2.可以有多个数据源的数据,可以定制不通的界面(如同上图,一个有文字,一个没有文字) 3.能够实现点击事件 用法 1. ...

  3. UI第十七节——UIScrollView

    // 实例化一个ScrollView    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen main ...

  4. Python之路,Day6 - Python基础6

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  5. day6

    开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568 ...

  6. UI控件(UIScrollView)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //创建一个scrollview UIScrollV ...

  7. UIScrollView的delaysContentTouches与canCencelContentTouches属性

    UIScrollView有一个BOOL类型的tracking属性,用来返回用户是否已经触及内容并打算开始滚动,我们从这个属性开始探究UIScrollView的工作原理: 当手指触摸到UIScrollV ...

  8. iOS 视图:重绘与UIScrollView(内容根据iOS编程编写)

    我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import " ...

  9. 学习笔记之-------UIScrollView 基本用法 代理使用

    //contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...

随机推荐

  1. JavaEE Tutorials (17) - Java消息服务示例

    17.1JMS示例概述23317.2编写简单的JMS应用233 17.2.1启动JMS提供者234 17.2.2创建JMS受管理对象234 17.2.3构建所有简单示例235 17.2.4发送消息23 ...

  2. Android自定义View研究--View中的原点坐标和XML中布局自定义View时View触摸原点问题

    这里只做个汇总~.~独一无二 文章出处:http://blog.csdn.net/djy1992/article/details/9715047 Android自定义View研究--View中的原点坐 ...

  3. js完美继承代码示例

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Swift初体验(三)

    /*******************************************************************************/ // 协议 protocol Des ...

  5. Effective C++ Item 36 绝不又一次定义继承而来的 non-virtual 函数

    本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:绝对不要又一次定义继承而来的 non-virtual 函数 --> Item 7 ...

  6. HDOJ2031进制转换

    项目做久了,我发现自己对代码的实现能力越来越差劲了!经过前一段时间找工作的经历就能够明显感觉的到自己的代码熟练度不够!因此,今后要多加练习.要想做好一个优秀的程序猿就要多写程序,多思考. ★结题思路 ...

  7. Eclipse debug ‘Source not found’

    用Eclispe进行Debug时一直被一个问题所困扰:Source not found. 问题产生的原因是调试进入了一个没有源代码的jar包里. 简短说明: Edit Source Lookup Pa ...

  8. Android之单击返回键两次退出

    private static Boolean isExit = false;        private static Boolean hasTask = false;        Timer t ...

  9. javaScript 工作必知(七) 对象继承

    对象继承inherit var o = { r: 1 }; var c = function f() { }; c.prototype = o; c.r = 3; alert(o.r);//被继承的属 ...

  10. 从文档流来看内联元素和块元素的css排版

    veda原创[抄录]讲得很好存自己这里看 从文档流来看内联元素和块元素的css排版 CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的 ...