添加第二个 PanGestureRecognizer 或等效的解决方法?
Adding a second PanGestureRecognizer, or equivalent workaround?
我正在使用 ios-charts
库,当用户停止在图表上平移时,我需要执行一些特殊逻辑。该库将 panGestureRecognized
方法定义为 fileprivate,所以我不能 subclass/override 它。它也不提供任何类型的协议来收听平移手势。
如何在不中断图表功能的情况下收听平移手势?
我考虑过在图表顶部放置一个视图并向 that 添加手势识别器,但它吞没了事件并破坏了常规图表功能。
任何手势识别器的默认行为都是阻止对其子视图的触摸。您可以通过以下方式更改此行为:
panGesture.cancelsTouchesInView = NO;
要更好地控制同步平移手势识别,请将您自己的 class 设置为手势识别器的代理并使用此方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
如果您只关心两个平移手势同时工作,则在此方法中只需 return YES
。
我正在使用 ios-charts
库,当用户停止在图表上平移时,我需要执行一些特殊逻辑。该库将 panGestureRecognized
方法定义为 fileprivate,所以我不能 subclass/override 它。它也不提供任何类型的协议来收听平移手势。
如何在不中断图表功能的情况下收听平移手势?
我考虑过在图表顶部放置一个视图并向 that 添加手势识别器,但它吞没了事件并破坏了常规图表功能。
任何手势识别器的默认行为都是阻止对其子视图的触摸。您可以通过以下方式更改此行为:
panGesture.cancelsTouchesInView = NO;
要更好地控制同步平移手势识别,请将您自己的 class 设置为手势识别器的代理并使用此方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
如果您只关心两个平移手势同时工作,则在此方法中只需 return YES
。