我有一個滾動視圖,可以滾動到兩邊(只有左和右,而不是上下)。 每當滾動視圖將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