我正在製作iPhone遊戲,讓用戶選擇他們希望自己的汽車在遊戲中使用的顏色。爲了顯示哪些車可以選擇我有UIButtons與各種汽車的背景圖像。爲了顯示當前選擇哪輛車,我在背景顏色爲黃色的當前汽車顏色後面有一個按鈕。我想要發生的是,當你點擊一個汽車按鈕時,黃色按鈕移動到被點擊的按鈕後面。我的代碼看起來像:UIButton不會以編程方式更改邊界
-(void)setPlayerCar:(UIButton *)newCar{
//this code is being called when any of the buttons is clicked
NSArray *carFiles = [NSArray arrayWithObjects:@"redCar.png",@"blueCar.png",@"greenCar.png",@"purpleCar.png",@"turquioseCar.png",@"yellowCar.png", nil];
NSString *file = [carFiles objectAtIndex:newCar.tag];
currentCarImage = file;
CGRect frame;
if(currentCarImage == @"redCar.png"){
frame = CGRectMake(48, 78, 30, 30);
}
if(currentCarImage == @"blueCar.png"){
frame = CGRectMake(83, 78, 30, 30);
}
if(currentCarImage == @"greenCar.png"){
frame = CGRectMake(118, 78, 30, 30);
}
if(currentCarImage == @"purpleCar.png"){
frame = CGRectMake(153, 78, 30, 30);
}
if(currentCarImage == @"turquioseCar.png"){
frame = CGRectMake(188, 78, 30, 30);
}
if(currentCarImage == @"yellowCar.png"){
frame = CGRectMake(223, 78, 30, 30);
}
for(UIButton *button in self.pauseScroll.subviews){
if(button.backgroundColor == [UIColor yellowColor]){
button.bounds = frame;
}
if(button.tag == newCar.tag){
[self.pauseScroll bringSubviewToFront:button];
}
}
}
據我所知,這應該將黃色按鈕移動到被選中的按鈕。問題是這不會發生,當我調試時我發現正確的按鈕被識別,並且該框架被賦予正確的值,並且該行:button.bounds = frame;正在執行,但當我看看什麼是顯示什麼都沒有改變。
'currentCarImage == @ 「redCar.png」'這不是你如何比較字符串你需要'[currentCarImage isEqualToString:@ 「redCar.png」]' – 2011-12-30 00:00:12
我也會考慮改變'if'聲明到'else if'語句,這樣你就不會每次都執行每個測試。此外,'carFiles'數組可能會更好地放置在其他地方最有可能在法老 – 2011-12-30 01:31:51