关于Iphone的手势识别
2012-04-12 09:38
211 查看
以前说过一些关于Iphone手势识别的内容,但是没有具体的写些相关的内容,今天就用手势识别中的两种来简单讲讲
一、我们先说说两个手指的缩放操作:UIPinchGestureRecognizer
1、在viewDidLoad中初始化UIPinchGestureRecognizer对象,并通过view的addGestureRecognizer方法将它添加到view上:
2、完成其中的action的内容,根据sender的scale来判断是放大还是缩小;
3、之后便根据UIGetsureRecognizerStateEnded来判断手是否离开屏幕,并根据sender的scale来判断是放大还是缩小并将最后的scale值保存到lastScaleView中:
4、完成!
5、小常识:在iOS Simulator中,按住Option键拖动鼠标可实现两个手指的触摸;
二、我们再说说长按手指的操作:UILongPressGestureRecognizer
1、和两个手指操作类似,长按手指同样需要在viewDidLoad中对UILongPressGestureRecognizer的对象进行初始化。
2、需要注意的是,我们还需要设置好UILongPressGestureRecognizer对象的长按最短时间、长按时可移动的像素范围、以及长按手指的个数,之后同样通过view的addGestureRecognizer方法将它添加到view中:
== UIGestureRecognizerStateBegan)来判断何时触发长按操作:
三、附6种常用手势:
UITapGestureRecognizer
UIPinchGestureRecognizer
UIRotationGestureRecognizer
UIPanGestureRecognizer
UISwipeGestureRecognizer
UILongPressGestureRecognizer
一、我们先说说两个手指的缩放操作:UIPinchGestureRecognizer
1、在viewDidLoad中初始化UIPinchGestureRecognizer对象,并通过view的addGestureRecognizer方法将它添加到view上:
- (void)viewDidLoad { [self CreateButton]; //pinch UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGestureHandler:)]; [m_svImageView addGestureRecognizer: pinchGesture]; [pinchGesture release]; [super viewDidLoad];
2、完成其中的action的内容,根据sender的scale来判断是放大还是缩小;
3、之后便根据UIGetsureRecognizerStateEnded来判断手是否离开屏幕,并根据sender的scale来判断是放大还是缩小并将最后的scale值保存到lastScaleView中:
- (IBAction) pinchGestureHandler:(UIGestureRecognizer *)sender { lastScaleValue = 1; CGFloat scalevalue = [(UIPinchGestureRecognizer *)sender scale]; if (scalevalue >1) { sender.view.transform = CGAffineTransformMakeScale(lastScaleValue + scalevalue, lastScaleValue + scalevalue); }else { sender.view.transform = CGAffineTransformMakeScale(lastScaleValue * scalevalue, lastScaleValue * scalevalue); } if(sender.state == UIGestureRecognizerStateEnded) { if (scalevalue > 1) { lastScaleValue += scalevalue; }else { lastScaleValue *= scalevalue; } } }
4、完成!
5、小常识:在iOS Simulator中,按住Option键拖动鼠标可实现两个手指的触摸;
二、我们再说说长按手指的操作:UILongPressGestureRecognizer
1、和两个手指操作类似,长按手指同样需要在viewDidLoad中对UILongPressGestureRecognizer的对象进行初始化。
2、需要注意的是,我们还需要设置好UILongPressGestureRecognizer对象的长按最短时间、长按时可移动的像素范围、以及长按手指的个数,之后同样通过view的addGestureRecognizer方法将它添加到view中:
- (void)viewDidLoad { UILongPressGestureRecognizer *longpressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longpressGestureHandler:)]; longpressGesture.minimumPressDuration = 1; longpressGesture.allowableMovement = 15; longpressGesture.numberOfTouchesRequired = 1; [m_svImageView addGestureRecognizer:longpressGesture]; [longpressGesture release]; [super viewDidLoad]; }3、之后同样时完成action的内容,可以使用if(sender.state
== UIGestureRecognizerStateBegan)来判断何时触发长按操作:
- (IBAction) longpressGestureHandler: (UILongPressGestureRecognizer *) sender { if([(UILongPressGestureRecognizer *)sender state] == UIGestureRecognizerStateBegan) { m_imageView.image = m_uiImage; } }4、完成!
三、附6种常用手势:
UITapGestureRecognizer
UIPinchGestureRecognizer
UIRotationGestureRecognizer
UIPanGestureRecognizer
UISwipeGestureRecognizer
UILongPressGestureRecognizer
相关文章推荐
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)
- iphone开发 用户点击,触摸和手势识别 解析
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- 【Android】关于手势识别(TouchEvent/Gesture)
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)
- iphone开发 关于手势
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- iOS开发笔记--iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognize
- 关于安卓activity和listview手势识别处理和应用
- (10) iphone 开发 用户点击,触摸和手势识别 解析
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- 关于iOS中的手势识别
- iphone练习之手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- iphone手势识别(双击、捏、旋转、拖动、划动、长按)UITapGestureRecognizer
- 关于手势轮廓的提取及手势跟踪和识别的关键部分