2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer (拖动)
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer (长按)
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]
btn.backgroundColor = [UIColor redColor]
[self.view addSubview:btn]
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]//创建手势
[btn setUserInteractionEnabled:YES]//设置启用用户交互
[btn addGestureRecognizer:pan]//把手势添加到控件
- (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.view 指的是把rec添加到那个控件上的
// 因为拖动起来一直是在递增,所以每次都要用setTranslation:方法制0这样才不至于不受控制般滑动出视图
[rec setTranslation:CGPointMake(0, 0) inView:self.view]
}
//缩放
UIPinchGestureRecognizer *ping = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]
[btn setUserInteractionEnabled:YES]//设置启用用户交互
[btn addGestureRecognizer:ping]
-(void) handlePinch:(UIPinchGestureRecognizer *)rec
{
NSLog(@" recognizer.scale------%f",rec.scale
)//缩放的倍数,
// view.transform 为原来的 状态;
rec.view.transform=CGAffineTransformScale(rec.view.transform, rec.scale,rec.scale)
}
Mac的触控板手势可以让OS X的体验更加完善,其点按方式和多指手势更是受到了广泛的欢迎,三指拖拽手势更是其中的佼佼者。不过在OS X El Capitan中,不少用户都表示苹果已经移除了三指拖拽的手势,因为在原来的位置“系统偏好设置”-“触控板”中已经找不到相关的设置。
经过仔细查找才发现,苹果并没有将这个实用的手势 *** 作移除,而是选项的位置发生了变动。
在OS X El Capitan中要通过以下步骤才能开启三指拖拽:
1、打开系统偏好设置
2、点击辅助功能
3、点击鼠标&触控板
4、点击触控板选项
5、点击开启拖拽
6、在下拉框中选择“三指拖拽”
三指拖拽手势不仅仅可以在窗口和其它桌面项目中使用,同时也可以选择文本,属于非常有用的手势,但不知道苹果改变其选项位置是出于何种考虑,对于粗心的用户来说,重新调出这个选项可能要花费一定的学习成本。
UIGestureRecognizer是一个定义基本手势的抽象类,具体包含:1、拍击UITapGestureRecognizer (任意次数的拍击)
2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer (拖动)
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer (长按)
本文主要使用到的是拖拽手势:UIPanGestureRecognizer
限制方法:
也可以使用UITouch来实现:
当手指接触到屏幕,不管是单点触摸还是多点触摸,事件都会开始,直到用户所有的手指都离开屏幕。期间所有的UITouch对象都被包含在UIEvent事件对象中,由程序分发给处理者。事件记录了这个周期中所有触摸对象状态的变化。
限制方法如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)