Ios 在视图外部单击时隐藏删除按钮

Ios 在视图外部单击时隐藏删除按钮,ios,button,Ios,Button,我在表视图的行上向左滑动时,会显示一个删除按钮 如果用户点击视图中的任何其他位置,我希望能够隐藏此按钮。我该怎么做?我试着在所有视图的底部放置一个巨大的按钮,但按钮并没有检测到外部的点击 在viewDidLoad中,我添加了视图控制器作为目标: [self.backgroundButton addTarget:self action:@selector(backgroundButtonTapped:) forControlEvents:UIControlEventTouchUpInside];

我在表视图的行上向左滑动时,会显示一个删除按钮

如果用户点击视图中的任何其他位置,我希望能够隐藏此按钮。我该怎么做?我试着在所有视图的底部放置一个巨大的按钮,但按钮并没有检测到外部的点击

viewDidLoad
中,我添加了视图控制器作为目标:

[self.backgroundButton addTarget:self action:@selector(backgroundButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
在回拨中,我只收到一条消息:

- (IBAction)backgroundButtonTapped:(id)sender {
    NSLog(@"BACKGROUND VIEW TOUCHED");
}

但是当我在一个普通的区域外点击时,我看不到信息

我解决问题的方法如下:

。创建了从UIView子类化的视图TopView . 将我的顶级视图的类更改为此类。 . 在我的逻辑中的适当位置,存储了需要隐藏在俯视图中的子视图

self.view.mySubview = subview;

。覆盖hitTest:在俯视图中显示withEvent。在这里,我检测到子视图外的点击,并根据需要隐藏子视图。

您的UIButton是否可能位于其他视图后面?因为您尝试为UITableView和所有其他视图指定不同的bgColor,并检查按钮是否在所有视图之外。谢谢HRM。视图确实位于所有子视图后面,包括tableview和collection视图。我以为这就是重点?不客气……希望问题解决了……:)不,实际上不是。我想说的是,我的理解是,按钮应该位于其他视图之外。如果您解决了您的问题,我建议您选择您自己的答案作为接受的答案。