刚刚遛狗回来,前段时间创建的这篇博客一直没有填充内容,今天把scrollerview正好整理一下。

1.scrollerview的主要作用:当界面显示不开要显示的内容,scrollerview提供了滑动的效果,使用户能够通过滑动查看所有的内容

2.scrollerview的常用属性:

(1)CGSizecontentSize;这个属性⽤用来表⽰示UIScrollView内容的尺寸,滚动范围

(2)CGPointcontentOffset; 这个属性⽤来表示UIScrollView滚动的位置,表示的是一个点:CGPoint,也就是scrollerview的“显示界面”的原点位置在“内容界面”的位置。比如scrollerview的frame的是 CGRectMake(0,0,320,320) ,而scrollerview.contantSize = CGSizeMake(320,640); ,那么当内容滑动到底部时候,CGPointcontentOffset就是(0,320)。

(3)UIEdgeInsetscontentInset; 这个属性能够在UIScrollView的4周增加额外的滚动区域,(0,0,0,0)表示 上 左 下 右,即逆时针

(4)@property(nonatomic) BOOL bounces;  设置UIScrollView是否需要弹簧效果

(5)@property(nonatomic,getter=isScrollEnabled)BOOLscrollEnabled; 设置UIScrollView是否能滚动

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

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

3.注意点

• 如果UIScrollView⽆无法滚动,可能是以下原因:

(1)没有设置contentSize

(2) scrollEnabled = NO

(3) 没有接收到触摸事件:userInteractionEnabled = NO

(4)没有取消autolayout功能(要想scrollView滚动,必须取消autolayout)

4.代码

(1)创建scrollerview

- (void)viewDidLoad
{
[super viewDidLoad]; // 1.创建UIScrollView
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.frame = CGRectMake(, , , ); // frame中的size指UIScrollView的可视范围
scrollView.backgroundColor = [UIColor grayColor];
[self.view addSubview:scrollView]; // 2.创建UIImageView(图片)
UIImageView *imageView = [[UIImageView alloc] init];
imageView.image = [UIImage imageNamed:@"big.jpg"];
CGFloat imgW = imageView.image.size.width; // 图片的宽度
CGFloat imgH = imageView.image.size.height; // 图片的高度
imageView.frame = CGRectMake(, , imgW, imgH);
[scrollView addSubview:imageView]; // 3.设置scrollView的属性 // 设置UIScrollView的滚动范围(内容大小)
scrollView.contentSize = imageView.image.size; // 隐藏水平滚动条
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO; // 用来记录scrollview滚动的位置
// scrollView.contentOffset = ; // 去掉弹簧效果
// scrollView.bounces = NO; // 增加额外的滚动区域(逆时针,上、左、下、右)
// top left bottom right
scrollView.contentInset = UIEdgeInsetsMake(, , , ); _scrollView = scrollView;
} - (IBAction)down:(UIButton *)sender {
[UIView animateWithDuration:1.0 animations:^{
//三个步骤
CGPoint offset = _scrollView.contentOffset;
offset.y += ;
_scrollView.contentOffset = offset; //_scrollView.contentOffset = CGPointMake(0, 0);
}];
}
@end

(2)缩放功能

#import "YYViewController.h"

 @interface YYViewController () <UIScrollViewDelegate>
{
UIScrollView *_scrollview;
UIImageView *_imageview;
}
@end @implementation YYViewController - (void)viewDidLoad
{
[super viewDidLoad]; //1添加 UIScrollView
//设置 UIScrollView的位置与屏幕大小相同
_scrollview=[[UIScrollView alloc]initWithFrame:self.view.bounds];
[self.view addSubview:_scrollview]; //2添加图片
//有两种方式
//(1)一般方式
// UIImageView *imageview=[[UIImageView alloc]init];
// UIImage *image=[UIImage imageNamed:@"minion"];
// imageview.image=image;
// imageview.frame=CGRectMake(0, 0, image.size.width, image.size.height); //(2)使用构造方法
UIImage *image=[UIImage imageNamed:@"minion"];
_imageview=[[UIImageView alloc]initWithImage:image];
//调用initWithImage:方法,它创建出来的imageview的宽高和图片的宽高一样
[_scrollview addSubview:_imageview]; //设置UIScrollView的滚动范围和图片的真实尺寸一致
_scrollview.contentSize=image.size; //设置实现缩放
//设置代理scrollview的代理对象
_scrollview.delegate=self;
//设置最大伸缩比例
_scrollview.maximumZoomScale=2.0;
//设置最小伸缩比例
_scrollview.minimumZoomScale=0.5;
} //告诉scrollview要缩放的是哪个子控件
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return _imageview;
} @end

