理解UIScrollView时可以假设这样的一个场景:在一个漆黑的屋子里的墙上有一副大的画,墙是可以上下左右滚动,一个矩形的手电筒固定着,开始时画的左上角坐标与矩形光的左上角坐标对应。人可以用手电筒的光来看这幅画。

//
//  ViewController.m
//  UIScrollView
//
//  Created by City--Online on 15/5/20.
//  Copyright (c) 2015年 XQB. All rights reserved.
//#import "ViewController.h"@interface ViewController ()<UIScrollViewDelegate>
@property(nonatomic,strong) UIScrollView *scrollView;
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];//Frame类似矩形手电筒发出的光 眼睛每次只能看到矩形大小的东西_scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(10, 100, self.view.bounds.size.width, 100)];//画布_scrollView.contentSize=CGSizeMake(self.view.bounds.size.width*3, self.view.bounds.size.height);//画布里墙角的距离 类似CSS的盒子模型  contentSize、contentInset共同组成整块墙_scrollView.contentInset=UIEdgeInsetsMake(10, 10, 10, 10);//设置代理_scrollView.delegate=self;//指定控件是否只能在一个方向上滚动_scrollView.directionalLockEnabled=YES;//控制控件遇到边框是否反弹_scrollView.bounces=YES;//控制垂直方向遇到边框是否反弹_scrollView.alwaysBounceVertical=NO;//控制水平方向遇到边框是否反弹_scrollView.alwaysBounceHorizontal=NO;//控制控件是否整页翻动_scrollView.pagingEnabled=YES;//控制控件是否能滚动_scrollView.scrollEnabled=YES;//控制是否显示水平方向的滚动条_scrollView.showsHorizontalScrollIndicator=YES;//控制是否显示垂直方向的滚动条_scrollView.showsVerticalScrollIndicator=YES;//指定滚动条在scrollerView中的位置_scrollView.scrollIndicatorInsets=UIEdgeInsetsMake(0, 50, 0, 0);//设定滚动条的样式_scrollView.indicatorStyle=UIScrollViewIndicatorStyleBlack;//减速速率_scrollView.decelerationRate=3.0;//    //设置墙左上角坐标移动到指定的Point//    [_scrollView setContentOffset:CGPointMake(self.view.bounds.size.width, 0) animated:YES];//    //滚动到指定矩形的边缘 使得该矩形可见//    [_scrollView scrollRectToVisible:CGRectMake(self.view.bounds.size.width, 0, self.view.bounds.size.width, self.view.bounds.size.height) animated:YES];//显示滚动条,但是滚动条(ScrollBar Indicators) 只会显示大概1.5秒左右的时间,就会自动隐藏//    [_scrollView flashScrollIndicators];//如果用户已经触及的内容视图但可能还没有开始拖动它。这个属性的值便是YESBOOL IsTracking =_scrollView.tracking;NSLog(@"tracking=%d",IsTracking);//是否在被拖拽BOOL IsDragging=_scrollView.dragging;NSLog(@"dragging=%d",IsDragging);//是否在减速BOOL  IsDecelerating=_scrollView.decelerating;NSLog(@"decelerating=%d",IsDecelerating);//是否延时调用开始滚动的方法 if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:_scrollView.delaysContentTouches=YES;//是否接触取消touch的事件_scrollView.canCancelContentTouches=YES;//缩小的最小值_scrollView.minimumZoomScale=0.5;//放大的最大值_scrollView.maximumZoomScale=2;//当前缩放值_scrollView.zoomScale=1;//缩放到指定的大小//    - (void)setZoomScale:(CGFloat)scale animated:(BOOL)animated//缩放到指定的Rect//    - (void)zoomToRect:(CGRect)rect animated:(BOOL)animated//控件的大小是否正在改变BOOL IsZooming= _scrollView.zooming;NSLog(@"zooming=%d",IsZooming);//设置缩放到边界时是否反弹_scrollView.bouncesZoom=YES;//是否进行缩放反弹BOOL IsZoomBouncing= _scrollView.zoomBouncing;NSLog(@"zoomBouncing=%d",IsZoomBouncing);//滚动到顶部BOOL IsScrollsTop= _scrollView.scrollsToTop;NSLog(@"scrollsToTop=%d",IsScrollsTop);//开始拖到时隐藏键盘_scrollView.keyboardDismissMode=UIScrollViewKeyboardDismissModeOnDrag;//获取拖动手势UIGestureRecognizer *panGestureRecognizer=_scrollView.panGestureRecognizer;//获取撮合手势UIGestureRecognizer *pinchGestureRecognizer=_scrollView.pinchGestureRecognizer;for (int i=0; i<3; i++) {UIImageView *imgView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]]];imgView.frame=CGRectMake(self.view.bounds.size.width*i, 0, self.view.bounds.size.width, self.view.bounds.size.height) ;[_scrollView addSubview:imgView];}_scrollView.userInteractionEnabled=YES;_scrollView.scrollEnabled=YES;[self.view addSubview:_scrollView];
//    self.view.backgroundColor=[UIColor yellowColor];}//UIScrollViewDelegate
//视图滚动时触发
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{NSLog(@"scrollViewDidScroll");
}
//视图缩放时触发
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{NSLog(@"scrollViewDidZoom");
}
//开始拖动时触发
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{NSLog(@"scrollViewWillBeginDragging");
}- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{NSLog(@"scrollViewWillEndDragging");
}- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{NSLog(@"scrollViewDidEndDragging");
}//开始减速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{NSLog(@"scrollViewWillBeginDecelerating");
}
//减速结束 停止
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{NSLog(@"scrollViewDidEndDecelerating");}
//结束滚动动画调用
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{}
//返回要缩放的视图
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{return nil;
}
//开始缩放
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
{NSLog(@"scrollViewWillBeginZooming");
}
//缩放完成
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{NSLog(@"scrollViewDidEndZooming");
}//是否允许滚动到顶部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView
{NSLog(@"scrollViewShouldScrollToTop");return YES;
}
//滑动到顶部
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
{NSLog(@"scrollViewDidScrollToTop");
}
- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

