按钮不可触摸

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 不可触摸?

即使两个按钮同时触摸,单元格内的两个按钮也会接受触摸

通过触摸移动按钮