iPhone SDK UIViewに追加したUIButtonが反応しな
iPhone SDK UIViewに追加したUIButtonが反応しない。。。
インターフェイスビルダーにあるUIViewにボタンを追加した場合は、
ちゃんとボタンは反応するんですが、プログラムから追加したUIViewにボタンをおくと
UIControlEventTouchUpInsideのイベントに反応しません。
一応、こちらに簡単なプロジェクトもあげておきました。
http://gemic.jp/xcode/buttonOnView.zip
詳細は、下記です。
View-Based Applicationテンプレートで作成したプロジェクト(buttonOnView)
buttonOnViewViewController.h
#import <UIKit/UIKit.h>
@interface buttonOnViewViewController : UIViewController {
UIView *theView;
}
@end
-----------------------------------------------------------------
buttonOnViewViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor redColor];
UIButton *btn1 = [[UIButton buttonWithType:UIButtonTypeRoundedRect]retain];
[btn1 initWithFrame:CGRectMake(60, 90, 200, 50)];
//このボタンは反応する↓
[self.view addSubview:btn1];
[btn1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(createView:) forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)createView:(UIButton*)sender {
theView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[theView setBackgroundColor:[UIColor greenColor]];
[self.view addSubview:theView];
UIButton *btn = [[UIButton buttonWithType:UIButtonTypeRoundedRect]retain];
[btn initWithFrame:CGRectMake(60, 150, 200, 50)];
//このボタンは反応しない↓
[theView addSubview:btn];
[btn addTarget:self action:@selector(deleteView:) forControlEvents:UIControlEventTouchUpInside];
}
- (IBAction)deleteView:(UIButton*)sender {
NSLog(@"touch event reaction");
[theView removeFromSuperview];
}
-----------------------------------------------------------------
いろいろググってみたり、DevCenterのドキュメントを探したんですが、
思ったような情報が見つからず相当はまってます。
ネットで探して見つからないってことは、凄く初歩的なことか??
と思ってるんですが、、、
どなたか、助けていただけたらありがたいです。
補足
-(void)touchMoved:(NSSet *)touches withEvent:(UIEvent *)event をつかい画面外からタッチして,タッチしたまま画面内座標を取得することができました。 ありがとうございます。 しかしホームボタンがある下の画面外からタッチしたままだと取得できたのですが、上からタッチしたままだと認識されません。 これはどうすれば修正できるのでしょうか? 教えていただけると幸いです。(><)