【发布时间】:2012-07-25 14:26:44
【问题描述】:
这是我的视图层次结构: parentView (UIView) 有一个 UIImageView 作为它的子视图,而它又有一个 UIButton 作为它的子视图。
left = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"left.png"]];
left.userInteractionEnabled = YES;
[parentView addSubview:left];
back = [UIButton buttonWithType:UIButtonTypeCustom];
[back setImage:[UIImage imageNamed:@"Arrow-left.png"] forState:UIControlStateNormal];
[back addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside];
back.showsTouchWhenHighlighted = YES;
[left addSubview:back];
一切正常显示,但按钮不响应触摸。如果我将其框架从 UIImageView 的框架移到其他地方并将其设置为父视图(UIView)的子视图,它会做出响应。但事情就是这样。
即使我设置为 parentView 的 subView,如果按钮位于 UIImageView 的框架区域内,它也不会响应。图像视图的 userInteractionEnabled 属性已设置为 YES。知道发生了什么吗?
【问题讨论】:
-
back: 的代码是什么。您是否在其中放置了
NSLog以查看它是否确实在触发? -
您能否尝试将按钮添加到
parentView而不是left? -
@EricBrotto 它已经在我的问题中了。我试过这样做,只要按钮不落在 imageview 的框架区域中,它就可以工作。
-
@WrightsCS 这个问题非常多地表明它在放置在图像视图的框架区域之外时触发。
-
愚蠢的问题,但是imageView下面的按钮是什么?你能把它放在上面吗?
标签: iphone ios ipad uiimageview uibutton