本文参考文顶顶的博客:http://www.cnblogs.com/wendingding/p/3754268.html

IOS----UIScrollerView的使用的更多相关文章

  1. iOS 下如果存在UIScrollerView 使用UIScreenEdgePanGestureRecognizer实现侧滑效果失效的问题

    当你在使用UIScreenEdgePanGestureRecognizer手势实现侧滑的时候,如果后期你导航控制器push出的界面中包含UIScrollerView,这个时候你会发现,侧滑效果无法实现 ...

  2. 离屏渲染学习笔记 /iOS圆角性能问题

    离屏渲染学习笔记 一.概念理解 OpenGL中,GPU屏幕渲染有以下两种方式: On-Screen Rendering 意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行. O ...

  3. iOS UICollectionView的实现

    ios的UICollectionView并不能在iOS6之前的版本中使用,为了兼容之前的版本需要自定义UICollectionView.写完之后发现人家已经有开源了,下过来看了看发现我是用UIScro ...

  4. IOS设计模式之三(适配器模式,观察者模式)

    本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq) ...

  5. 【转】深入理解篇UIScrollerView

    转自:http://www.mamicode.com/info-detail-1144770.html 接下来,我整理一下自己的思路,深入理解 UIScrollView 基本点 : 1 . UIScr ...

  6. iOS开发CoreAnimation解读之二——对CALayer的分析

    iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二. ...

  7. iOS上机题(附个人见解)

    ##机试题目如下 用命令行创建一个以CocoaPods管理的项目[Test-你的姓名拼音],新建3个ViewController,完成以下题目 将下面的问题在一个UITabView里面列出所有问题,单 ...

  8. iOS可视化动态绘制连通图

    上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...

  9. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  10. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

随机推荐

  1. Python id() 函数

    Python id() 函数  Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...

  2. 关于ueditor使用说明

    1.后台配置文件config.json中的各种prefix,相对的都是网站(发布后的)的根目录, 2.需要在iis下将net文件夹转换为应用程序 3.<div>    <h1> ...

  3. ruby变量

    Ruby 支持五种类型的变量. 一般小写字母.下划线开头:变量(Variable).局部变量的作用域从 class.module.def 或 do 到相对应的结尾或者从左大括号到右大括号 {}. 当调 ...

  4. 479. Largest Palindrome Product

    class Solution { public: int largestPalindrome(int n) { vector<,,,,,,,}; ]; } }; 这里的穷举法,你不得不服

  5. URAL1991 The battle near the swamp 2017-04-12 18:07 92人阅读 评论(0) 收藏

    The battle near the swamp Gungan: Jar Jar, usen da booma!  Jar Jar: What? Mesa no have a booma!  Gun ...

  6. handsontable-mobiles

    适配移动端:文档不完整,现在只能适配ipad4

  7. Android-自定义开关

    效果图: 需要两张图片,一张图片为背景,一张图片为滑动的点 布局去指定一个自定义View对象: view.custom.shangguigucustomview.MyCustomSwitch < ...

  8. Hibernate 之核心接口

    1.持久化和ORM 持久化是指把数据(内存中的对象)保存到可持久保存的存储设备中(如硬盘),主要应用于将内存中的数据存储到关系型数据库中,在三层结构中,持久层专注于实现系统的逻辑层面,将数据使用者与数 ...

  9. 查找 SQL SERVER 所有表记录数

    -- 所有表的记录数 SELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ...

  10. DataTable转List<T>

    /// <summary> /// DataTable转List<T> /// </summary> public static class TableToList ...