Arc*_*ekt 38 objective-c uibutton ios
我已经制作了很多按钮,我无法弄清楚为什么这个按钮不起作用.
我的层次结构设置如下:
View -> Scroll View -> Subview -> Button
Run Code Online (Sandbox Code Playgroud)
此子视图中还有很多其他项目,每个项目在触摸时都有效.在界面构建器中,我可以看到" Touch Up Inside "事件绑定到我的方法
__CODE__
.
但是,当我单击该按钮时,该方法永远不会执行,我的断点随后永远不会被击中.
我注意到,即使我按下按钮上的按钮,标签也不会改变颜色(即使显示高亮显示触摸),但视图上的另一个按钮确实如此.
在按钮上启用了用户交互以及层次结构中的所有内容.
为了让我在子视图中的项目接收触摸事件,我使我的滚动视图看起来像这篇文章中的第4个答案.
Arc*_*ekt 59
啊哈,我明白了.事实证明,包含按钮的子视图(以及其他控件)的高度为740,按钮的Y值为781.向上移动按钮可以解决问题.由于一切都正确显示,我没想到检查子视图的高度.
Xei*_*han 13
如果a UITapGestureRecognizer
在您的按钮的任何超级视图上实现.然后UIButtonEventTouchUpInside
不会被解雇
你应该像这样实现UITapGestureRecognizer
tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognized:)];
[tapGesture setCancelsTouchesInView:NO]; // This should do what you want
[tapGesture setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
另一件要考虑的事情是你是否在它上面放置了另一个视图?
例如,如果您从笔尖加载另一个视图并错误地将其框起来,那么它很可能会出现在按钮的顶部,从而拦截任何按下。
您可以使用“Debug View Heirachy”控件检查这是 XCode 6。
归档时间: |
|
查看次数: |
40927 次 |
最近记录: |