iOS手势总结
来源:互联网 发布:java高级培训 编辑:程序博客网 时间:2024/05/18 00:45
1.手势的分类
UITapGestureRecognizer :点击手势(根据设定单击次数可以分为单次点击和多次点击)
UIPinchGestureRecognizer:缩放或捏合手势
UIPanGestureRecognizer:平移或拖拽手势
UISwipeGestureRecognizer:轻扫手势
UIRotationGestureRecognizer:旋转手势
UILongPressGestureRecognizer:长按手势
2.手势的基本使用
(1)以单击手势为例,先初始化手势
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(tapGestureAction:)];
第一个参数是绑定手势触发时通知的对象,第二个参数是手势触发时执行的方法
(2)设置手势的属性
例如在第一步的基础上,将点击手势设置为双击手势
tapGesture.numberOfTapsRequired = 2;
(3)添加手势
[view addGestureRecognizer:tapGesture];
(4)编辑手势触发方法
在tapGestureAction:里编辑你想要的操作
3.几个手势的具体使用
(1)轻扫手势的使用
- (void)showGestureForSwipeRecognizer:(UISwipeGestureRecognizer *)recognizer {
// 得到点击的位置
CGPoint location = [recognizer locationInView:self.view];
// 判断手势的方向,根据方向移动位置
if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
location.x -= 220.0;
} else {
location.x += 220.0;
}
// 实现动画
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
self.imageView.center = location;
}];
}
(2)旋转手势的简单使用
- (void)showGestureForRotationRecognizer:(UIRotationGestureRecognizer *)recognizer {
// 得到点击的位置
CGPoint location = [recognizer locationInView:self.view];
// 让图片跟着手势一起旋转
CGAffineTransform transform = CGAffineTransformMakeRotation([recognizer rotation]);
self.imageView.transform = transform;
// 实现取消手势的动画
if (([recognizer state] == UIGestureRecognizerStateEnded) || ([recognizer state] == UIGestureRecognizerStateCancelled)) {
[UIView animateWithDuration:0.5 animations:^{
self.imageView.alpha = 0.0;
self.imageView.transform = CGAffineTransformIdentity;
}];
}
}
4.手势冲突问题
(1)如果想要轻扫手势的识别优先于拖拽手势,可以使用下面这句话,这句话的意思是只有在识别轻扫手势失败时才会识别拖拽手势,如果识别轻扫手势成功就不会继续识· 别托转手势
[self.panRecognizer requireGestureRecognizerToFail:self.swipeRecognizer];
(2)如何禁止某个视图识别一个手势
- (void)viewDidLoad {
[super viewDidLoad];
// 首先设置手势的代理对象
self.tapGestureRecognizer.delegate = self;
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
// 判断是否点击在某个视图或者姿势图上
if ([touch view] == self.customSubview){
// 如果不想让这个视图成功识别这个手势和以返回NO
return NO;
}
return YES;
}
- ios-手势总结-清扫手势
- iOS手势总结
- iOS(总结)手势
- ios-手势总结demo
- iOS UIGestureRecognizer手势总结
- iOS手势 总结归纳
- iOS 手势简单使用总结
- IOS手势总结与UIResponder
- iOS开发中的手势总结
- 【iOS开发-手势】iOS中各种手势总结
- iOS手势UIGestureRecognizer用法总结(摘抄部分)
- iOS 触摸和手势总结
- 总结iOS开发中的手势识别
- IOS手势使用及总结:UIPanGestureRecognizer 拖拽
- 关于iOS Swipe手势的一点总结
- iOS开发之手势识别 总结
- iOS手势
- ios 手势
- web--火狐插件firebug安装
- 最大连续子序列
- 黄聪:Python+NLTK自然语言处理学习(一):
- jdk7新特性学习笔记
- 系统架构师???
- iOS手势总结
- 小希的迷宫
- 连接到CentOS(Linux)服务器ssh、mysql缓慢
- 图片宽度全屏显示 高度按比例显示()
- ubuntu14.04 osg3.0.1 qt4.8.6 boost1.58编译安装
- alarmmanager定时任务
- 单例模式
- qnx6.5 app自启动操作
- 网页javascript 与flash之间的交互