2

这是我的第一个问题,但最近几个月我经常使用这个网站(谢谢大家)。

我的问题:我有一个 i-Pad 的拆分视图项目。在 DetailViewController 中,我使用 UIButton。以下是DetailViewController.h中的一些代码:

@property (strong, nonatomic) IBOutlet UIButton *button;
- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer;

DetailViewController.m我只是这样做:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];

    UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRightDetected:)];
    swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
    [self.button addGestureRecognizer:swipeRight];
}

- (void)swipeRightDetected:(UISwipeGestureRecognizer *)recognizer
{

    if (recognizer.view == self.button) {
    NSLog(@"YEAH");
    }
}

现在的问题是:它与 iOS 5.0.1 及更早版本完美配合。现在它不再起作用了。它适用于任何其他方向,但不适用于正确的方向,并且仅在 DetailViewController 中!它只有在你以力量和速度击打 iPad 时才有效(就像一记耳光!),对于模拟器也是如此。它只有在你非常非常非常快地滑动时才有效!

我认为这是一个错误..我该怎么办?也许在苹果论坛上发布同样的问题?谢谢大家,你们都很棒!!马可

4

2 回答 2

7

我猜这与 iOS 5.1 中拆分视图控制器的新“滑动演示样式”有关。发行说明说您可以通过设置presentsWithGesture来禁用此行为NO

另一种选择可能是gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:在您的手势识别器的委托中实现。

于 2012-03-09T17:01:22.450 回答
1

我从这个 StackOverflow 页面上的一个绝妙提示中公然复制这个答案: 主表应用程序

在您的AppDelegate.m文件中,将此行添加到“didFinishLaunchingWithOptions”函数的末尾:

splitViewController.presentsWithGesture = false;

突然,在主-详细信息页面上再次向右滑动。

(松了口气。)

于 2012-07-13T13:22:22.993 回答