触摸开始不适用于scrollView

时间:2014-07-22 21:42:19

标签: ios objective-c uiscrollview touchesbegan

我有这个命令,用于在用户点击图像时捕获:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];

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

    if(CGRectContainsPoint(card1.frame,touchLocation))
    {
        cardSelected = @"pagseguro";
        [card1.layer setBorderColor: [[UIColor redColor] CGColor]];
        [card1.layer setBorderWidth: 1.0];

        [card2.layer setBorderColor: [[UIColor blackColor] CGColor]];
        [card2.layer setBorderWidth: 1.0];

    }
    if(CGRectContainsPoint(card2.frame,touchLocation))
    {
        cardSelected = @"sumup";
        [card1.layer setBorderColor: [[UIColor blackColor] CGColor]];
        [card1.layer setBorderWidth: 1.0];

        [card2.layer setBorderColor: [[UIColor redColor] CGColor]];
        [card2.layer setBorderWidth: 1.0];
    }
}

这段代码在我输入scrollView之前完美运行,我按如下方式拉动屏幕滚动:

[self.view addSubview:scroll];

    scroll.contentSize = scroll.frame.size;
    scroll.frame = self.view.frame;

现在触摸开始方法无法识别图像中出现的更多触摸,我该如何解决?

1 个答案:

答案 0 :(得分:0)

默认情况下,请尝试imageView.userInteractionEnabled = YESimageView上没有。

如果您在控制器中实现touchesBegan:withEvent:,它将无法正常工作,因为它将调用UIView的子类,因此您需要继承ScrollView并需要覆盖此方法。

如果UITapGestureRecognizer不起作用,则另一个选择是使用userInteractionEnabled