1

ナビゲーションバーのビューにもかかわらず、カスタムビューを追加しているIPhoneアプリケーションがあります。通常はそのカスタムビューを非表示にして、必要に応じて再表示します.今、アクションを持つカスタムビューにボタンを追加しています.しかし、私がそれをクリックしても、アクションが機能していません。

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 Class Referenceから

新しいイメージ ビュー オブジェクトは、デフォルトでユーザー イベントを無視するように構成されています。UIImageView のカスタム サブクラスでイベントを処理する場合は、オブジェクトの初期化後に userInteractionEnabled プロパティの値を明示的に YES に変更する必要があります。

于 2012-09-04T13:37:12.910 に答える
0

なぜあなたがビューを隠しているのかあなたのコード全体については知りませんが、私が言いたいことはUIButtonあなたのself.view代わりにself.curtainsView.
コードを少し変更するだけです。

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

カーテン ビューのユーザー操作を有効にします。

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

メソッドの署名を確認しますbackPressed。私は最初、それが次のものを探していることに気づかずにつまずきました@selector(backpressed:):

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

署名に送信者引数がない場合は、引数を追加するか、@selector. すなわち:

-(void)backPressed
于 2012-09-04T14:35:45.120 に答える