您的位置:首页 > 其它

关于Iphone的手势识别

2012-04-12 09:38 211 查看
以前说过一些关于Iphone手势识别的内容,但是没有具体的写些相关的内容,今天就用手势识别中的两种来简单讲讲

一、我们先说说两个手指的缩放操作: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