UIKit 框架之UIScrollView相关推荐

  1. UIKit框架使用总结--看看你掌握了多少

    一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...

  2. UIKit框架各个类的简介

    1.UIAcceleration: 被叫做加速事件的一个UIAcceleration类的实例是用来代表即时的三维加速数据.为了接收重力加速度,要注册一个应用应用程序作为一个共享UIAccelerate ...

  3. iOS UIKit框架注解

    本文来自简书,原文地址:http://www.jianshu.com/p/e5b995ecf44d 导语 我们追求技术的提升,关注技术的发展历程:作为从事技术工作的伐码猿,有个想法(仅是个人想法),这 ...

  4. UIKit 框架讲解

    下面是UIKit 子类的具体说明 1.UIAcceleration: 被叫做加速事件的一个UIAcceleration类的实例是用来代表即时的三维加速数据.为了接收重力加速度,要注册一个应用应用程序作 ...

  5. IOS开发学习---Fundation框架和UIKit框架

    框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像.声音文件等其他资源.共享资源库定义应用程序可以调用的函数和方法. iOS 提供了许多可在应用程序开发中使用的框架.要使 ...

  6. uikit框架开发前期配置及定制主题方法。

    要使用npm命令需要先安装nodejs. 安装方法网上有很多,在此就不一一例举了. 1. 安装Gulp > npm install -g gulp 首先需要在全局范围安装gulp 用git下载U ...

  7. #Objective - C - UI-design - 第六天 -UIKit框架-UIScrollView-分屏相册练习(相册缩略图变为浏览到第几张)

    UIScrollView UIScrollView是所有滚动视图的基类 创建UIScrollView #define WIDTH self.view.frame.size.width#define H ...

  8. UIKit框架类层次图

    学习UIKit应该首选了解UIKit类的层次图,从根类一层一层的拨.

  9. UIKit框架-高级控件Swift版本: 5.UITextView方法/属性详解

    前面我们讲完了iOS中的两个表格控件, 现在让我们继续往下看: 1.UITextView常用属性 // 1.设置 UITextView 的文字 var text: String!// 2.设置 UIT ...

  10. UIKit框架-高级控件Swift版本: 2.UITableView方法/属性详解

    由于这段时间比较忙, 所以写博文的时间也挤了很长时间才完成, 希望大家能够原谅, 后面我也会陆续的更新, 直到控件都讲完, 好了废话少说, 现在让我们来看今天的内容. 1.UITableview常用属 ...

最新文章

  1. 用php计算自由落体,js模仿物理中的自由落体现象
  2. RecyclerView Adapter 所使用的数据list发生变化需要注意的事情
  3. Exchange 2013接收连接器介绍
  4. UR #3 核聚变反应强度( gcd )
  5. 燃烧学往年精选真题解析2018-01-01
  6. 从几个sample来学习Java堆,方法区,Java栈和本地方法栈
  7. 图解Myeclipse 导入Java Web项目报错的解决办法听语音
  8. 技术人如何自我提升?阿里技术带来丰富学习资源
  9. Redis学习笔记~是时候为Redis实现一个仓储了,RedisRepository来了
  10. 轻量级3d模型查看器_你该试试这样来管理你的3D资产了 Connecter
  11. 微软MVP张善友告诉你,微服务选型要注意这些地方
  12. 中科院遗传所钱文峰组发表新冠病毒源于自然界的科学证据
  13. Nacos集群部署说明
  14. php实参和形参不一致的情况
  15. python程序员工资-均薪3万?Python程序员就业各岗位薪资一览,你拖后腿了吗?...
  16. C语言练习题——if语句
  17. 手把手教你使用VGG19做图像风格迁移
  18. 智能手机串号IMEI码丢失(无效IMEI)解决恢复办法
  19. 在word中公式后面插入标号的方法
  20. 玉米田 组合数学 环涂色

热门文章

  1. 中国人上淘宝喜欢干啥 你知道吗?
  2. Dj Swivel Knocktonal for Mac(音符共振增强器)
  3. Toontrack Superior Drummer for Mac - 鼓音乐制作工具
  4. 剪映专业版mac版本要求 剪映mac版最新版更新
  5. Seasonality Core for mac(世界天气预报)
  6. Seaborn学习笔记4
  7. [svc]Linux中Swap与Memory内存简单介绍
  8. shell整理(34)===date 命令的小脚本
  9. NYOJ15括号匹配
  10. sqlserver操作符篇 优化