2012-05-06 186 views
0

oldTag按鈕不變回白? 我錯過了什麼?麻煩與「viewWithTag」

THX

-(void) myCharValue: (UIButton*)btn 
{ 

    [btn setBackgroundColor:[UIColor redColor]]; //current tag_button pressed 

    UIButton *btnTemp; 
    btnTemp = (UIButton*)[btnChar viewWithTag:oldTag]; 
    [btnTemp setBackgroundColor:[UIColor whiteColor]]; // <--- oldTag button is not changing back to white ?? 

    oldTag = btn.tag; 
} 


//setup 
for (int i=0; i<16; i++) { 
     for (int j=0; j<16; j++) { 
      btnChar = [UIButton buttonWithType:UIButtonTypeCustom ]; 
      [btnChar setFrame:CGRectMake(j*40+1, i*40+1, 38, 38)]; 
      [btnChar setBackgroundColor:[UIColor whiteColor]]; 
      [btnChar setTitle:[NSString stringWithFormat:@"%c", k] forState:UIControlStateNormal ]; 
      [btnChar setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
      [btnChar addTarget:self action:@selector(myCharValue:) forControlEvents:UIControlEventTouchUpInside]; 
      [btnChar setTag:k]; 
      [svDisplay addSubview:btnChar]; 
      k++; 
     } 
    } 
+0

請說明您最初是如何創建按鈕的。 – jrtc27

+0

添加了設置代碼 – jdl

回答

1

你的按鈕是svDisplay,不btnChar子視圖,使線路btnTemp = (UIButton*)[btnChar viewWithTag:oldTag];應該是btnTemp = (UIButton*)[svDisplay viewWithTag:oldTag];

2

我只想補充一點,tag屬性的默認值爲0,所以如果你用0開始循環,第一個按鈕在技術上不會被標記。稍後,當您從svDisplay(chech @ jrtc27的答案)請求viewWithTag: 0時,您將獲得該[svDisplay subviews]陣列中的第一個視圖。