【问题标题】:Adding Animation into a page on ScrollView在 ScrollView 上的页面中添加动画
【发布时间】:2010-10-19 09:06:25
【问题描述】:

我有一个动画(目前有 30 个不同的图像重复),我希望将它添加到 ScrollView 的单个页面中(目前有 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];

}

【问题讨论】:

    标签: iphone objective-c xcode animation scrollview


    【解决方案1】:

    我没有在动画中添加帧。我将此添加到addAnimation 方法中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-03
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多