2013-09-02 2 views
0

테이블을 만들었습니다. 각 셀에 플래그 배열의 값에 따라 버튼을 추가하고 있습니다. 여기서 상기 방법 임 세포특정 셀의 tableview에 숨기기 버튼

if ([[self.flags objectAtIndex:indexPath.row] 
isEqualToString:@"false"]) 
    { 
     UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [btnFlag addTarget:self 
        action:@selector(flagButtonPressed:) 
      forControlEvents:UIControlEventTouchDown]; 
     btnFlag.backgroundColor = [UIColor redColor]; 
     [btnFlag setTitle:@"flag" forState:UIControlStateNormal]; 
     btnFlag.frame = CGRectMake(230, 40, 50, 20); 
     [cell addSubview:btnFlag]; 


    }else if ([[self.flags objectAtIndex:indexPath.row] isEqualToString:@"true"]) 
{ 
    UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btnFlag setHidden:YES]; 
    [cell addSubview:btnFlag]; 
} 


-(void)flagButtonPressed:(id)sender { 
    UITableViewCell *owningCell = (UITableViewCell*)[sender superview]; 
     indexPathToCell = [self.cotDetailsTbl indexPathForCell:owningCell]; 
    // some stuff } 

버튼을 추가하는 API를 호출하는 메신저 얻어진 반응이 거짓에서 참으로 플래그 배열의 값에 따라 대체 내 코드이다. 일단 flag 배열의 값이 참이되면 Im reloading table.

그러나 임 테이블을 버튼이 아직되지 숨겨진

감사

당신의 다른 부분에서
+0

어떻게 배열의 값을 바꿀 수 있습니까 ?? – iPatel

+0

어레이에서 올바른 값을 얻고 있음을 확인했습니다. 배열이 올바르게 업데이트되는지 여부를 나타냅니다. – Subrat

+0

[self.flags replaceObjectAtIndex : indexPathToCell.row withObject : @ "true"]; – user2185354

답변

0

다시
UIButton *btnFlag = [UIButton buttonWithType:UIButtonTypeCustom]
대신 당신이 필요로 사용하여 버튼의 새로운 인스턴스를 생성을 나타납니다 다시로드 할 때 문제가있는 UIbutton 기존 인스턴스로 설정하고 숨김으로 설정하십시오. 다음을 사용하여

시도 :

if 문에서

btnFlag.tag = indexPath.row 

이제 각 버튼에 태그를 지정합니다. 그 외의 경우에는 다음을 태그에서 찾아서 숨김으로 설정하십시오.

else if ([[self.flags objectAtIndex:indexPath.row] isEqualToString:@"true"]) 
{ 
UIButton *btnFlag = [cell.contentView viewWithTag:indexPath.row]; 
[btnFlag setHidden:YES]; 
}