我的问题是关于点击检测。
我有一个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一样工作。
答案 0 :(得分:1)
我认为正确的方法是在显示“小视图”时添加新的透明UIView。您应该为该UIView添加UITapGestureRecognizer,以便在检测到点击时触发所需的选择器。此外,您必须确保视图排列正确,小视图位于顶部,透明UIView位于下方,视图层次结构的其余部分位于透明UIView下方。
最后,您应该确保在删除小视图的同时从视图层次结构中删除透明的UIView。
这有意义吗?
答案 1 :(得分:0)
答案 2 :(得分:0)
尝试bringing
small view
to front
(即分享视图)you don't want your main view to perform any action when smallview is opened
,或将您的主视图发送到您的小视图后面。
如果它仍然不起作用&amp; [<YOUR_MAIN_VIEW> setUserInteractionEnabled:NO];
然后尝试
MAKE SURE
,但{{1}}只有当您不希望主视图在打开小视图时执行任何操作时,您才能执行此操作