每當我的文本在我的遊戲中改變(UILabel)時,它會將我運行(man)的人的UIImageView重置爲起始位置(屏幕左側)。更新UILabel在xCode iOS8中重置我的視圖
它在某種意義上幾乎充當了視圖控制器重置...不知道爲什麼。 所有的整數和變量都可以通過定時器更新,但只要我嘗試更改實際文本,就會重置爲起始位置。
這裏是我的NSTimer更新標籤:
-(void)updateLabels{
//update lightning strikes label
[email protected]"Strikes Left: ";
strikesLeftDisplay=[strikesLeftDisplay stringByAppendingString:[NSString stringWithFormat: @"%d", strikesLeft]];
lblLeft.text=strikesLeftDisplay;
}
這裏是我的onDidLoad:
- (void)viewDidLoad {
currentScreenX=self.view.frame.size.width;
currentScreenY=self.view.frame.size.height;
currentLevel=1;
runningSpeed=7;
lightningSpeed=0.023;
runnerImageNumber=0;
strikesLeft=3;
cloudImage.hidden=YES;
boltImage.hidden=YES;
runningMovement=[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(startRunning) userInfo:nil repeats:YES];
labelScanner=[NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(updateLabels) userInfo:nil repeats:YES];
[super viewDidLoad];
}
最後,這裏是我的startRunning方法:
- (void)startRunning{
if(livesLeft==0){[self endGame];}
manX=man.frame.origin.x;
manY=man.frame.origin.y;
if([direction isEqualToString:@"left"] && touchX < (manX+20)){
man.center=CGPointMake(man.center.x - runningSpeed,man.center.y);
}else if([direction isEqualToString:@"right"] && touchX > (manX+22)){
man.center=CGPointMake(man.center.x + runningSpeed,man.center.y);
}
else{
[email protected]"0";
}
//animate runner
if ([direction isEqualToString:@"right"]){
if(runnerImageNumber==1){UIImage *image=[UIImage imageNamed:@"run1.png"];[man setImage:image];}
if(runnerImageNumber==2){UIImage *image=[UIImage imageNamed:@"run2.png"];[man setImage:image];}
if(runnerImageNumber==3){UIImage *image=[UIImage imageNamed:@"run3.png"];[man setImage:image];}
if(runnerImageNumber==4){UIImage *image=[UIImage imageNamed:@"run4.png"];[man setImage:image];}
if(runnerImageNumber==5){UIImage *image=[UIImage imageNamed:@"run5.png"];[man setImage:image];}
if(runnerImageNumber==6){UIImage *image=[UIImage imageNamed:@"run6.png"];[man setImage:image];}
if(runnerImageNumber==7){UIImage *image=[UIImage imageNamed:@"run7.png"];[man setImage:image];}
if(runnerImageNumber==8){UIImage *image=[UIImage imageNamed:@"run8.png"];[man setImage:image];}
if(runnerImageNumber==9){UIImage *image=[UIImage imageNamed:@"run9.png"];[man setImage:image];}
runnerImageNumber++;
if(runnerImageNumber==9){runnerImageNumber=1;}
}
if ([direction isEqualToString:@"left"]){
if(runnerImageNumber==1){UIImage *image=[UIImage imageNamed:@"run10.png"];[man setImage:image];}
if(runnerImageNumber==2){UIImage *image=[UIImage imageNamed:@"run11.png"];[man setImage:image];}
if(runnerImageNumber==3){UIImage *image=[UIImage imageNamed:@"run12.png"];[man setImage:image];}
if(runnerImageNumber==4){UIImage *image=[UIImage imageNamed:@"run13.png"];[man setImage:image];}
if(runnerImageNumber==5){UIImage *image=[UIImage imageNamed:@"run14.png"];[man setImage:image];}
if(runnerImageNumber==6){UIImage *image=[UIImage imageNamed:@"run15.png"];[man setImage:image];}
if(runnerImageNumber==7){UIImage *image=[UIImage imageNamed:@"run16.png"];[man setImage:image];}
if(runnerImageNumber==8){UIImage *image=[UIImage imageNamed:@"run17.png"];[man setImage:image];}
if(runnerImageNumber==9){UIImage *image=[UIImage imageNamed:@"run18.png"];[man setImage:image];}
runnerImageNumber++;
if(runnerImageNumber==9){runnerImageNumber=1;}
}
}
我嘗試通過故事板爲雙方以及底部設置(固定)該人的約束,但看起來它仍然在重置。 這似乎是唯一的打嗝,所以我寧願不使用全新的框架來更新UILabel。 – Anon 2014-09-27 04:40:17
你是如何創建標籤的:xib,storyboard或code? – 2014-09-27 04:42:55
我在故事板中創建了標籤 - – Anon 2014-09-27 04:46:21