Как я могу переместить мой UIImage вертикально сверху вниз - PullRequest
2 голосов
/ 14 декабря 2010

Я хочу, чтобы UIImage двигался по экрану вертикально вниз, и когда он дойдет до конца, он должен снова начать сверху.как я могу это сделать ???

пожалуйста, помогите Спасибо

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

Предполагая, что ваш UIImage находится в UIImageView, а размер изображения составляет 320 x 480 ...

Ваш блок анимации может вызывать метод, когда он завершен.Этот метод сбрасывает позицию вашего UIImageView и затем запускает анимацию заново.

Блок анимации:

-(void)animate {
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:.3];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(myCallback:finished:context:)];

    CGRect frame = yourImageView.frame;
    frame.origin = CGPointMake(0, 480);
    yourImageView.frame = frame;

    [UIView commitAnimations];

}

Обратный вызов:

(void)myCallback:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

    CGRect frame = yourImageView.frame;
    frame.origin = CGPointMake(0, 0)
    yourImageView.frame = frame;
    [self animate];
}
0 голосов
/ 14 декабря 2010

Вот как я написал свой код moving.h

#import <UIKit/UIKit.h>
@interface movingViewController : UIViewController{ 
UIImageView *imageView1;
}
@property (retain , nonatomic) UIImageView *imageView1;
@end

moving.m

#import "movingViewController.h"
@synthesize imageView1;
-(void) animate {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myCallback:finished:context:)];

CGRect frame = imageView1.frame;
frame.origin = CGPointMake(0, 480)
imageView1.frame = frame;

[UIView commitAnimations];  
}

- (void)viewDidLoad {

    [super viewDidLoad];
 }


 -(void)myCallback:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {

CGRect frame = imageView1.frame;
frame.origin = CGPointMake(0, 0)
imageView1.frame = frame;
[self animate];
}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];}
- (void)viewDidUnload {}
- (void)dealloc {
    [imageView1 dealloc];
    [imageView1 release];
    [super dealloc];
}
@end

Извините, что задаю простые вопросы, но я очень плохо знаком с Xcode

это правильный путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...