【问题标题】:Tap gesture on stacked images在堆叠的图像上点击手势
【发布时间】:2014-10-13 20:34:52
【问题描述】:

我想在我的视图中显示图像并添加点击手势来做一些事情。 我的图像创建代码如下所示

for(int i = 0; i < 5; i++) {
    UIImageView *imageToMove =
    [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon1.png"]];
    imageToMove.frame = CGRectMake(((float)rand() / RAND_MAX) * 1024, ((float)rand() / RAND_MAX) * 768 , 95, 95);
    [imageToMove setUserInteractionEnabled:YES];
    [imageToMove addGestureRecognizer:singleTap];
    [self.view addSubview:imageToMove];

}

这个简单的功能可以在点击图像时获得一些反馈

- (void)tapDetected {
    NSLog(@"single Tap on imageview");

}

我的问题是,只有一张(恕我直言,最后添加的一张)图像是可触摸的。无法访问“后面”的其他图像。

有没有办法解决这个问题?

【问题讨论】:

    标签: ios image uigesturerecognizer gesture


    【解决方案1】:

    在点击堆叠的图像时,您想要做什么并不完全清楚(我的意思是,很自然的事情是您触摸的图像可以移动,这应该由您的代码完成);无论如何,请尝试:

     singleTap.cancelsTouchesInView = NO;
    

    这将使您的手势识别器不会取消它们处理的点击,因此保持视图也将接收事件。如果这没有帮助,请查看UIGestureRecognizerDelegate protocol,特别是方法

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer
    

    这应该允许精细控制您的手势识别器如何共存。

    【讨论】:

    • 最后我想在点击时删除图像。但目前我必须按图像的创建顺序点击它们。
    • 好吧,正如我所说,它应该“开箱即用”;如果您必须将图像部分重叠,如果您点击图像下方另一个图像的可见部分,则该图像将收到点击。当然,您将只能点击部分覆盖的图像,而不是完全覆盖的图像......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多