我制作了一个应用程序来愚弄,这基本上是一个脆弱的鸟类克隆。当我触摸屏幕时,我需要知道如何发出声音。我尝试使用按钮,但声音只会作为触摸按钮播放,而不是整个屏幕。当我触摸按钮时,那只鸟刚落下。我知道我可能不得不使用TouchBegan,但我使用的代码是什么,我把它放在哪里?越多细节越好,因为我是这个东西的巨大新秀。谢谢!
答案 0 :(得分:1)
如果您使用的是UIView
子类,则可以实现以下方法来确定是否发生了点击。从那里,只播放你的声音。 (注意,使用ARC)
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// now that we know that a touch has occurred, lets play a sound
NSString *pathToMySound = [[NSBundle mainBundle] pathForResource:@"mySound" ofType:@"aif"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID([NSURL fileURLWithPath: pathToMySound], &soundID);
AudioServicesPlaySystemSound(soundID);
}
答案 1 :(得分:0)
尝试将UITapGestureRecogniser
添加到主视图中,该视图可能是self.view
,或者您命名的任何内容。
确保已启用用户互动,并创建一个选择器,每次调用时都会播放声音。
this article可能对您有所帮助,我还没有尝试过,但看起来它朝着正确的方向发展。 我会以编程方式添加UIGesture。
- 这就是你如何创建UITapGesture
//this stuff goes in your viewDidLoad for example
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSthCool:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[self addGestureRecognizer: singleTap]; //self or wherever you want to add it
.....
.....
- (void) doSthCool: (UITapGestureRecognizer *)recognizer{
//Code to handle the gesture
NSLog(@"flap");
}
此外,如果您不知道自己在做什么,尝试使用网址时请不要使用CFURLRef,而是尝试以下内容:
NSURL *path = [NSURL URLWithString:@"whatever the url/path is."];
我确实建议你在遇到问题时谷歌一些东西,这是最好的学习方法:)
祝你好运伴侣! 并有乐趣编码:)