我有一个名为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];
}
非常感谢任何帮助,谢谢!
答案 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];
}