我是iPad的iOS应用程序的新手。我已经使用UIImageView成功实现了一本儿童图书应用程序。我还实现了滑动手势来遍历页面。每个页面都作为单个图像加载到UIImageView中,并播放叙述场景的音频。
现在我想为我的网页添加一些互动性。例如,我在UIImageView中加载了一个图像,其中包含少量动物角色和某个特定场景的方言......我希望每当用户点击特定动物时,它应该显示一些动作(可能就像狮子咆哮)我的应用程序应播放包含该动物声音的音频文件...我该如何实现此功能?我需要理解这个概念,以便实现它。我是否应该为所有动物分别设置图像并将它们加载到自己的UIImageView中,并将所有这些UIImageViews放在主(或背景)UIImageView中?如果有人能解释我应该如何实现这些功能的概念,我将不胜感激。
我认为对于动物的触摸,我可以定义一个CGRects列表,它将作为屏幕上每只动物的热点,然后播放触摸动物的声音文件,但我如何动态定义这些热点?因为这些将基于动物在特定页面/图像上的位置在每个页面上。另外,这可能无法帮助我为特定动物实施一些动作/动画。
答案 0 :(得分:0)
如果动物的图片是独立的,你应该将它们用作UIButtons,并将它们的图片设为“自定义”并选择你的动物图片。
否则可能会在动物的顶部放置一个隐形按钮,然后执行下面的代码,我认为具有正确尺寸的透明度和自定义UIButton的.png应该有效!
要使这些按钮发出声音,请执行以下操作:
-(IBAction)lionRoar {
NSString *path = [[NSBundle mainBundle]
pathForResource:@"LionRoar" ofType:@"mp3"];
AVAudioPlayer* theAudio=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
[theAudio play];
}
希望有所帮助!
答案 1 :(得分:0)
隐形按钮应该有效。使用1像素透明png,然后动态调整按钮大小以适合您想要点击的区域:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(7, 5, 73, 30);
[btn setImage:[UIImage imageNamed:@"btn_pixel.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(doSomething) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
(你不需要释放按钮,因为它首先没有分配)
然后,只需创建一个名为“doSomething”的函数,即......执行您想要的操作。在你的例子中,它会播放动物的声音。