-2

これは、UIScrollviewがiPhoneSDKでスクロールしているときにサウンドを追加するための私のコードです。このコードでは、スクロールでタッチイベントを使用しながらサウンドを追加するにはどうすればよいですか?あなたのアイデアや提案、サンプルを教えてください。

const CGFloat kScrollObjHeight  = 151.0;
const CGFloat kScrollObjWidth   =320.0;    
const NSUInteger kNumImages  = 5;

- (void)layoutScrollImages
{
  UIImageView *view = nil;
  NSArray *subviews = [scrollView1 subviews];
  CGFloat curXLoc = 0;
  for (view in subviews)
    {
      if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
       {
        CGRect frame = view.frame;
        frame.origin = CGPointMake(curXLoc, 0);
        view.frame = frame;
        curXLoc += (kScrollObjWidth);
       }
    }
   [scrollView1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollView1 bounds].size.height)];
 }

- (void)viewDidLoad
 {
   self.view.backgroundColor = [UIColor clearColor];
   [scrollView1 setBackgroundColor:[UIColor whiteColor]];
   [scrollView1 setCanCancelContentTouches:NO];
   scrollView1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
   scrollView1.clipsToBounds = YES; 
   scrollView1.scrollEnabled = YES;
   scrollView1.pagingEnabled = YES;
   NSUInteger i;
   for (i = 1; i <= kNumImages; i++)
   {
     NSString *imageName = [NSString stringWithFormat:@"snap%d.jpg", i];
     UIImage *image = [UIImage imageNamed:imageName];
     UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
     CGRect rect = imageView.frame;
     rect.size.height = kScrollObjHeight;
     rect.size.width = kScrollObjWidth;
     imageView.frame = rect;
     imageView.tag = i;
     [scrollView1 addSubview:imageView];
     [imageView release];
     [self layoutScrollImages];
   }
   [super viewDidLoad];
}
4

2 に答える 2

1

インターフェイスに追加UIScrollViewDelegateし、スクロールがタスクイン状態にある間にサウンドを再生し、状態にあるscrollViewWillBeginDragging間スクロールを停止し scrollViewDidEndDraggingます。

AVAudioPlayerを使用して、iOS デバイスでサウンドを再生できます

アップデート:

スクロール ビューがコンテンツのスクロールを開始しようとしているときにデリゲートに通知します。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

また、スクロール ビューでドラッグが終了したときにデリゲートに通知します。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

これらをコードに実装し、カスタム動作に入れます

于 2012-05-31T09:53:59.853 に答える
0

UIScrollViewDelegateメソッドを使用する必要があります

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
   //play sound here 
}
于 2012-05-31T12:42:53.763 に答える