1

我有一个动画(目前有 30 个不同的图像重复),我希望将它添加到 ScrollView 的单个页面中(目前有 7 页)。这可以做到吗?

我在下面添加了我的代码,我得到的行为是在我选择的页面上什么都没有出现,在所有其他页面上我都可以正常获取图像,但是我的addAnimation方法一定有问题我没有看到. 有人可以看看这个并告诉我我做错了什么......我担心这是一个明显的错误,我已经盯着这个有一段时间了。

视图控制器.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 回答