我有一个滚动视图,可以滚动到两边(只有左和右,而不是上下)。 每当滚动视图将X像素移动到任一侧时,我都想播放短时间的声音(小于一秒)。UIScrollView滚动播放声音
这怎么办?代码示例将不胜感激......
感谢,
我有一个滚动视图,可以滚动到两边(只有左和右,而不是上下)。 每当滚动视图将X像素移动到任一侧时,我都想播放短时间的声音(小于一秒)。UIScrollView滚动播放声音
这怎么办?代码示例将不胜感激......
感谢,
这里是我使用的代码:我添加了SoundEffect.h和SoundEffect.m文件到我的项目
(你可以在网上找到它们)。通过增加<UIScrollViewDelegate>
到视图控制器的.h文件和设置的UIScrollView的相关出口
SoundEffect *soundEffect;
然后,我安装我的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:方法。
但是这样只会发出一次声音,不是吗?我希望无论何时滚动视图将X像素移到任何一边,声音都会启动。我正在考虑在这个方法中初始化一个定时器,它将每隔0.1秒检查一次,检查视图是否超过了X像素,并在相关的委托方法中停止该定时器。但我想知道是否有更好的方法来做到这一点... – 2010-04-21 13:01:18
你想要声音重复的视图拖动?你可以使用scrollViewDidScroll :. – 2010-04-21 13:14:14
谢谢。我尝试使用scrollViewDidScroll:方法,它的效果很好... – 2010-04-21 15:14:32
这实际上不起作用,因为scrollViewDidScroll不够快。我的滚动视图在1秒内滚动6页,但只获得三次点击。任何想法使这种方法更快火吗? – 2012-07-23 13:03:50