addTarget:action:forControlEvents:は複数回指定できる
aButton = [[UIButton alloc] initWithFrame:CGRectMake(19, 71, 281, 128)]; [aButton setImage:[UIImage imageNamed:@"aButton"] forState:UIControlStateNormal]; [aButton addTarget:self action:@selector(touchaButton:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:aButton]; bButton = [[UIButton alloc] initWithFrame:CGRectMake(19, 221, 281, 128)]; [bButton setImage:[UIImage imageNamed:@"bButton"] forState:UIControlStateNormal]; [aButton addTarget:self action:@selector(touchbButton:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:bButton];
UIButton を自前で作って張り付けたのだけど、なぜか aButton をタップすると touchaButton, touchbButton の順に2つのメソッドが呼ばれる。なんでだろう???と頭を捻っていたのだけど、単純に bButton への addTarget:action:forControlEvents: を aButton に対して行ってしまっていた。
結果としてはコピペをした時のケアレスミスなんだけど、今回新たに知ったのは1つの UIButton に複数の addTarget:action:forControlEvents: をできるって事。これってイベントの種類によって呼び出すメソッドを変えたりして使うってことかな?
って、リファレンスみたらちゃんと書いてあった…。
もっと良く読まないと駄目だな〜。