0

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

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

在 中viewDidLoad,我将视图控制器添加为目标:

[self.backgroundButton addTarget:self action:@selector(backgroundButtonTapped:) forControlEvents:UIControlEventTouchUpInside];

在回调中我只有一条消息:

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

但是当我在一般区域外面点击时,我看不到该消息。

4

1 回答 1

0

我解决了以下问题:

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

self.view.mySubview = subview;

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

于 2013-10-02T16:42:55.173 回答