1

アニメーション(現在30の異なる画像が繰り返されています)があり、それをScrollViewの1つのページ(現在7ページを保持)に追加したいと思います。これはできますか?

addAnimation以下にコードを追加しました。選択したページには何も表示されず、他のすべてのページでは通常どおり画像が表示されますが、メソッドに何か問題があり、表示されていない可能性があります。。誰かがこれを見て、私が間違っていることを教えてもらえますか...それは明らかなエラーだと恐れています。私はこれをしばらく見つめています。

ViewController.m

- (void)loadView {
    //holds the pages
 pageArray = [[NSMutableArray alloc] init];  
 [self setUpView];
}
- (void)setUpView {
 //INITIALISE PAGING SCROLL VIEW
 CGRect pagingScrollViewFrame = [[UIScreen mainScreen] bounds];
 pagingScrollViewFrame.origin.x = 0;
 pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
 pagingScrollView.contentMode =  UIViewContentModeScaleAspectFit;

 //CONFIGURE PAGING SCROLL VIEW 
 pagingScrollView.pagingEnabled = YES;
 pagingScrollView.backgroundColor = [UIColor whiteColor];
 pagingScrollView.contentSize = CGSizeMake(pagingScrollViewFrame.size.width*7, pagingScrollViewFrame.size.height);

 //ACTIVATE PAGING SCROLL VIEW
 self.view = pagingScrollView;

 //ADD PAGES TO SCROLL VIEW
 for (int i = 0; i < 7; i++){
  ImageScrollView *page = [[[ImageScrollView alloc] init] autorelease];
  [self configurePage:page forIndex:i];
  [pagingScrollView addSubview:page];
            //adds pages here for reference in other methods
  [pageArray addObject:page];
 }
}
- (void)configurePage:(ImageScrollView *)page forIndex:(NSUInteger)index
{
    page.index = index;
    page.frame = [self frameForPageAtIndex:index];
    //if the image is id number 4 add an animation, if not, add an image as normal
 if (index == 4){
  [self addAnimation:page];
 }else {
  [page displayImage:[self imageAtIndex:index]];
 }

}
- (void)addAnimation:(ImageScrollView *)page{
    //I got this code from a tutorial on animation, I'm trying to add this UIImageView to my ScrollView

    // make a new UIImageView for the new image
    UIImageView* animationView = [[UIImageView alloc] init];
 // load all the frames of our animation
 animationView.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"pin clip0000.jpg"],
          [UIImage imageNamed:@"pin clip0001.jpg"],
          [UIImage imageNamed:@"pin clip0002.jpg"],
          [UIImage imageNamed:@"pin clip0003.jpg"],
          [UIImage imageNamed:@"pin clip0004.jpg"],
          [UIImage imageNamed:@"pin clip0005.jpg"],
          [UIImage imageNamed:@"pin clip0006.jpg"],
          [UIImage imageNamed:@"pin clip0007.jpg"],
          [UIImage imageNamed:@"pin clip0008.jpg"],
          [UIImage imageNamed:@"pin clip0009.jpg"],
          [UIImage imageNamed:@"pin clip0010.jpg"],
          [UIImage imageNamed:@"pin clip0011.jpg"],
          [UIImage imageNamed:@"pin clip0012.jpg"],
          [UIImage imageNamed:@"pin clip0013.jpg"],
          [UIImage imageNamed:@"pin clip0014.jpg"], 
          [UIImage imageNamed:@"pin clip0015.jpg"],
          [UIImage imageNamed:@"pin clip0016.jpg"],
          [UIImage imageNamed:@"pin clip0017.jpg"],
          [UIImage imageNamed:@"pin clip0018.jpg"],
          [UIImage imageNamed:@"pin clip0019.jpg"],
          [UIImage imageNamed:@"pin clip0020.jpg"],
          [UIImage imageNamed:@"pin clip0021.jpg"],
          [UIImage imageNamed:@"pin clip0022.jpg"],
          [UIImage imageNamed:@"pin clip0023.jpg"],
          [UIImage imageNamed:@"pin clip0024.jpg"],
          [UIImage imageNamed:@"pin clip0025.jpg"],
          [UIImage imageNamed:@"pin clip0026.jpg"],
          [UIImage imageNamed:@"pin clip0027.jpg"],
          [UIImage imageNamed:@"pin clip0028.jpg"],
          [UIImage imageNamed:@"pin clip0029.jpg"],
          nil];

 // all frames will execute in 1 second
 animationView.animationDuration = 1;
 // repeat the annimation forever
 animationView.animationRepeatCount = 0;
 // start animating
 [animationView startAnimating];
    [page addSubview:animationView];
 [animationView release];

}
4

1 に答える 1

0

アニメーションにフレームを追加していませんでした。これをメソッドに追加しましたaddAnimation

CGRect animationFrame;

animationFrame = page.frame;
animationFrame.origin.x = 0;

animationView.frame = animationFrame;
于 2010-10-19T09:49:49.713 に答える