所以我有一个UIView,我称之为ctrView,这个ctrView被添加到我的UIViewController的视图中。它基本上只是一个较小的矩形框架。我在这个容器视图的右上角添加了一个UIButton,但是当点击位于ctrView外部的UIButton区域时,似乎不会触发与该按钮绑定的操作。只有容器视图中的UIButton区域才会触发操作。我该如何解决这个奇怪的问题?
UIButton *closeButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[closeButton setImage:[UIImage imageNamed:@"close.png"] forState:UIControlStateNormal];
[closeButton setBackgroundColor:[UIColor clearColor]];
[closeButton addTarget:self action:@selector(closeZoomedImageView) forControlEvents:UIControlEventTouchUpInside];
[closeButton setCenter:CGPointMake(ctrView.frameX + ctrView.frameWidth - 30, ctrView.frameY - 15)];
[ctrView addSubview:closeButton];
[closeButton release];
答案 0 :(得分:4)
这是正常行为,父母界限之外的视图不会接收触摸动作 为了解决这个问题,请重新排列视图,如下所示
主视图将同时包含内部视图和关闭按钮 主视图将足以容纳按钮 主视图将具有清晰的颜色背景,因此不会影响布局
因此,您将在内部视图中添加当前所有视图, 内部视图和按钮视图都将添加到主视图
然后呈现viewcontroller的主视图