gpt4 book ai didi

ios - 转换层上的 UIGestureRecognizer

转载 作者:行者123 更新时间:2023-12-04 18:20:21 27 4
gpt4 key购买 nike

我正在开发 iPhone 应用程序,但遇到了手势识别器的问题。

我在一个 View 上添加了一个 UITapGestureRecognizer,然后我用 CABasicAnimation 转换与这个 View 相关的层。在这个转换之后,手势识别器只在转换之前的 View 所占据的区域工作。

希望我的问题的这个小描述是可以理解的..

这是一些代码:

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(myViewTapped:)];
[self.myView addGestureRecognizer:tapGestureRecognizer];

CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"position.y"];
[animation setFromValue:[NSNumber numberWithFloat:0]];
[animation setToValue:[NSNumber numberWithFloat: - 100]];
[animation setDuration:.3];
[animation setTimingFunction:[CAMediaTimingFunction functionWithControlPoints:.55 :-0.25 :.30 :1.4]];
animation.additive = YES;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
[self.myView.layer addAnimation:animation forKey:nil];

我该如何处理这个问题?

谢谢!

最佳答案

您只为 View 的图形部分(CALayer)设置动画,而不是负责用户交互的部分(UIView 本身)。您的代码移动图层并使其淹没在其他地方,但不要更改框架(或绑定(bind)+中心)。

你有 3 个选项(也许更多,我只能想到这 3 个):

1) 使用基于 UIView 的动画 [UIView animation...]

2) 用你的代码构建结构,但在动画发生后重新定位 View (但这可能会引起问题,因为你的层也将被移动)。

3) 使用您的动画,但将手势识别器放在父(更大) View 上,然后检查那里的事件...

关于ios - 转换层上的 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15925867/

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