1

我有一个 iPhone 应用程序,我在其中添加了一个自定义视图,而不是导航栏视图。我在正常情况下隐藏了该自定义视图,并在需要时取消隐藏它。现在我正在向该自定义视图添加一个具有操作的按钮。但是当我单击它时,没有任何操作正在工作。有人可以帮助我吗?这是我在视图 didload 中的代码片段

curtainsView=[[UIImageView alloc]init];
curtainsView.image=[UIImage imageNamed:@"curtains.png"];
curtainsView.frame=CGRectMake(0,-44, 320, 60);
curtainsView.backgroundColor=[UIColor clearColor];
UIImage *button2Image = [UIImage imageNamed:@"scroll_down.png"];
scroll = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
self.scroll.tag=100;
[scroll setImage:button2Image forState:UIControlStateNormal];
self.scroll.frame = CGRectMake(270,0, 40,40);
[scroll addTarget:self action:@selector(backpressed:) forControlEvents:UIControlEventTouchUpInside]; 
[self.curtainsView addSubview:scroll];
[self.view addSubview:curtainsView];
[self changeNavigationBarTitleTo:@""];
[curtainsView setHidden:YES];
4

4 回答 4

2

您必须启用窗帘视图的用户交互。

尝试这个:

[curtainsView setUserInteractionEnabled:YES]

来自 Apple 的UIImageView 类参考

新的图像视图对象默认配置为忽略用户事件。如果要在 UIImageView 的自定义子类中处理事件,则必须在初始化对象后将 userInteractionEnabled 属性的值显式更改为 YES。

于 2012-09-04T13:37:12.910 回答
0

启用窗帘视图的用户交互。

[curtainsView setUserInteractionEnabled:YES]
于 2013-11-15T11:04:30.607 回答
0

我不知道您的整个代码为什么要隐藏视图,但我想说的是,将您添加UIButton到您的self.view而不是self.curtainsView.
只需对您的代码进行一些更改。

[self.view addSubview:curtainsView];
[self.view addSubview:scroll];
于 2012-09-04T17:42:33.517 回答
0

检查backPressed方法的签名。起初我绊倒了,没有意识到@selector(backpressed:)寻找:

-(void)backPressed:(id)sender { // the colon indicates the first argument

如果您的签名没有发件人参数,您将需要添加一个或删除冒号@selector。IE:

-(void)backPressed
于 2012-09-04T14:35:45.120 回答