我試圖實現類似於Touch Up Inside
和UIButton
的觸摸事件。我看過一些使用touchesBegan:withEvent
的代碼,但看起來我需要在屏幕上滑動一下手指。其實我只是想形象觸摸內部的UIImageView
守則摸:
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Image touched!");
}
商祺!
我試圖實現類似於Touch Up Inside
和UIButton
的觸摸事件。我看過一些使用touchesBegan:withEvent
的代碼,但看起來我需要在屏幕上滑動一下手指。其實我只是想形象觸摸內部的UIImageView
守則摸:
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
NSLog(@"Image touched!");
}
商祺!
您可以使用手勢聯繫UIImageView
。
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(ClickEventOnImage:)];
[tapRecognizer setNumberOfTouchesRequired:2];
[tapRecognizer setDelegate:self];
//Don't forget to set the userInteractionEnabled to YES, by default It's NO.
myImageView.userInteractionEnabled = YES;
[myImageView addGestureRecognizer:tapRecognizer];
執行ClickEventOnImage
函數。
-(void) ClickEventOnImage:(id) sender
{
}
UIImageView
是臭名昭著其userInteractionEnabled
被默認設置爲NO
對此。你將不得不這樣做
imageView.userInteractionEnabled = YES;
啓用它,然後你可以使用手勢識別或正常touches*
方法來處理觸摸。
是否有任何特殊的原因,你不能只使用'UIButton'自定義樣式和圖像? – pmdj 2011-06-16 13:19:06
其實不是,但我想知道是否有其他方法可以做到。 – Claudio 2011-06-16 13:23:53
如果您不需要'UIButton'提供的功能,則可以直接使用更簡單的'UIControl'子類或使用更多的'UIControl'。 'UIControl'負責所有惡劣的觸摸狀態管理,所以你不必這樣做。自己動手也意味着你的用戶界面的行爲與所有其他應用程序的行爲略有不同,這可能會讓用戶感到困惑。 – pmdj 2011-06-16 13:28:16