我有一个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];
答案 0 :(得分:2)
您必须启用curtainsView的用户交互。
试试这个:
[curtainsView setUserInteractionEnabled:YES]
来自Apple的UIImageView Class Reference
默认情况下,新图像视图对象配置为忽略用户事件。如果要处理UIImageView的自定义子类中的事件,则必须在初始化对象后显式将userInteractionEnabled属性的值更改为YES。
答案 1 :(得分:0)
检查backPressed
方法的签名。我一开始没有意识到@selector(backpressed:)
正在寻找:
-(void)backPressed:(id)sender { // the colon indicates the first argument
如果您的签名没有发件人参数,则需要在@selector
中添加一个或删除冒号。即:
-(void)backPressed
答案 2 :(得分:0)
我不知道您的整个代码为什么隐藏视图,但我想说的是将UIButton
添加到self.view
而不是self.curtainsView
。
只需对代码稍作修改即可。
[self.view addSubview:curtainsView];
[self.view addSubview:scroll];
答案 3 :(得分:0)
启用curtainsView的用户交互。
[curtainsView setUserInteractionEnabled:YES]