1

http://disqus.com/のような背景を作成したいのですが、背景を続けますが、このようなコードを試しても取得できません

continuesBackground =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"pattern"]];
    continuesBackground.frame=CGRectMake(0, 56, 320, 102);
    continuesBackground.layer.zPosition=100;
    [UIView animateWithDuration:5.0
                          delay:0.0
                        options:UIViewAnimationOptionCurveLinear
                     animations:^{
                         continuesBackground.transform = CGAffineTransformMakeTranslation(0, 200);  }
                     completion:^(BOOL finish) {
                         continuesBackground.transform = CGAffineTransformMakeTranslation(200, 0);

                     }];

作り方は?ntimerが必要ですか?

4

3 に答える 3

4

これを試して:

- (void)animateImageViewFromStartPosition:(CGPoint)aStartPosition toEndPosition:(CGPoint)aEndPosition; {
  CGRect oldFrame = CGRectMake(aStartPosition.x, aStartPosition.y, continuesBackground.frame.size.width, continuesBackground.frame.size.height);
  [continuesBackground setFrame:oldFrame];

  [UIView animateWithDuration:5.0f
                        delay:0.0f
                      options:UIViewAnimationOptionCurveEaseInOut
                   animations:^(void){
                     CGRect newFrame = continuesBackground.frame;
                     newFrame.origin = aEndPosition;
                     continuesBackground.frame = newFrame;
                   }
                   completion:^(BOOL finished){
                     if(finished){
                       [self animateImageViewFromStartPosition:aStartPosition toEndPosition:aEndPosition];
                     }
                      }];
}

次に、メソッドでメソッドを呼び出しますviewDidLoad

- (void)viewDidLoad; {
  [super viewDidLoad];
  [self animateImageViewFromStartPosition:CGPointMake(0.0f, 56.0f) toEndPosition:CGPointMake(320.0f, 56.0f)];
}

これを簡単に変換したり、必要に応じて変更したりできます。これにより、アニメーションが無期限に続行されます。それが役立つことを願っています!

于 2012-11-10T05:58:11.377 に答える
1
  - (void)animateImageViewFromStartPosition:(CGPoint)aStartPosition toEndPosition:(CGPoint)aEndPosition; {
   CGRect oldFrame = CGRectMake(aStartPosition.x, aStartPosition.y,continuesBackground.frame.size.width, continuesBackground.frame.size.height);
    [continuesBackground setFrame:oldFrame];

     [UIView animateWithDuration:5.0f
                    delay:0.0f
                  options:UIViewAnimationOptionCurveEaseInOut
               animations:^(void){
                 CGRect newFrame = continuesBackground.frame;
                 newFrame.origin = aEndPosition;
                 continuesBackground.frame = newFrame;
               }
               completion:^(BOOL finished){
                 if(finished){
                   [self animateImageViewFromStartPosition:aStartPosition toEndPosition:aEndPosition];
                 }
                  }];
 }

次に、viewDidLoad メソッドでメソッドを呼び出します。

  - (void)viewDidLoad; {
   [super viewDidLoad];
   [self animateImageViewFromStartPosition:CGPointMake(0.0f, 56.0f) toEndPosition:CGPointMake(320.0f, 56.0f)];
   }

このコードについて話して、コードを適用する場所を教えてください

于 2012-11-12T17:43:29.437 に答える