加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 如何使用Interface Builder设置UIScreenEdgePanGestureRe

发布时间:2020-12-15 01:56:50 所属栏目:百科 来源:网络整理
导读:当我使用Interface Builder将其添加到我的视图控制器时,我无法使UIScreenEdgePanGestureRecognizer工作,所以我在这里要求确定我是做错了,还是Xcode中有错误。 以下是重现步骤: 使用iOS的“单一查看应用程序”模板创建一个新的Xcode项目。 通过从Interfac
当我使用Interface Builder将其添加到我的视图控制器时,我无法使UIScreenEdgePanGestureRecognizer工作,所以我在这里要求确定我是做错了,还是Xcode中有错误。

以下是重现步骤:

>使用iOS的“单一查看应用程序”模板创建一个新的Xcode项目。
>通过从Interface Builder中的Object Library中拖动一个UIView,将其添加到主视图控制器
>通过从界面生成器中的对象库中拖动一个UIScreenEdgePanGestureRecognizer来添加视图
>确保手势识别器已启用,并选择边缘:

>打开ViewController类的助理编辑器,并从UIScreenEdgePanGestureRecognizer中拖拽到ViewController的实现块,以创建一个新的IBAction
`在动作的方法体中添加一个断点,以测试是否正在识别边缘平移手势

得到的代码如下:

如果我在我的设备上运行应用程序(运行iOS 8.02的iPhone 6),那么当我进行边缘扫描时,断点不会受到打击。

有没有我失踪的东西?

更新:这是在2014年10月8日提交给苹果(rdar:// 18582306)的错误,但仍然没有在Xcode 6.4(6E35b)中解决。

解决方法

我设立了一个项目来测试你的问题,发现你所做的同样的问题。以下是我设置的测试场景:

>我完全按照你所做的,使用Interface Builder来构建屏幕边框手势。我的代码中唯一的区别是我把一行代码放在选择器中,所以调试器会有一些停止的代码。调试器无法像您所发现的那样停止。

-(void)handlePan:(id)sender
{
    NSString *test = @"";
}

>然后,我使用Interface Builder在同一视图上使用捏捏手势创建了一个附加的手势,并且我能够让调试器在该选择器中停止。所以Interface Builder似乎能够正确地构建其他手势。
>然后我使用以下代码手动创建了屏幕边框手势,并且按预期工作。

在ViewController.h文件中,我添加了UIGestureRecognizerDelegate。

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>
@end

在ViewController.m文件中,我手动实现了手势。

#import "ViewController.h"

@interface ViewController ()

-(void)handlePan:(id)sender;

@end

@implementation ViewController

- (void)viewDidLoad 
{
    [super viewDidLoad];
    UIScreenEdgePanGestureRecognizer *pan = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self
                                                                                              action:@selector(handlePan:)];
    [pan setEdges:UIRectEdgeLeft];
    [pan setDelegate:self];
    [self.view addGestureRecognizer:pan];
}

-(void)handlePan:(id)sender
{
    NSString *test = @"";
}

@end

最后我得出了相同的结论 – Interface Builder的UIScreenEdgePanGestureRecognizer实现似乎有问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读