仅在向左滑动至少一次后向右滑动

时间:2014-05-28 10:56:30

标签: objective-c

我正在使用向左和向右滑动“下一张图片”和“上一张图片”。在启动应用程序时,我想禁用右键滑动(上一个),直到至少左键滑动 - 有没有明显的方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以创建一个简单的方法来处理来自所有UISwipeGestureRecognizer实例的滑动。此方法将自动启用/禁用手势识别器。

考虑到你有两个识别器,即

UISwipeGestureRecognizer *swipeRight;
UISwipeGestureRecognizer *swipeLeft;

要显示的图像数组

NSArray *arrImages;

您还需要维护全球ivar

NSInteger currIndex; //To maintain the index

两者都应该与选择器具有相同的方法,如下所示:

-(void)handleSwipeFrom:(UISwipeGestureRecognizer*)recognizer
{
    NSInteger newIndex = currIndex;

    if ([recognizer isEqual: swipeLeft])
    {
        newIndex ++;
    }
    else if ([recognizer isEqual: swipeRight])
    {
        newIndex --;
    }

    if (newIndex >= 0 && newIndex <= ([arrImages count] - 1))
        [self showImageAtIndex:newIndex];

}

showImageAtIndex:方法可以按如下方式处理其余部分:

-(void) showImageAtIndex: (NSInteger)index
{
    if (index == 0)
    {
        [swipeRight setEnabled:NO];
    }
    else
    {
        [swipeRight setEnabled:YES];
    }

    if (index == ([arrImages count] - 1))
    {
        [swipeLeft setEnabled:NO];
    }
    else
    {
        [swipeLeft setEnabled:YES];
    }

    currIndex = index;


//Show image at currIndex here

}

为了使其完美运行,您需要实例化currIndex并在viewDidLoad中调用showImageAtIndex:

currIndex = 0;
[self showImageAtIndex: currIndex];