のアクションを作成するのは簡単です。InterfaceBuilderのキャンバス上のボタンをコードの一部(アシスタントエディター内)にドラッグするUIButton
だけです。Ctrl@implementation
しかし、どうUIImageView
ですか?ユーザーがこの画像(実際には見栄えの良いアイコン)をタップした場合、何かを実行しますが、Ctrlドラッグは何も実行しないため、アクションを追加するにはどうすればよいですか?
のアクションを作成するのは簡単です。InterfaceBuilderのキャンバス上のボタンをコードの一部(アシスタントエディター内)にドラッグするUIButton
だけです。Ctrl@implementation
しかし、どうUIImageView
ですか?ユーザーがこの画像(実際には見栄えの良いアイコン)をタップした場合、何かを実行しますが、Ctrlドラッグは何も実行しないため、アクションを追加するにはどうすればよいですか?
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(actionHandleTapOnImageView)];
[singleTap setNumberOfTapsRequired:1];
originalImageView.userInteractionEnabled = YES;
[originalImageView addGestureRecognizer:singleTap];
[singleTap release];
-(void)actionHandleTapOnImageView
{
NSLog(@"actionHandleTapOnImageView");
}
UIImageView の親 UIViewController で touchesBegan メッセージを処理する必要があります。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch view] == myImageView) {
[self handleTapOnImageView]; // <-- Handle it!
}
}
また、UIImageView の「User Interaction Enabled」プロパティが true であることを確認してください。
または、UIImageView の場合と同じように、実際に UIButton を使用してそのイメージを設定することもできます。UIImageView でジェスチャ ハンドラーを手動で記述する必要はありません。