UIViewを介してアタッチされたチャイルドビューにタッチイベントを取得しようとすると、問題が発生します。
いろいろやりたい画像がたくさんあるので、タッチイベントを読んでみたいです。UIViewでグループ化することを決定するまでは問題なく機能したので、イベントを通過させるためにいくつかの設定をオンまたはオフに切り替える必要があると思います。
[TouchImageView.h] -------------------------------------------------------
@interface TouchImageView : UIImageView
[TouchImageView.m] -------------------------------------------------------
- (id)initWithFrame:(CGRect)aRect {
if (self = [super initWithFrame:aRect]) {
// We set it here directly for convenience
// As by default for a UIImageView it is set to NO
self.userInteractionEnabled = YES;
state = 0 ;
rect = aRect ;
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// Do what you want here
NSLog(@"touchesBegan!" );
}
[in my delegate's didFinishLaunchingWithOptions] -------------------------
NSArray *myImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"front-photos.jpg"],
[UIImage imageNamed:@"front-films.jpg"],
[UIImage imageNamed:@"front-presentations.jpg"],
mainMenuView = [[UIView alloc] init ] ;
mainMenuView.userInteractionEnabled = YES; // tried setting this to both YES and NO. Same result.
[self.viewController.view addSubview:mainMenuView] ;
myImage = [[TouchImageView alloc] initWithFrame:CGRectMake(0.0f, menuTopHeight, menuButtonWidth, menuButtonHeight)];
[myImage setImage:[myImages objectAtIndex:0]] ;
[mainMenuView addSubview:myImage] ;
誰かが私が間違っていることを教えてもらえますか?このトピックに関するSOに関する同様の投稿をたくさん見ましたが、それらのほとんどはuserInteractionEnabled(?)の設定に関するものです。