首页 文章

如何通过大量控件检测uiview?

提问于
浏览
1

我的问题是关于点击检测 .

我有一个uiviewcontroller,uiview上有一些控件(标签,按钮,tableview,imageview等) .

当我点击uibutton时,我会显示一个小的uiview(200x150),如果用户在smallview中点击uibutton,我会隐藏小视图 .

但是如果用户点击背景,我无法隐藏uiview .
我试过这段代码..

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
    //NSLog(@"Touches began.");
    [self hideShareView];
}

如果我点击uiviewcontrols视图中的另一个按钮,它将无法工作 .

我只是想让我的uiviewcontrol的uiview先做出反应 .
我认为它关于firstResponder,但我不知道如何设置它 .

编辑:我希望它像ipad中的uiPopover一样工作 .

3 回答

  • 0

    我相信正确的方法是在显示“小视图”时添加新的透明UIView . 您应该为该UIView添加UITapGestureRecognizer,以便在检测到点击时触发所需的选择器 . 此外,您必须确保正确排列视图,小视图位于顶部,透明UIView位于下方,视图层次结构的其余部分位于透明UIView下方 .

    最后,您应确保在删除小视图的同时从视图层次结构中删除透明UIView .

    那有意义吗?

  • 0
  • 1

    尝试使用 bringing small view (即分享视频) to front 或将您的主视图发送到您的小视图后面 .

    如果它仍然无效& you don't want your main view to perform any action when smallview is opened 然后尝试

    [<YOUR_MAIN_VIEW> setUserInteractionEnabled:NO]; ,但 MAKE SURE 只有当您不希望主视图在打开小视图时执行任何操作时,才能执行此操作

相关问题