UIScrollView滚动

三大属性:

self.scrollView.pageEnabled = NO  是否分页;n只要将UIScrollView的pageEnabled属性设置为YES,UIScrollView会被分割成多个独立页面,里面的内容就能进行分页展示

contentSize    设置的是要展示的内容的大小  size(如果小于scrollView的frame将无法滚动)
contentInset  是在contentSize的基础上额外增加的滚动区域 
//self.scrollView.contentInset = UIEdgeInsetsMake(上,左, 下,右)
设置scrollView的frame  是scrollView的可视范围
contentOffset 是scrollView 滚动的位置(相对于整个内容(contentSize)的左上角为原点 )
    // 设置最大和最小的缩放比例
    self.scollView.maximumZoomScale = 2.0;
    self.scollView.minimumZoomScale = 0.2;
 
UIScrollViewDelegate  代理方法
 
//使用捏合手势的时候调用
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
 //将要进行缩放的时候
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
//结束缩放时调用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
   - (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

{    只要一次拖拽没有结束,就不会再调用.一次拖拽,只会调用一次
    NSLog(@"---开始拖拽-----");
}

 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   只要是在滚动,就会一直调用整个方法
            NSLog(@"----正在滚动----");
}
 
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{   一次拖拽,只会调用一次
    NSLog(@"-----已经结束拖拽-----“);
}
 
  如果UIScrollView无法滚动,可能是以下原因:
  没有设置contentSize
  scrollEnabled = NO
  没有接收到触摸事件:userInteractionEnabled = NO
  没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)
    
  @property(nonatomic) BOOL bounces;
  设置UIScrollView是否需要弹簧效果
  @property(nonatomic,getter=isScrollEnabled) BOOL scrollEnabled;
  设置UIScrollView是否能滚动

@property(nonatomic) BOOL showsHorizontalScrollIndicator;
  是否显示水平滚动条

@property(nonatomic) BOOL showsVerticalScrollIndicator;
  是否显示垂直滚动条

 
      
       缩放实现步骤
  1.设置UIScrollView的id<UISCrollViewDelegate> delegate代理对象
  2.设置minimumZoomScale :缩小的最小比例
  3.设置maximumZoomScale :放大的最大比例
  4.让代理对象实现下面的方法,返回需要缩放的视图控件

- (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView;

跟缩放相关的其他代理方法
  缩放完毕的时候调用
  - (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view 
  正在缩放的时候调用
  - (void)scrollViewDidZoom:(UIScrollView *)scrollView

UIKit - scrollView缩放、滚动的更多相关文章

  1. 封装scrollView 循环滚动,tableViewCell(连载) mvc

    封装 封装 封装 ... 封装的重要性太重要了 给大家在送点干货 从一个项目中抽取出来的.和大家一起分享 封装scrollView 循环滚动.tableViewCell(连载) 明天还会更新 tabl ...

  2. 触摸点为scrollview上的子控件时,scrollview不能滚动(iOS8)

    现象:在iOS8上,scrollview上面布局了多行多列的button,滑动scrollview,如果当触摸点是在按钮上,scrollview不能滚动. 例如: 解决方法:设置scrollview的 ...

  3. 解决scrollview不滚动

    scrollView不滚动的时候 试试这个,有时候药到病除:

  4. 监视scrollview是否滚动到底

    //监视scrollview是否滚动到底 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ [refreshHeaderViewegoRe ...

  5. ScrollView垂直滚动控件

    ScrollView垂直滚动控件 一.简介 二.方法 1)ScrollView垂直滚动控件使用方法 1.在layout布局文件的最外层建立一个ScrollView控件 2.在ScrollView控件中 ...

  6. 完美解决EditText和ScrollView的滚动冲突(上)

    在网上搜了一下EditText和ScrollView的滚动冲突,发现差点儿全部的解决方式都是触摸EditText的时候就将事件交由EditText处理,否则才将事件交由ScrollView处理.这样确 ...

  7. 屏蔽scrollview的滚动

    外层有scrollview时,手指移动方向跟滚动条方向相同时,会导致scrollview的滚动.此时如果不想滚动的话,可以在要接受ontouch的子视图,或者子子视图中的touch监听里加上v.get ...

  8. 判断scrollview是否滚动到了底部

    调用函数判断如下:if(getScrollY() + getHeight() >=  computeVerticalScrollRange()){        Log.d(TAG," ...

  9. 解决点击状态栏时ScrollView自动滚动到初始位置失效办法

    http://www.cocoachina.com/ios/20150807/12949.html 取消点击状态栏scrollView会自动滚动到初始位置的功能 _scrollView.scrolls ...

随机推荐

  1. .net 之缓存

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  2. javascript高级程序设计---第二、三章

    在HTML中引用javaScript javascript的几个属性  type async(异步加载 只适用于外部JS且IE8以上 HTML5规范 先于load执行) src defer(延迟加载 ...

  3. js中arguments的用法

    了解这个对象之前先来认识一下javascript的一些功能: 其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载.Javascrip中国每个函数都会有一个Argume ...

  4. 完整安装cocoaPods

    cocoaPods是一款xcode项目管理第三方库的工具 *ruby源码镜像下载:https://ruby.taobao.org/mirrors/ruby/*升级gem的版本: $sudo gem u ...

  5. tcpdump高级过滤技巧

    基本语法 ========过滤主机--------- 抓取所有经过 eth1,目的或源地址是 192.168.1.1 的网络数据# tcpdump -i eth1 host 192.168.1.1- ...

  6. 关于bootstrap的一些运用

    bootstrap用起来很方便,代码量少,写自适应网站最合适了! 关于bootstrap你必须要知道的几点: “行(row)”必须包含在 .container (固定宽度)或 .container-f ...

  7. android Fragment 使用

    一 .Fragment的理解 Fragment 与activity 相似,但比activity 多出几个方法 ,Fragment的生命周期小于activity 一个Activity 中可以包含多个Fr ...

  8. C#位运算讲解与示例

    首先每一个权限数都是2的N次方数 如:k1=2 ; //添加 k2=4 ; //删除 k3=8; //修改 ... 如此定义功能权限数,当需要组合权限时,就需要对各个所拥有的权限数按位或了. 如: p ...

  9. redis安装

    参考redis.io 安装步骤 下载,编译reids $ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf red ...

  10. python成长之路【第十二篇】:RabbitMQ入门

    一.RabbitMQ介绍 解释RabbitMQ,就不得不提到AMQP(Advanced Message Queuing Protocol)协议. AMQP协议是一种基于网络的消息传输协议,它能够在应用 ...