2013-09-30 76 views
0

我有一个删除按钮,当我在表格视图的行上向左滑动时出现。当您在视图外点击时隐藏删除按钮

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

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

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

而在回调我只是有一个消息:

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

但是,当我在一般区域挖掘外,我没有看到该消息。

+0

您的UIButton是否存在一些其他视图背后的可能性? Cud你尝试给你的UITableView和所有其他视图提供不同的bgColor,并检查按钮是否在所有视图之外。 – HRM

+0

谢谢HRM。该视图确实隐藏在包括tableview和collection视图在内的所有子视图之后。我认为这是关键? – serverman

+0

不客气......希望修正问题...... :) – HRM

回答

0

我解决了这个问题如下:

。创建了一个视图TopView从UIView 分类。将我的顶级视图的课程更改为此课程。 。在我的逻辑适当的地方,存储需要隐藏在顶视图中的子视图

self.view.mySubview = subview; 

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

+0

如果你解决了你的问题,我建议你选择你自己的答案作为接受的答案。 –

+1

嗯..它确实让我接受它 - 所以我做到了 - 谢谢:) – serverman