de-vraag
  • 質問
  • タグ
  • ユーザー
通知:
報酬:
登録
登録すると、質問に対する返答やコメントが通知されます。
ログイン
すでにアカウントをお持ちの方は、ログインして新しい通知を確認してください。
追加された質問、回答、コメントには報酬があります。
さらに
ソース
編集
Wahib  Ul Haq
Wahib Ul Haq
質問

どのようにUIImageView上でクリック可能なUIButtonを作るには?

I want to create a UIButton to display over an UIImageView. My code snippet is as shown below:

imageView = [[UIImageView alloc] initWithImage:image]; //initWithImage:image

imageView.userInteractionEnabled = YES; //to enable touch interaction with image



UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"ClickMe" forState:UIControlStateNormal];
[btn.titleLabel setFont:[UIFont systemFontOfSize:16]];


 btn.frame = CGRectMake(340, 550, 70, 50);

[btn addTarget:self action:@selector(onClickHotSpotButton)   forControlEvents:UIControlEventTouchUpInside]; //it wasnt working


[imageView addSubview:btn];
[self addSubview:imageView]; 

私のアプリケーションは、私がしたい画像の部分にボタンを正確に表示しますが、クリック画像には反応しません。その代わりに、私はその検出時に出力を記録するので、シングルタップを検出します。しかし、私はこのボタンをクリックして選択し、いくつかの機能を実行したい。

前もって感謝します。

ワヒブ

9 2011-10-27T13:27:55+00:00 8
プログラミング
ipad
ios
iphone
uiimageview
uibutton
alok kumar singh
29日 5月 2012 в 10:15
2012-05-29T10:15:20+00:00
さらに
ソース
編集
#56789277

私はこれを試して、それは私のために働く.......

UIImageView * imageView = [[UIImageView alloc]init];
[imageView setImage:[UIImage imageNamed:@"image.jpeg"]];
[imageView setFrame:CGRectMake(10,10,300,300)];
[imageView setContentMode:UIViewContentModeScaleToFill];
[imageView setUserInteractionEnabled:TRUE];

UIButton * ButtonOnImageView = [[UIButton alloc]init];
[ButtonOnImageView setFrame:CGRectMake(135,120,60,30)];
[ButtonOnImageView setImage:[UIImage imageNamed:@"image.jpeg"] forState:UIControlStateHighlighted];
 [ButtonOnImageView setImage:[UIImage imageNamed:@"image2.jpeg"] forState:UIControlStateNormal];
[ButtonOnImageView addTarget:self action:@selector(OnClickOfTheButton) forControlEvents:UIControlEventTouchUpInside];

 [imageView addSubview:ButtonOnImageView];
 [self.view addSubview:imageView];
5
0
Bensge
27日 10月 2011 в 2:25
2011-10-27T14:25:00+00:00
さらに
ソース
編集
#56789274

あなたはただ一つのボタンを使って、

[UIButton setImage:[imageNamed:@"image.png"]];
3
0
Akshay
30日 10月 2013 в 8:12
2013-10-30T08:12:55+00:00
さらに
ソース
編集
#56789279
  1. you have to add define button as custom.It will work for you.

    UIButton *Button = [UIButton buttonWithType:UIButtonTypeCustom];

3
0
M.Othman
17日 10月 2012 в 9:09
2012-10-17T09:09:12+00:00
さらに
ソース
編集
#56789278

ボタンをaのサブクラスとして追加する必要があります

scrollview

ない

イメージビュー

.. ボタンがuiimageviewのサブクラスであればクリックできません。 クリックされたボタンを認識するための各ボタンのためのスピーカタグを割り当てる

お役に立てれば

1
0
Manali
27日 10月 2011 в 1:40
2011-10-27T13:40:59+00:00
さらに
ソース
編集
#56789273

クリック可能なイメージの場合は、イメージオーバーボタンが好きです。

UIButton *sampleButton = [UIButton buttonWithType:UIButtonTypeCustom];
[sampleButton setFrame:CGRectMake(kLeftMargin, 10, self.view.bounds.size.width - kLeftMargin -      kRightMargin, 52)];
[sampleButton setTitle:@"Button Title" forState:UIControlStateNormal];
[sampleButton setFont:[UIFont boldSystemFontOfSize:20]];
[sampleButton setBackgroundImage:[[UIImage imageNamed:@"redButton.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
[sampleButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:sampleButton];
0
0
JanB
27日 10月 2011 в 11:00
2011-10-27T23:00:12+00:00
さらに
ソース
編集
#56789275

私は私のアプリの一つでこれをしました。私は一連の画像を含むxibファイルを作りました。各画像はボタンの上に描かれていました。それらをクラスファイルの対応するアウトレットに接続しました。私はそれを使用してtouchesBeganでクリックされました:

if(CGRectContainsPoint(btnFirstButton.frame, touchLocation)){
    //do something useful
}else if(CGRectContainsPoint(btnSecondButton.frame, touchLocation)){
    //do something useful
}

希望が助けてくれる - 私のために働いた:-)

0
0
Wahib Ul Haq
31日 10月 2011 в 1:55
2011-10-31T13:55:47+00:00
さらに
ソース
編集
#56789276

UIImageVIewでUIButtonを表示することができました。これが更新コードです。最近の問題を一番下に述べました。

imageView = [[UIImageView alloc] initWithImage:image]; //initWithImage:image

//imageView.tag = i;//tag our images for later use when we place them in serial form
[imageView setContentMode:UIViewContentModeScaleToFill]; //though it has no impact
imageView.userInteractionEnabled = YES; //to enable touch interaction with image

[self addSubview:imageView];

UIButton *btn = [[UIButton buttonWithType:UIButtonTypeContactAdd] retain]; //Plus icon button

btn.frame = CGRectMake(215, 550, 100, 100);
[btn addTarget:self action:@selector(onClickHotSpotButton) forControlEvents:UIControlEventTouchUpInside]; //it wasnt working

**[self addSubview:btn]; //Buttons are clickable but shows button on all images**

//[imageView addSubview:btn]; //Buttons are not clickable and are shown on all images

私は今、二つの選択肢があります。私は自分のボタンをImageViewのサブビューにするのか、ImageViewの親であるScrollViewにするのか。もし私が[self addSubView:btn]のようにScrollviewのボタンのサブビューを作るなら、それは右の位置に表示され、クリック可能ですが、親ビューのサブビュー、つまりスクロールビューになっているため、キューのすべてのイメージに作成されるという問題があります。それ以外の場合、すべての画像で一意ですが、すべての画像に表示され、クリックできないImageViewという子ビューのサブビューにすると、

私はそれをクリック可能にし、動的ボタンと画像との間のリンクを維持する方法について、any1が私を導くことができるので、キュー内の各画像上の様々な位置に異なるボタンを持つことができます。

0
0
Shob-Z
4日 11月 2013 в 12:15
2013-11-04T12:15:06+00:00
さらに
ソース
編集
#56789280

ボタンのユーザインタラクションを有効に設定してみてください。

[btn setEnabled:YES];

UIImageViewは、デフォルトで無効になっているボタンのユーザインタラクションを設定します。

それ以外の場合は試してみてください。最後の2行を変更してください。

置換:

[imageView addSubview:btn];
[self addSubview:imageView]; 

これとともに:

[self addSubview:imageView];
[self addSubview:btn];

私が言及したように、最初にイメージビューを追加し、ボタンを2番目に追加してください。そうでなければ、ボタンは画像ビューの背後に置かれ、隠されたように見えます。

0
0
質問の追加
カテゴリ
すべて
技術情報
文化・レクリエーション
生活・芸術
科学
プロフェッショナル
事業内容
ユーザー
すべて
新しい
人気
1
Roxana Elizabeth CASTILLO Avalos
登録済み 1週間前
2
Hideo Nakagawa
登録済み 1週間前
3
Sergiy Tytarenko
登録済み 1週間前
4
shoxrux azadov
登録済み 1週間前
5
Koreets Koreytsev
登録済み 2週間前
© de-vraag :年
ソース
stackoverflow.com
ライセンス cc by-sa 3.0 帰属