我使用下一个代码在我的组件中设置UIPanGestureRecognizer:
MyComponent *c =[super newWithView:{
[UIView class],
{
{
CKComponentGestureAttribute(
[UIPanGestureRecognizer class],
&setupPanRecognizer,
@selector(panGesture:context:),
{}
)
},
{
@selector(setUserInteractionEnabled:), @YES
}
}
}
component: [MyOtherComponent newOtherComponentWithMode:model context:context]];
我在MyComponentController对象中处理panGesture:context
。
我的问题是UIPanGestureRecognizer
阻止了滚动的Feed视图。为了解决这个问题,我想使用UIGestureRecognizerDelegate
协议并允许两个(滚动视图和我的平移)识别器同时工作。
我的问题是如何将我的组件控制器指定为UIPanGestureRecognizer
的委托? setupPanRecognizer
只是C function
,它没有引用MyComponentController
对象甚至组件本身。
我现在看到的唯一方法是在我的控制器的didUpdateComponent
方法中获取手势识别器列表,找到正确的手势识别器并在那里分配代表。
ComponentKit是否为此提供了任何解决方案?
答案 0 :(得分:1)
CKComponentViewAttributeValue CKComponentGestureAttribute(Class gestureRecognizerClass,
CKComponentGestureRecognizerSetupFunction setupFunction,
CKComponentAction action,
CKComponentForwardedSelectors delegateSelectors)
你可以在最后找到“delegateSelectors”参数,这样你就可以尝试传入一个你想在控制器中响应的选择器向量。