ios-UISwipeGestureRecognizerDirection问题

问题描述

UISwipeGestureRecognizerDirection问题

在viewDidLoad 中设置:

 UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [swipeGesture setDirection:(UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight)];
    [self.view addGestureRecognizer:swipeGesture];

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"Swipe received.");
    UISwipeGestureRecognizerDirection temp = recognizer.direction;
    if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft)
    {
        [self backCalendarPressed:nil];
    }
    else if (recognizer.direction == UISwipeGestureRecognizerDirectionRight)
    {
        [self nextCalendarPressed:nil];
    }
}

但是recognizer.direction总是等于3,这样的结果我没有办法判断是向左滑动还是向右滑动。

解决方案

在初始时设置确定一个初始状态.比如下一步的动作是向左滑. 设置direction

 [swipeGesture setDirection:UISwipeGestureRecognizerDirectionLeft];

只添加对向左滑的手势支持,而不是两个方向的支持.可加一个BOOL类型的变量来标识当前的滑动方向

BOOL isLeft=NO;

在处理滑动的事件处理中,根据当前方向重置direction

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"Swipe received.");
    UISwipeGestureRecognizerDirection temp = recognizer.direction;
    if (!isLeft)
    {
        [swipeGesture setDirection:UISwipeGestureRecognizerDirectionRight];
        [self backCalendarPressed:nil];
    }
    else
    {
        [swipeGesture setDirection:UISwipeGestureRecognizerDirectionLeft];
        [self nextCalendarPressed:nil];
    }
    isLeft=!isLeft;
}
时间: 2024-09-20 11:44:35

ios-UISwipeGestureRecognizerDirection问题的相关文章

iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用

iOS开发中的手势体系--UIGestureRecognizer分析及其子类的使用 一.引言         在iOS系统中,手势是进行用户交互的重要方式,通过UIGestureRecognizer类,我们可以轻松的创建出各种手势应用于app中.关于UIGestureRecognizer类,是对iOS中的事件传递机制面向应用的封装,将手势消息的传递抽象为了对象.有关消息传递的一些讨论,在前面的博客中有提到: iOS事件响应控制:http://my.oschina.net/u/2340880/bl

苹果iOS 程序图标的设计技巧

文章像三联的朋友们介绍苹果iOS 程序图标的设计技巧,教程难度中等,IPHONE.IPAD.IPOD成为越来越多的人使用的移动互联设备,因此我们经常会遇到为这些设备设计图片,特别是设计IPHONE图标,这篇文章就像三联的朋友们详细的介绍一下IPHONE图标的设计流程,好了一起来学习吧:程序图标主要作用是为了使该程序更加具象及更容易理解,除了上述的作用外,有更好视觉效果的图标可以提高产品的整体体验和品牌,可引起用户的关注和下载,激发起用户点击的欲望. 表现形态 在有限的空间里表达出相对应的信息,在

iOS 的 XMPPFramework 简介

XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RFC-3920),同时还提供了用于读写XML的工具,大大简化了基于XMPP的通信应用的开发. 1. 登录和好友上下线 1.1XMPP中常用对象们 XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作类 XMPPvCardCoreDataStorage:好友名片(昵

ios-需要在IOS中设置延迟功能

问题描述 需要在IOS中设置延迟功能 需要一个延时器,进行23秒的延迟然后执行函数.应该怎么实现?用不用NSTimer? 解决方案 performSelector: withObject: afterDelay: 解决方案二: 简单点的话,使用performSelector: withObject: afterDelay: 方法 [self performSelector:@selector(delayMethod:) withObject:nil afterDelay:23];

iOS版微软自拍App上架:自然美颜 上手简单

如今智能手机拍摄功能越来越强大,凭借着更高像素以及移动互联网社交分享的便利性,手机已然取代传统数码相机成为了爱拍一族必不可少的随身利器.然而爱美之心人皆有之,仅依靠自带相机的拍摄效果慢慢无法满足用户的高标准,对此市面上开始集中涌现各式各样的美颜自拍应用. 考虑到自拍应用如此高的受众,微软显然也想来分一杯羹.本周由微软亚太研发集团推出的照片优化应用<微软自拍>正式上线iOS应用商店.相比其他照片处理软件,微软自拍拥有更简单的操作界面,而处理方式也更为自然. 微软自拍可以根据用户的年龄.性别.肤色

ios入门OC_UI晋级学什么?

1. OC 语法初步, 你可能学到面向对象最近本的概念, 并且可以大致的建立几个自以为是的类,但这仅仅是开始. 你知道为什么面向对象要有3大特性么.知道他们是用到什么设计模式的么 2. 你可能学到了NSString, NSMutableString 字符串的基本操作方法, 你可能会花大量的时间去看那些方法. 从没考虑过方法的实用性. UI方法成千上万, 大量的时间浪费到寻找上边可能会很累的. 所以, 学会现用现看 3. 你可能学到了NSArray, NSMutableArray, NSDicti

本人小白,要做ios app 需要怎么入门

问题描述 本人小白,要做ios app 需要怎么入门 本人小白,基本没有基础,准备学ios 做个app请问需要学习那些语言,用什么平台?推荐哪些书籍,十分感谢,app是一个查询类的软件,输入关键词,查找软件里数据库信息 解决方案 如果你还在上学,那么你需要基础四门课:1,计算机组成原理 2,操作系统. 3,数据结构 4,计算机网络 如果你准备速成找工作,那么你应该学习:Objective-C程序设计,swift 语法,<120天从入门到精通实战>, 当然入门最快的不是看书,是看视频,从网上找一

IOS开发:应用程序多语言本地化解决方案

  多语言在应用程序中一般有两种做法: 一.程序中提供给用户自己选择的机会; 二.根据当前用户当前移动设备的语言自动将我们的app切换对应语言. 第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点: 1.本地化应用程序名称 2.本地化字符串 3.本地化图片 4.本地化其他文件 1.本地化应用程序名称 (1)点击"new file"然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到"String File"的图标.创建这个文件,

iOS应用生命周期

作为应用程序的委托对象,AppDelegate类在应用生命周期的不同阶段会回调不同的方法.首先,让我们先了解一下iOS 应用的不同状态及它们彼此间的关系,见图1 .                                                                                                             图1 iOS应用状态图 下面简要介绍一下iOS 应用的5种状态.  Not Running(非运行状态).应用没有运

iOS推送获取不到设备token: 未找到应用程序的“aps-environment”的权利字符串

今天在调试利用腾讯出的信鸽推送系统做iOS的推送消息时,发现真机调试时提示"未找到应用程序的"aps-environment"的权利字符串",网上搜了搜原因大致是因为: APP id和mobileprovision对应不上. 按照信鸽官网的教程http://developer.xg.qq.com/index.php/IOS_%E8%AF%81%E4%B9%A6%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97我已经成功配置好了APP ID,但是