代码之家  ›  专栏  ›  技术社区  ›  Dan Hanly

在ScrollView页面中添加动画

  •  1
  • Dan Hanly  · 技术社区  · 14 年前

    我有一个动画(目前30个不同的图像重复),我想把它添加到一个单一的滚动视图页面(目前持有7页)。能做到吗?

    addAnimation 我看不到的方法。有人能看看这个告诉我我做错了什么吗。。。恐怕这是个明显的错误,我已经盯着这个看了一段时间了。

    - (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];
    
    }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Dan Hanly    14 年前

    我没有给动画加一帧。我把这个加到 addAnimation 方法:

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