2013-07-23 3 views
3

태핑 된 후에 변경해야하는 내 tableview에 버튼이 있습니다. 내 cellforrowatindexpath에서cellforrowatindexpath 다음에 사용자 정의 테이블 셀에서 UIButton 이미지를 어떻게 업데이트합니까?

, 나는 생각한다

[cell.graphicButton addTarget:self action:@selector(changeGraphic:)forControlEvents:UIControlEventTouchUpInside]; 

는 (그래픽을 변경) changeGraphic를 호출해야합니다. 호출은 성공했지만 changeGraphic에서는 이미지가 변경되지 않습니다. 나는 changeGraphic 방법 안에 물건을 로그인하면

- (IBAction)changeGraphic:sender 
{ 


    buttonState++; 
// button state is an int, im not using BOOl because I have more than 2 images to change from, but for this question i only included 2 
    if(buttonState == 2){ 
     buttonState = 0; 
    } 
    // 1 = travel time 2 =activity time 3 = total time 
    if (buttonState == 0) { 



     [cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal]; 
    } 

    if (buttonState == 1) { 


     [cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"activityTimeGraphicGreen.png" ] forState:UIControlStateNormal]; 
    } 

[self.tableView beginUpdates]; 
[self.tableView reloadData]; 
[self.tableView endUpdates]; 

}

, 그것은 잘 돌아갑니다. UIButton의 이미지를 올바르게 업데이트합니까?

+1

이미지 이름이 맞습니까? –

+0

이미지 이름은 정확하지만 귀하의 의견은 실제 이미지 뒤에 숨어 있습니다. 나는 그것이 있어야한다고 발견했다. [cell.vicinitimeGraphicButton setImage : [UIImage imageNamed : @ "travelDistanceGraphicGreen.png"] forState : UIControlStateNormal]; ' setBackgroundImage 대신에. 이전에는 원본 이미지 뒤에 이미지가 생성되었습니다. 덕분에 내가 추측 – Spenciefy

+0

와우 나는 내가 추측하는 것을 도왔다! –

답변

5

내 경우

[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal]; 

대신

[cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal]; 

해야, 이미지를 배경으로 생성되고 있었다