【发布时间】:2012-02-22 12:57:59
【问题描述】:
我正在开发一个自定义控制器。我想创建一个滑块,以在更多选项之间进行选择。问题是当我触摸我想要的按钮时,它不会调用我的touchesBegan 方法。但是,如果我按下视图的任何其他部分,它就会起作用。如何让我的按钮移动?
谢谢。
【问题讨论】:
我正在开发一个自定义控制器。我想创建一个滑块,以在更多选项之间进行选择。问题是当我触摸我想要的按钮时,它不会调用我的touchesBegan 方法。但是,如果我按下视图的任何其他部分,它就会起作用。如何让我的按钮移动?
谢谢。
【问题讨论】:
UIButton 正在捕获触摸事件。如果你试试这个
myButton.userInteractionEnabled = NO;
然后它将不再消耗触摸事件,但也将不再触发 onTouchUpInside 事件。在这种情况下,您将处理超级视图中的所有触摸并相应地定位滑块按钮。
它应该可以拖动。这适用于任何 UIView。
【讨论】:
touchesBegan 不适用于 UIButton .. 要使其工作,您必须继承 UIButton 并实现 touchesBegan
请参阅此答案以获取更多信息https://stackoverflow.com/a/4863734/919545
【讨论】:
为什么不创建自定义 UIView 并避免使用 UIButton 类?继承 UIButto 或设置更简单
myButton.userInteractionEnabled = NO;
【讨论】: