FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

subViewに置いたUIButtonがクリックできない [Xcode]

プログラムで画面上にsubviewを配置して、そこに情報表示用のボタンを置きました。
コードはこんな感じです。

// subviewを配置
UIImageView *view1 = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 55.0, 320.0, 125.0)];
view1.image = [UIImage imageNamed:@"view1.png"];
[self.view addSubview:view1];

// subviewにボタンを追加
settingBtn = [UIButton buttonWithType:UIButtonTypeInfoLight];
settingBtn.frame = CGRectMake( 15.0, 115.0, 18.0, 19.0);
[settingBtn addTarget:self action:@selector(showInfo:)
forControlEvents:UIControlEventTouchUpInside];
[view1 addSubview:settingBtn];


実行してみると無事にsubViewとボタンは表示されましたが、いくらボタンをタッチしても反応がないんです。

いろいろ調べてみたら、そもそもボタンを押したと認識されてない様子。試しにsubView上ではなく [self.view addSubview:settingBtn]; としてメインのviewにボタンを置いたら、ちゃんと反応します。どうやらタッチイベントが subViewではなくメインviewで発生したと見なされているみたいです。



数時間ハマって、やっと解決策を見つけました。

// subviewを配置
UIImageView *view1 = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 55.0, 320.0, 125.0)];
view1.image = [UIImage imageNamed:@"view1.png"];
view1.userInteractionEnabled = YES;
[self.view addSubview:view1];

// subviewにボタンを追加
settingBtn = [UIButton buttonWithType:UIButtonTypeInfoLight];
settingBtn.frame = CGRectMake( 15.0, 115.0, 18.0, 19.0);
[settingBtn addTarget:self action:@selector(showInfo:)
forControlEvents:UIControlEventTouchUpInside];
[view1 addSubview:settingBtn];


view1.userInteractionEnabled = YES; を一行追加するだけで、subView上のボタンが押せるようになりました。
userInteractionEnabledの値はUIViewではデフォルトで YESなんですが、UIImageViewではなぜかデフォルトで NOになってるので、YESにしないとsubViewにボタンを置いても反応しなかったんですね。
最初からYESの方がいいなぁ。


「subViewに置いたUIButtonがクリックできない その2」に追記があります。
関連記事

コメントの投稿

非公開コメント

Appご紹介
K app designのAppをご紹介します

ねこわけ

画面中央の猫を次々に仕分けるゲームです。

あまり計算機

あまりを計算できる割算専用の計算機です。

6オクターブ ピアノ

6オクターブ鍵盤のピアノアプリです。iPad専用。

Dynamic Drum

様々な演奏法が楽しめるドラム演奏アプリです。

クイズボタン

早押しクイズのサポートをするアプリです。

クイズボタン Pro

クイズボタンに点数表示機能が付きました。

クイズボタン HD

クイズボタンのiPad専用版。回答者ボタンが8つに増量。

ベロシティ ピアノ

タップの強弱で音量が変わるピアノアプリです。

TIMERx4

4つのキッチンタイマーを同時に動作できるアプリです。

アナデジClock

アナログとデジタルが融合した時計です。
検索フォーム
最新記事
最新コメント
カテゴリ
人気ページ
月別アーカイブ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。