按钮不可触摸
Posted
技术标签:
【中文标题】按钮不可触摸【英文标题】:Button is not touchable 【发布时间】:2014-08-21 13:35:58 【问题描述】:我以编程方式设置了视图和按钮,并且我添加/删除了很多视图。我正在做的也是在某些视图上添加按钮,而我在一个非常具体的视图上遇到了麻烦。
结构:
我有一个主视图,在其之上我添加了另一个视图(相同大小,这是平板电脑的整个大小)。此视图包含按钮、图像等。这一切都可以正常工作。 其中一个按钮是“菜单”,它会显示一个简单的菜单,以便您可以导航到其他视图。这个菜单是另一个视图(第三个),它把自己添加到一切之上。在这里也可以正常工作。
重要提示:与整个框架相比,该菜单非常小,但菜单视图仍占据整个空间,它只有 70% 透明。
问题:
什么不起作用,是我删除该菜单的方法,例如,当我决定单击可见菜单周围的透明空间时,它只是将其关闭。
为此,我决定添加一个透明背景按钮(它占据整个框架,就在我的可见菜单后面,但仍在我的菜单视图框架中)。
所以基本上:我点击一个按钮,它会关闭视图并做一些事情。这是我正在使用的代码: (...)
UIButton *backgroundCloser = [[UIButton alloc]initWithFrame:_menuViewController.view.frame];
[backgroundCloser addTarget:self action:@selector(closeMenuView) forControlEvents:UIControlEventTouchUpInside];
backgroundCloser.backgroundColor = [UIColor orangeColor];
backgroundCloser.alpha = 0.2;
[self.view addSubview:backgroundCloser];
[self.view bringSubviewToFront:backgroundCloser];
[self.view addSubview:_menuViewController.view];
[self.view bringSubviewToFront:_menuViewController.view];
- (void)closeMenuView
stuff
现在我的按钮是略带橙色和透明的,所以我确定它在那里。我可以看到它。但是我的“closemenuview”永远不会被点击。或者根本没有。
我尝试将其作为 IBAction,但徒劳无功。
知道我的宝宝发生了什么吗?
【问题讨论】:
【参考方案1】:如果您要在各种视图上添加按钮,请尝试编写
YOUR_View.userInteractionEnabled = YES;
和设置按钮如下
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(aMethod:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
【讨论】:
【参考方案2】:修复它。
总是一样的,我找了一个小时左右的所有东西,一旦我在堆栈上发帖,我就自己找到答案了。
我只是将它添加到错误的视图 (self.view
) 而不是 _menuviewcontroller.view
。
【讨论】:
我的回答是一样的。我问你在哪里添加了按钮。总之干得好。以上是关于按钮不可触摸的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationController 中的 UISearchBar,取消按钮不可选
如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?
使用 Storyboard 和 Autolayout 旋转到横向后,UIScrollView 中的 UIButtons 不可触摸?