2012-02-26 6 views
1

以下のコードは、一連の画像を無限ループで表示することを想定しています。代わりに、完全に白いフィールドが表示されます。私をこれまで受け入れてくれたAaron Haymanに感謝します。iOSコードが画像シリーズよりも白いフィールドを表示する

- (void)layoutScrollImages 
{ 
    //Arrangement 
    NSArray *imageViews = [NSArray arrayWithObjects:@"image1.png", @"image2.png", @"image3.png", nil]; 
    CGRect cRect = scrollView1.bounds; 
    UIImageView *cView; 
    for (int i = 0; i < imageViews.count; i++) 
    { 
     cView = [imageViews objectAtIndex:i]; 
     cView.frame = cRect; 
     [scrollView1 addSubview:cView]; 
     cRect.origin.x += cRect.size.width; 
    } 
    scrollView1.contentSize = CGSizeMake(cRect.origin.x, scrollView1.bounds.size.height); 
    scrollView1.contentOffset = CGPointMake(scrollView1.bounds.size.width, 0); //should be the center page in a 3 page setup 

} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    scrollView1.contentOffset = CGPointMake(scrollView.bounds.size.width, 0); 
} 

フォローアップ:私がやっている

何も任意の違いを作っていません。現在のところ、私のコードはこのように見えますが、私が考えることのできるものは無駄に変更しています。

- (void)layoutScrollImages 
{ 
    //Horizontal arrangement 
    NSObject *image1 = @"image1.png"; 
    NSObject *image2 = @"image2.png"; 
    NSObject *image3 = @"image3.png"; 
    NSArray *imageViews = [NSArray arrayWithObjects:image1, image2, image3, nil]; 
    CGRect cRect = scrollView1.bounds; 
    UIImageView *cView; 
    for (int i = 0; i < imageViews.count; i++) 
    { 
     cView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[imageViews objectAtIndex:i]]]; 
     cView.frame = cRect; 
     [scrollView1 addSubview:cView]; 
     cRect.origin.x += cRect.size.width; 
    } 
    scrollView1.contentSize = CGSizeMake(cRect.origin.x, scrollView1.bounds.size.height); 
    scrollView1.contentOffset = CGPointMake(scrollView1.bounds.size.width, 0); //should be the center page in a 3 page setup 

    [self layoutScrollImages]; 

} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    scrollView1.contentOffset = CGPointMake(scrollView.bounds.size.width, 0); 
} 

答えて

1

UIImageViewは決して開始しません。

 NSArray *imageViews = [NSArray arrayWithObjects:@"image1.png", @"image2.png", @"image3.png", nil]; 
     CGRect cRect; 
     UIImageView *cView; 
     for (int i = 0; i < imageViews.count; i++) 
     { 
      cView = [[UIImageView alloc] initWithImage:[UIImage imageName:[imageViews objectAtIndex:i]]]; 
      cRect = cView.frame; 
      cRect.origin.x += scrollView1.frame.size.width; 
      cView.frame = cRect; 
      [scrollView1 addSubview:cView]; 
      NSLog(@"imageView bounds: %@", NSStringFromCGRect(cView.frame)); 
     } 

編集: 上記を試してみて、何が現れるかどうかを確認あなたはこのような何かをしたいです。ここにいくつかの考えがあります:

  1. 高さ/幅が0になるようにimageViewを設定していませんか?私はループにNSLogステートメントを投げた。これは、imageViewのフレームを印刷します。
  2. scrollView1の代わりにself.viewに画像を追加しようとしましたか?これは、問題がscrollView1のフレームと関係していないことを確認する良い方法です。または、次を使用します。 NSLog(@ "imageView bounds:%@"、NSStringFromCGRect(scrollView1.frame));
+0

imageNameに 'd'を追加しても、実際の変更はありません。それは私が配列を書いている方法と関係がありますか? – Sneagan

関連する問題