【发布时间】:2010-04-21 11:59:45
【问题描述】:
我有一个可以滚动到两侧的滚动视图(只能左右滚动,不能上下滚动)。 每当滚动视图向任一侧移动 X 像素时,我都想播放短声(不到一秒)。
如何做到这一点?代码示例将不胜感激...
谢谢,
【问题讨论】:
标签: iphone audio uiscrollview
我有一个可以滚动到两侧的滚动视图(只能左右滚动,不能上下滚动)。 每当滚动视图向任一侧移动 X 像素时,我都想播放短声(不到一秒)。
如何做到这一点?代码示例将不胜感激...
谢谢,
【问题讨论】:
标签: iphone audio uiscrollview
这是我使用的代码:
我将 SoundEffect.h 和 SoundEffect.m 文件添加到我的项目中(您可以在网上找到它们)。 然后,我创建了一个音效实例:
SoundEffect *soundEffect;
然后,通过将<UIScrollViewDelegate> 添加到视图控制器的 .h 文件并设置 UIScrollView 的相关出口,我将 UIViewController 设置为 UIScrollView 的委托。
在-(void)viewDidLoad方法中,我初始化了我的音效:
NSBundle *mainBundle = [NSBundle mainBundle];
soundEffect = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Tik" ofType:@"wav"]];
然后,我实现了这两种方法:
#pragma mark -
#pragma mark Scroll View Delegate Methods
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
lastScrollPosition = scrollView.contentOffset.x / 55;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if ((int)(scrollView.contentOffset.x / 55) != lastScrollPosition1)
{
lastScrollPosition1 = scrollView.contentOffset.x / 55;
[soundEffect1 play];
}
}
我需要声音效果每 55 个像素向任一方向发射一次,但您可以将其更改为适合您需要的恒定值。 它对我很有用,希望它也能帮助其他人......
【讨论】:
尝试将您的 viewController 指定为滚动视图的委托,并添加 -scrollViewWillBeginDragging: 方法。
【讨论】: