2013-10-23 55 views
0

我有tableView with custom cell這是工作正常,但是當我選擇按鈕時,它顯示所選圖像其他明智的簡單框圖像。如何顯示iphone上的選定單元格上的選擇箭頭圖像

問題:當我選擇的任何細胞,也selets任何其他細胞,並表明細胞按鈕圖像selected.Here是我的代碼

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     if (tableView == employeeTableView) 
     { 
       employeeCell = (EmployeeCell *)[employeeTableViewdequeueReusableCellWithIdentifier:@"cell"]; 
       if (!employeeCell) 
       { 
        employeeCell = [[EmployeeCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; 
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"EmployeeCell" owner:self options:nil]; 

        employeeCell = (EmployeeCell *)[nib objectAtIndex:0]; 
       } 

     employeeTableView.backgroundColor=[UIColor clearColor]; 
     employeeTableView.backgroundView=nil; 
     employeeCell.emplyeeName.font=[UIFont fontWithName:@"Arial" size:13]; 
     employeeCell.employeeDepartement.font=[UIFont fontWithName:@"Arial" size:13]; 
     employeeCell.EmployeePosition.font=[UIFont fontWithName:@"Arial" size:13]; 
     Coffee *coffeeObj=[appDelegate.employeeArray objectAtIndex:indexPath.row]; 
     employeeCell.employeeDepartement.textColor = [UIColor brownColor]; 
     employeeCell.EmployeePosition.textColor = [UIColor brownColor]; 

     employeeCell.emplyeeName.textColor = [UIColor brownColor]; 

     employeeCell.emplyeeName.text = coffeeObj.employeeName; 
     employeeCell.EmployeePosition.text = coffeeObj.employeeJob; 
     employeeCell.employeeDepartement.text = coffeeObj.departmentName; 

     if ([employeeCell.selectionButton isSelected]) 
     { 
      employeeCell.selectedImage.image =[UIImage imageNamed:@"CheckArrow"]; 

     } 
     else 
     { 
      employeeCell.selectedImage.image = [UIImage imageNamed:@"boxbutton"]; 
     } 
     [employeeCell.selectionButton addTarget:self action:@selector(setSelectCell:) forControlEvents:UIControlEventTouchUpInside]; 

     [employeeCell.selectionButton setTag:indexPath.row]; 

     return employeeCell; 

    } 

    if (tableView == trainerTableView) 
    { 

     UITableViewCell *cell = [trainerTableView dequeueReusableCellWithIdentifier:@"Cell"]; 
     if (!cell) { 
      cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 

     } 
     cell.textLabel.text = @"Calvin Banks"; 
//  [appDelegate.trainerArray objectAtIndex:indexPath.row]; 

     return cell; 
} 
    return 0; 

} 


    -(void)setSelectCell:(id)Sender 
    { 
    CGPoint point =[Sender convertPoint:CGPointZero toView:employeeTableView]; 
    NSIndexPath *indexPath =[employeeTableView indexPathForRowAtPoint:point]; 
    NSLog(@"indexPath %@",indexPath); 
    Coffee *cofee; 

    cofee = [appDelegate.employeeArray objectAtIndex:[Sender tag]]; 

    employeeCell =(EmployeeCell *)[employeeTableView cellForRowAtIndexPath:indexPath]; 

    if ([employeeCell.selectionButton isSelected]) { 
     [employeeCell.selectionButton setSelected:NO]; 

     employeeCell.selectedImage.image =[UIImage imageNamed:@"boxbutton"]; 

    } 
    else 
    { 
     [employeeCell.selectionButton setSelected:YES]; 
     employeeCell.selectedImage.image =[UIImage imageNamed:@"CheckArrow"]; 

     [selectedEmployees addObject:cofee]; 
    } 

} 

回答

2

試試這個:

//把它在.h文件中可變的arSelectedRows;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

static NSString *CellIdentifier = @"Cell56756"; 
if (tableView == employeeTableView) 
{ 
    EmployeeCell *Cell = (EmployeeCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (Cell == nil) 
    { 
     NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:@"EmployeeCell" owner:self options:nil]; 
     for (id currentobject in topLevelObject) 
     { 
      if ([currentobject isKindOfClass:[UITableViewCell class]]) 
      { 
       Cell = (EmployeeCell *) currentobject; 
       break; 
      } 
     } 
    } 

    employeeTableView.backgroundColor=[UIColor clearColor]; 
    employeeTableView.backgroundView=nil; 


    Cell.emplyeeName.font=[UIFont fontWithName:@"Arial" size:13]; 
    Cell.employeeDepartement.font=[UIFont fontWithName:@"Arial" size:13]; 
    Cell.EmployeePosition.font=[UIFont fontWithName:@"Arial" size:13]; 

    Cell.employeeDepartement.textColor = [UIColor brownColor]; 
    Cell.EmployeePosition.textColor = [UIColor brownColor]; 
    Cell.emplyeeName.textColor = [UIColor brownColor]; 

    Coffee *coffeeObj=[appDelegate.employeeArray objectAtIndex:indexPath.row]; 
    Cell.emplyeeName.text = coffeeObj.employeeName; 
    Cell.EmployeePosition.text = coffeeObj.employeeJob; 
    Cell.employeeDepartement.text = coffeeObj.departmentName; 

    if([arSelectedRows containsObject:indexPath]) { 
     Cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
    else { 
     Cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    return Cell; 

} 
if (tableView == trainerTableView) 
{ 
    UITableViewCell *cell = [trainerTableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (!cell) { 
     cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 
    cell.textLabel.text = @"Calvin Banks"; 
    return cell; 
    } 
    return 0; 
} 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (tableView == employeeTableView) 
    { 
     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
     if(cell.accessoryType == UITableViewCellAccessoryNone) { 
      cell.accessoryType = UITableViewCellAccessoryCheckmark; 
      [arSelectedRows addObject:indexPath]; 
     } 
     else { 
      cell.accessoryType = UITableViewCellAccessoryNone; 
      [arSelectedRows removeObject:indexPath]; 
     } 
     NSLog(@"id are here :%@",arSelectedIDs); 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 

它會有所幫助。

快樂編碼...

+0

我不問這是附件類型我給自定義單元格 –

+0

自定義單元格,然後也將正常工作。 –

+0

@AijazAli檢查我的編輯答案。它正在工作或不告訴我? –

相關問題