iOS:通过编程方式调用附加到UIButton的平移手势

iOS:通过编程方式调用附加到UIButton的平移手势,ios,objective-c,iphone,uibutton,Ios,Objective C,Iphone,Uibutton,当用户在我的水平滚动视图中高亮显示一个按钮时,一个外观相同的按钮(不同的可拖动子类)被添加到正上方。我试图达到的效果类似于从纸牌堆中取出一张牌,然后在下面放另一张牌 一切都在工作,除了现在用户高亮显示的那一刻,随着新视图的出现,touch get被取消。用户必须抬起手指并再次点击以注册拖动事件已开始。我想做的是自动将触摸从第一个按钮传递到新添加的按钮,而用户无需再次移除手指并触摸新按钮。我甚至不确定这是否可能 也许我的想法是错误的,但我没有将第一个按钮设为可拖动按钮的原因是因为我在水平滚动视图中

当用户在我的水平滚动视图中高亮显示一个按钮时,一个外观相同的按钮(不同的可拖动子类)被添加到正上方。我试图达到的效果类似于从纸牌堆中取出一张牌,然后在下面放另一张牌

一切都在工作,除了现在用户高亮显示的那一刻,随着新视图的出现,touch get被取消。用户必须抬起手指并再次点击以注册拖动事件已开始。我想做的是自动将触摸从第一个按钮传递到新添加的按钮,而用户无需再次移除手指并触摸新按钮。我甚至不确定这是否可能


也许我的想法是错误的,但我没有将第一个按钮设为可拖动按钮的原因是因为我在水平滚动视图中重复使用了它

> P> >我认为您应该将每个卡视为自定义代码<代码> UIVIEW/COD>和处理< /P>
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event;
-(void)touchesbeated:(NSSet*)toucheevent:(nullable UIEvent*)事件;
-(void)touchesMoved:(NSSet*)toucheEvent:(可为null的UIEvent*)事件;
-(void)touchesend:(NSSet*)toucheevent:(nullable UIEvent*)事件;
显示卡片的选择、拖动和最后放置。因此,所有选择和放置卡的逻辑都将放在一个定制的
UIView
类中。对于所有其他验证,请在父级
UIViewController