去年做过一个画图软件,需要在手机上进行绘制草图相关操作。其中一个就是长按进行绘制线段矩形等图形,在此拿出来和大家分享一下。
1、创建一个长按手势,并添加到相应view上
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longClick:)];
longPress.minimumPressDuration=0.2;
[recordImageViewaddGestureRecognizer:longPress];
2、创建相应的长按触发方法(不创建的话,长按的时候程序会crash)
- (void)longClick:(UILongPressGestureRecognizer *)longPress
{
EM
UIImageView *recordImageView = (UIImageView *)longPress.view;
switch (longPress.state) {
case UIGestureRecognizerStateBegan:
{
//长按开始
recordImageView.transform = CGAffineTransformMakeScale(1.15, 1.15);
[em startRecordWith:em.filePath];
[recordImageView startAnimating];
break;
}
case UIGestureRecognizerStateChanged:
{
//移动中
break;
}
case UIGestureRecognizerStateEnded:
{
//长按结束
recordImageView.transform = CGAffineTransformMakeScale(1.0, 1.0);
[em stopRecordWith:em.filePath];
[recordImageView stopAnimating];
break;
}
default:
break;
}
}
长按当然还有其他的状态,但是平时开发中基本上就用到这3种状态。需要了解具体的,就去苹果的官方文档中了解吧。小编水平有限,如有疏漏之处请在下面留言,我会虚心采纳您的意见。
ps:这里说一下switch,每个case中一定break,不然还会走下面的状态,小编经常会犯这种错