- 浏览: 269486 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
jimode2013:
thanks
UIPanGestureRecognizer学习笔记 -
白色蜻蜓:
- (void) loadView { //opaquevie ...
UIWebView中使用UIActivityIndicatorView
好久没来写笔记了,原因很简单,最近一直坐java网站,没顾上学IOS(偷懒没学..)
废话少说 开始笔记
UIGestureRecognizer是一个定义基本手势的抽象类,具体什么手势,在以下子类中包含:
1、拍击UITapGestureRecognizer (任意次数的拍击)
2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer (拖动)
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer (长按)
今天一同学问到UIPanGestureRecognizer类中translationInView方法和velocityInView方法有什么区别,因为我也好久没看IOS,一丢下就很难拾起,故今天研究下这个问题
UIPanGestureRecognizer主要用于拖动,比如桌面上有一张图片uiimageview,你想让它由原始位置拖到任何一个位置,就是图片跟着你的手指走动,那么就需要用到该类了。
以下代码表示给一个图片视图指定一个UIPanGestureRecognizer手势当该图片捕获到用户的拖动手势时会调用回调函数handlePan
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [self.imgView setUserInteractionEnabled:YES]; [self.imgView addGestureRecognizer:pan]; [pan release];
handlePan函数代码如下:
- (void) handlePan: (UIPanGestureRecognizer *)rec{ NSLog(@"xxoo---xxoo---xxoo"); CGPoint point = [rec translationInView:self.view]; NSLog(@"%f,%f",point.x,point.y); rec.view.center = CGPointMake(rec.view.center.x + point.x, rec.view.center.y + point.y); [rec setTranslation:CGPointMake(0, 0) inView:self.view]; }
以下为本人自己的理解,有不到之处请看官务必指教12
- (CGPoint)translationInView:(UIView *)view方法的API解释如下:
The translation of the pan gesture in the coordinate system of the specified view.
Return Value
A point identifying the new location of a view in the coordinate system of its designated superview.
字面理解是:
在指定的视图坐标系统中转换(拖动?) pan gesture
返回参数:返回一个明确的新的坐标位置,在指定的父视图坐标系统中
简单的理解就是
该方法返回在横坐标上、纵坐标上拖动了多少像素
因为拖动起来一直是在递增,所以每次都要用setTranslation:方法制0这样才不至于不受控制般滑动出视图
- (CGPoint)velocityInView:(UIView *)view方法的API解释如下:
The velocity of the pan gesture in the coordinate system of the specified view.
Return Value
The velocity of the pan gesture, which is expressed in points per second. The velocity is broken into horizontal and vertical components.
字面理解:
在指定坐标系统中pan gesture拖动的速度
返回参数:返回这种速度
简单的理解就是
你拖动这个图片的时候肯定有个速度,因此返回值就是你拖动时X和Y轴上的速度,速度是矢量,有方向。
参考资料
http://www.cnblogs.com/andyque/archive/2011/12/30/2307060.html
发表评论
-
EXC_BAD_ACCESS
2013-06-21 17:59 975EXC_BAD_ACCESS 这个错误,可以这么说,90%的 ... -
NSAssert
2013-06-08 09:55 999You can use NSAssert() to deb ... -
UIWebView中的图片用本地document目录中的
2013-04-28 14:34 0-(void)webViewDidStartLoad:(UI ... -
如何点击链接直接跳转到app store指定应用下载页面
2013-03-21 14:42 2820跳转到应用下载页面: NSString *str = [ ... -
ios面试题收集一(附基本答案)
2013-03-20 11:40 1489此份面试题包含40个题目,是现在网上能搜索到的一个比较热的一 ... -
IOS5.1.1完美越狱XCODE测试出现10004003的问题
2013-03-15 11:23 1148我的APP已经上线了,但是公司有几个越狱后IOS5.1.1 ... -
MKLocalSearch用法
2013-03-08 15:21 6840原文出处:http://phpadvocate.com/bl ... -
NSString-NSDate类型转换和CustomBar的总结
2012-12-21 09:53 1353如何将一个字符串@"2012-12-21" ... -
ios判断本地文件是否存在
2012-12-17 17:36 1201NSString *path = [[NSBundle ... -
UIWebView响应单机事件
2012-12-14 11:40 1166在UIViewController中,加入协议UIGes ... -
APP适配iphone5 and ihpone4
2012-12-09 13:22 2033首先加入Default-568@2x.png得开机图片 CG ... -
百度地图API(1)
2012-12-04 14:25 2460问题 2012-10-26 11:37:05. ... -
iOS常用控件尺寸大集合
2012-11-28 16:36 1842元素控件 尺寸(pts) Window(含状态栏) 320 x ... -
发送邮件---iphone开发
2012-09-27 14:00 13901、导入MessageUI.framework包 2、引入头 ... -
nsarray倒序排序
2012-09-24 16:28 2371NSSortDescriptor *descripto ... -
UITextField限制输入类型
2012-09-05 17:37 7327限制只能输入特定的字 ... -
怎么把椭圆的UISearchBar改成圆角矩形?
2012-08-29 13:03 4642for (UIView *subview in sel ... -
uitableview出现重叠的处理办法
2012-08-24 10:45 756for (UIView *subview in ... -
XIB那点问题
2012-08-09 10:49 9881、运行错误: this class is not key ... -
下拉加载(刷新)下一页效果
2012-07-19 09:26 34151、导入EGO框架,即附件中的EGO.ZIP中的两个类文件,以 ...
相关推荐
9. **学习资源**:如"iphone的手势与触摸编程学习笔记"和"30天精通iPhone手机编程"等资料,可以帮助开发者深入理解iOS手势编程,提供实例教程和实践指导。 通过这些知识点的学习和实践,开发者能够构建出更加丰富和...
8. **学习资源**: 从文件名可以看出,有一些学习资源如博客文章和教程可以帮助开发者深入理解iOS手势编程,包括张智清的“iphone的手势与触摸编程学习笔记”以及CSDN和DEVDIV上的相关博客文章。 通过掌握以上知识点...
在iOS开发中,为了增强用户体验,开发者经常需要添加一些自定义的...通过学习和实践`ContextMenuDemo-master`中的示例代码,开发者可以快速掌握`ContextMenu`库的使用,并将其应用到自己的项目中,提升应用的交互体验。
2.手势识别:通过`UIPanGestureRecognizer`监听用户的滑动手势,根据滑动的方向和距离决定抽屉是否应该打开或关闭。 3. 视图布局:为了实现抽屉效果,可能需要使用`Auto Layout`或者`SnapKit`等布局库来动态调整...
另外,Core Data是苹果提供的一个强大的对象图形管理框架,可以用来处理更复杂的数据模型,但它的学习曲线较陡峭。 事件处理和用户交互是iOS应用的重要组成部分。点击事件、滑动事件等通常由手势识别器...
在iOS应用开发中,手写画图功能是一个常见的需求,比如在笔记应用、教育软件或者设计工具中。这篇源码提供了实现这一功能的基础框架。本文将深入探讨如何利用iOS的UIKit框架来创建一个手写画图的应用,并关注以下几...
在iOS平台上,开发一款手写画图的应用是一个常见的任务,尤其对于那些想要创建教育、创意设计或个人笔记类应用的开发者来说。这个“手写画图”应用的源码提供了一个很好的起点,让我们来深入探讨其中涉及的关键知识...
UIGestureRecognizer如UIPanGestureRecognizer、UITapGestureRecognizer等,可以响应用户的滑动、点击等操作。例如,添加一个单击手势识别器: ```objc UITapGestureRecognizer *tapGesture = [...
4. **README或Documentation**:提供关于如何编译、运行和理解代码的说明,可能包括开发者笔记、使用指南和示例。 5. **Podfile或Carthage**:如果是使用CocoaPods或Carthage进行依赖管理,这些文件会列出项目的...
4. 笔记应用:在手写笔记应用中,手势可以用于擦除、选择、复制文本。 5. 智能家居:在智能家居系统中,手势识别可用于控制灯光、电器等设备。 五、优化与挑战 1. 误识别:手势识别算法需要不断优化,以减少误...
AlertView通常包含了标题、消息文本以及一个或多个操作按钮,但在这个案例中,它扩展了功能,允许用户直接在AlertView内部进行手写输入,提高了用户体验,尤其是对于需要手写签名或笔记的情况。 这个项目可能包含了...
在iOS开发领域,相机和画板是两个非常关键的功能组件,它们为用户...在学习和使用这些代码时,开发者应深入理解AVFoundation和UIKit框架,熟悉相关API的使用,同时关注用户体验和性能优化,以创建出高效且易用的应用。
在iOS应用开发中,特别是在教育、设计、笔记类应用中,手写画图功能非常常见,能够提供用户直观、自然的输入体验。 在iOS平台上,实现手写画图的核心技术是基于Core Graphics框架。Core Graphics是苹果操作系统内核...
在iOS开发中,开发者可以自定义手势识别器(如UIPinchGestureRecognizer、UIPanGestureRecognizer等)来扩展系统默认的手势,或者通过重写视图的 touchesBegan:withEvent:、touchesMoved:withEvent:、touchesEnded:...
手绘图线(Hand-drawn Line Drawing)功能则是在应用中让用户能够自由地在屏幕上绘制图形或线条,常见于绘画应用、笔记应用或某些游戏。这种功能通常依赖于UIKit框架中的Core Graphics库,它提供了低级别的绘图API,...
1. 触摸事件处理:通过UIPanGestureRecognizer、UIPinchGestureRecognizer等手势识别器捕获用户触摸事件,根据手势类型执行相应的绘图或图形变换操作。 2. 绘图路径构建:在CGContext上使用CGPath添加路径,结合...
在iOS应用开发中,我们经常需要实现用户在图片上添加文字并进行编辑的功能,比如在社交媒体分享、笔记应用或者照片编辑应用中。`swift-JLStickerTextViewiOS实现在图片上添加文字支持旋转平移缩放`这个项目,就是...
- **UIPanGestureRecognizer**:虽然主要用于iOS,但在OS X中也可以使用,它可以识别平移手势,适用于更复杂的滚动和滑动场景。 四、代码实现 在`CocoaNavigationGestures-master`项目中,你可能会找到如下代码片段...
这个压缩包可能包含了Dennis Chukwuyenum第一周学习iOS开发的笔记、代码示例和其他相关资源。 首先,Swift的特点在于它的易读性,语法简洁明了,这使得新开发者能够快速上手。它摒弃了C家族语言的一些复杂特性,如...