我的问题:我有一个超级视图EditView
,基本上占用整个应用程序框架,子视图MenuView
只占用底部〜20%,然后MenuView
包含它自己的子视图ButtonView
,它实际上位于MenuView
边界之外(类似这样:) ButtonView.frame.origin.y = -100
.
(注意:EditView
其他子视图不属于MenuView
视图层次结构,但可能会影响答案.)
您可能已经知道了这个问题:何时ButtonView
在MenuView
(或者更具体地说,当我的触摸在MenuView
范围内)时,ButtonView
响应触摸事件.当我的触摸超出MenuView
界限(但仍然在ButtonView
界限内)时,不会收到任何触摸事件ButtonView
.
例:
EditView
所有观点的父母MenuView
EditView的子视图ButtonView
MenuView的子视图图:
+------------------------------+
|E |
| |
| |
| |
| |
|+-----+ |
||B | |
|+-----+ |
|+----------------------------+|
||M ||
|| ||
|+----------------------------+|
+------------------------------+
Run Code Online (Sandbox Code Playgroud)
因为(B)在(M)的框架之外,(B)区域中的抽头将永远不会被发送到(M) - 实际上,(M)在这种情况下从不分析触摸,并且触摸被发送到层次结构中的下一个对象.
目标:我认为压倒一切hitTest:withEvent:
可以解决这个问题,但我不明白究竟是怎么回事.在我的情况下,应该hitTest:withEvent: …
我在UIView中有一个UIButton,它位于UIViewController中,我已经从.xib文件中分配和输入.
当将IBAction挂钩到UIButton的"Touch Down"事件时,它会正确触发.但如果我把它连接到'Touch Up Inside'事件,它就不会响应.
其他事件也不起作用.'触摸拖动输入','触摸拖动退出','触摸外部'等.仅触摸向下.
有谁知道为什么会这样?
该按钮是视图控制器中的简单圆角矩形按钮.我已经加载了视图控制器:
-(void) pushNewViewController
{
MyViewController* newViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.view addSubview:newViewController.view];
[newViewController release];
}
Run Code Online (Sandbox Code Playgroud)
我在IB中将此按钮添加到圆形rect按钮到MyViewController.我创建了以下IBActions:
-(IBAction) buttonTouchDown:(id)sender
{
NSLog(@"Button Touch Down Event Fired.");
}
-(IBAction) buttonTouchUpInside:(id)sender
{
NSLog(@"Button Touch Up Inside Event Fired.");
}
Run Code Online (Sandbox Code Playgroud)
在IB I菜单中单击按钮并将Touch Down插座拖动到MyViewController并选择buttonTouchDown:.保存了IB xib.
当我运行并测试按钮并获得"Button Touch Down Event Fired"日志消息时.
但是当我回到IB并将Action更改为Touch Up Inside并将其连接到buttonTouchUpInside:IBAction并保存.我再次测试,没有得到回应.
此致,Rich
所以我想做的就是当用户触摸UIScrollView时播放声音.UIScrollViewDelegate具有scrollViewWillBeginDragging:方法,但它只在touchMoved上调用.我想让它在touchBegan上调用.
尝试touchesBegan:withEvent:但它没有任何接触.有人有线索吗?
我有一个包含大量UIButton的项目,使用xcode 4.5和storyboard以及ARC.在ios6中测试后,一切都很顺利.但在ios5中,UIButton触及内部事件不起作用,动作未调用.我尝试使用触摸它,它的工作原理.但是,我有很多UIButton,我不能一一改变.更重要的是,降落事件确实提供了良好的体验.
我在许多视图控制器中使用了以下代码:在viewDidLoad中:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
-(void)dismissKeyboard {
[aTextField resignFirstResponder];
}
Run Code Online (Sandbox Code Playgroud)
这可能是原因.我稍后会看看.但它适用于ios6.你知道什么是错的吗?非常感谢!
iphone ×2
uibutton ×2
ibaction ×1
ios ×1
ios5 ×1
ios6 ×1
objective-c ×1
storyboard ×1
touch ×1
uikit ×1
uiscrollview ×1