按钮不可触摸

时间:2014-08-21 13:35:58

标签: ios button views action frame

我已经以编程方式设置了视图和按钮,而且我正在添加/删除很多视图。我正在做的还是在某些视图上添加按钮,我遇到了一个非常具体的问题。

结构:

我有一个主视图,在其上面我添加了另一个视图(相同的大小,这是平板电脑的整个大小)。这个视图包含按钮,图像等。这一切都很好。 其中一个按钮是一个“菜单”,它会显示一个简单的菜单,以便您可以导航到其他视图。这个菜单是另一个视图(第三个),它将自己添加到所有内容之上。在这里工作也很好。

重要提示:与整个画面相比,该菜单非常小,但菜单视图仍占据整个空间,只有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,但是徒劳无功。

有关我宝宝发生了什么的任何线索?

2 个答案:

答案 0 :(得分:0)

如果要在各种视图上添加按钮,请尝试编写

YOUR_View.userInteractionEnabled = YES;

和setUp按钮如下

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);

答案 1 :(得分:0)

修正了它。

它总是一样的,我找了大约一个小时的所有东西,一旦我在堆叠上发布,我就会自己找到答案。

我只是将其添加到错误的视图(self.view)而不是_menuviewcontroller.view