UIView重新出现在屏幕上,因为它离开了另一边?

时间:2014-02-18 14:34:34

标签: iphone animation uiview uiimageview

我有一个名为clouds的UIView。它当前移动到屏幕的右侧,一旦它全部离开,它就会重新出现在屏幕的左侧。

当它离开右侧时,如何让它重新出现在左侧?因此,当它开始离开右侧时,刚刚消失的位重新出现在左侧。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    movement = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(moving) userInfo:nil repeats:YES];

    cloudsMovement = 2;

}

-(void)platformMovement{
    clouds.center = CGPointMake(clouds.center.x + cloudsMovement, clouds.center.y);

}

-(void)moving{

    if (clouds.center.x < -11){
        clouds.center = CGPointMake(330, clouds.center.y);
    }
    if (clouds.center.x > 330){
        clouds.center = CGPointMake(-11, clouds.center.y);
    }

    [self platformMovement];

}

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

回答我自己的问题似乎有点不寻常,但为了帮助像我这样的其他初学者,这是我提出的解决方案:

创建另一个UIView(我称之为云2)。 将其移出屏幕左侧,并将其设置为原始UIView(clouds1)。 稍微调整一下数字,这样当图像的整个部分离开屏幕时,它会重新出现在左侧。有点像传送带系统。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    movement = [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(moving) userInfo:nil repeats:YES];

    cloudsMovement = 2;
}

-(void)platformMovement{
    clouds1.center = CGPointMake(clouds1.center.x + cloudsMovement, clouds1.center.y);

    clouds2.center = CGPointMake(clouds2.center.x + cloudsMovement, clouds1.center.y);

}

-(void)moving{

    if (clouds1.center.x > 470){
        clouds1.center = CGPointMake(-150, clouds1.center.y);
    }

    if (clouds2.center.x > 470){
        clouds2.center = CGPointMake(-150, clouds2.center.y);
    }

    [self platformMovement];

}