2011-03-18 5 views
0
if ([stararray count] > 0) { 
     for (int i = 0;i < [stararray count]; i++) { 
      NSString *starstr =[stararray objectAtIndex:i]; 
      NSInteger starinteger = [starstr integerValue]; 
      btn = [[UIButton alloc] initWithFrame:kLabelRect2]; 
      btn.tag =starinteger - 1; 
      NSLog(@"btnID1:%d",btn.tag); 
      [btn setImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal]; 
      [btn addTarget:self action:@selector(starClicked:) 
      forControlEvents:UIControlEventTouchUpInside]; 

      [cell.contentView addSubview:btn]; 
      btn.hidden = inPseudoEditMode; 
     } 

     for (int i = 0;i < [nostararray count]; i++) { 
     NSString *starstr =[nostararray objectAtIndex:i]; 
     NSInteger starinteger = [starstr integerValue]; 
     btn = [[UIButton alloc] initWithFrame:kLabelRect2]; 
      btn.tag =starinteger - 1; 
      NSLog(@"btnID2:%d",btn.tag); 
      [btn setImage:[UIImage imageNamed:@"dot.png"] forState:UIControlStateNormal]; 
      [btn addTarget:self action:@selector(starClicked:) forControlEvents:UIControlEventTouchUpInside]; 
            [cell.contentView addSubview:btn]; 
btn.hidden = inPseudoEditMode; 
     } 

     //stararray = [[NSMutableArray alloc]init]; 
    } 
    else { 
     btn = [[UIButton alloc] initWithFrame:kLabelRect2]; 
     btn.tag =indexPath.row; 
     NSLog(@"btnID2:%d",btn.tag); 
     [btn setImage:[UIImage imageNamed:@"dot.png"] forState:UIControlStateNormal]; 
     [btn addTarget:self action:@selector(starClicked:) 
     forControlEvents:UIControlEventTouchUpInside]; 

     [cell.contentView addSubview:btn]; 
     btn.hidden = inPseudoEditMode; 
    } 
+0

THER 경우를 수행 e는 두 개의 행으로 구성되며 사용자가 첫 번째 행의 첫 번째 버튼을 클릭하면 두 번째 버튼에서 변경됩니다. 최신 솔루션을 – Harshal

+0

에 게시 할 수 있습니까? – visakh7

+0

는 최신 코드 인 질문을 보았습니다 – Harshal

답변

2

당신은 클릭 버튼을 가지고 당신의 UITableViewCell을 사용자 정의 할 수있는 것은 UR 필요한 조치

업데이트

-(void)starClicked:(id)sender 
    { 

     UIButton *button = (UIButton *)sender; 
     NSLog(@"btnID:%d",button.tag); 
     if(button.tag == initialTag) { 
      [button setImage:[UIImage imageNamed:@"star.png" forState:UIControlStateNormal]]; 
      button.tag = newTag; 
     } 
     else if(button.tag == newTag) 
     { 
      [button setImage:[UIImage imageNamed:@"dot.png" forState:UIControlStateNormal]]; 
      button.tag = initialTag; 
     } 

     NSLog(@"btnID:%d",btn.tag); 

    } 

또 다른 옵션

-(void)starClicked:(id)sender 
{ 

UIButton *button = (UIButton *)sender; 
button.selected = !button.selected; // toggle the selected property, 

    if (button.selected) 
    { 

// code to change image for selected state. 
    } 
    else 
    { 
// code to change image for normal state. 
    } 
} 
+0

@ 7KV7 덕분에 일을 – Harshal

+0

@ 7KV7 어이 어떻게 이미지 이름 star.png 버튼을 클릭하여 dot.png 다시 데려 오니 – Harshal

+0

업데이트 된 답변을 참조하십시오. initialTag는 도트 이미지가 있고 newTag는 스타 이미지가있을 때의 태그입니다. – visakh7

0

UIButton을 사용자가 누를 때 토글 할 표 셀에 추가 할 수 있습니다.

-(void) toggleStarButton:(id)sender 
{ 
    if([sender tag]== 0) 
    { 
     [sender setImage:[UIImage imageNamed:@"star.png"] forState:UIControlStateNormal]; 
     [sender setTag:1]; 


    else if([sender tag]==1) 
    { 
     [sender setImage:[UIImage imageNamed:@"unStar.png"] forState:UIControlStateNormal]; 
     [sender setTag:0]; 

    } 
} 
+0

안녕하세요. 버튼을 선택하는 데 문제가 있습니다. – Harshal

+0

뭐가 문제입니까? – visakh7

+0

나는 내 대답을 편집했는지 확인하십시오. – Jhaliya

관련 문제