gpt4 book ai didi

ios - 基于页面的应用程序和手势识别器

转载 作者:可可西里 更新时间:2023-11-01 05:31:47 25 4
gpt4 key购买 nike

我在 Xcode 4 中为 iPad iOS5 创建了一个基于页面的应用程序。

当我运行应用程序时,我可以看到书中的页面并可以前后翻页,通过点击屏幕或从左向右或从右向左移动手指。

我的问题是,无论我在屏幕中的哪个位置、边框中按下,页面都会翻动。

我已经成功地用这段代码取消了手指的翻转:

for (UIGestureRecognizer *gR in self.pageViewController.gestureRecognizers) 
{
if ([gR isKindOfClass:[UIPanGestureRecognizer class]])
{
[[gR view] removeGestureRecognizer:gR];
}
}

如何在屏幕上定义一个特定区域,当我点击它时,只有它,页面才会翻动?

我问这个是因为我将工具栏放在屏幕底部,当我单击工具栏中的按钮时,页面会翻转。我想在屏幕上放置 2 个箭头,只有当我按下它们时页面才会翻转。

对不起,如果我的解释有点生疏。谢谢大家。

最佳答案

Cipramill 的回答是正确的——这里有更多详细信息。

IOS 文档建议添加新的 View 来描绘您希望翻页手势处于事件状态的区域,但这种方法要简单得多。将代码添加到 Xcode 4 在 MQ1RootViewController.h 和 MQ1RootViewController.m 中设置的默认模板:

更改 MQ1RootViewController.h 中的接口(interface)行:

@interface MQ1RootViewController : UIViewController <UIPageViewControllerDelegate,       
UIGestureRecognizerDelegate>

将此代码添加到 MQ1RootViewController.m 中 viewDidLoad 的最底部:

for (UIGestureRecognizer *gR in self.pageViewController.gestureRecognizers) {
gR.delegate = self;
}

将此方法添加到 MQ1RootViewController.m:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
shouldReceiveTouch:(UITouch *)touch
{

if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]
|| [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {

CGPoint point = [touch locationInView:self.view];

if(point.x < 100 || point.x > 924) return YES;

}

return NO;
}

请注意,“滑动”手势实际上源自页面 View Controller 对象的“平移”手势。

以上将手势限制在屏幕的左右边缘。这允许使用手势与屏幕中央的对象进行交互,而不会因错误的滑动​​而意外更改页面。

关于ios - 基于页面的应用程序和手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com