如何在不重新加载的UITableView didSelectRow上更改UIButton背景图像

时间:2014-06-17 07:04:13

标签: objective-c uitableview uibutton

我在 UITableView Cell 中添加了**UIButton**。我想在两次点击(UIButton和UITable - didSelectRow)上添加一项功能。

开启按钮单击我可以通过发件人更改按钮背景图像。 守则如下所示:

-(void)tableButton_OnClick:(id)sender
{
    UIButton *btn=(UIButton *)sender;
    [btn setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal];
}

我希望在UITable - didSelectRow上添加相同的功能,而无需重新加载表格。

3 个答案:

答案 0 :(得分:0)

您必须使用公开UITableViewCell @property制作自己的自定义UIButton。然后在didSelectRowAtIndexPath中你可以使用这样的东西:

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    YourCell* yourCell = (YourCell*)[tableView cellForRowAtIndexPath:indexPath];
    UIButton* button = yourCell.button;
    [button setImage:[UIImage imageNamed:@"checked"] forState:UIControlStateNormal];
}

答案 1 :(得分:0)

步骤 - 试试这个

  1. 在单元格上添加按钮时,将标记值设置为按钮

    例如:

    btn.tag = indexpath.row;    cell.tag = indexpath.row;

  2. didSelectRowAtIndexPath上,根据代码值创建UIButton 例如:

     - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
     {
    
     UITableViewCell *cell=(UITableViewCell *)[self.TableView viewWithTag:indexPath.row];
    
     UIButton *btn=(UIButton *)[cell viewWithTag:indexPath.row];
    
     [self tableButton_OnClick:btn];
    
      }
    

答案 2 :(得分:0)

if ([[[myarry objectAtIndex:indexPath.row] objectForKey:@"key_name"] isEqualToString:@"1"])
   {
     [cell.button_my setBackgroundImage:[UIImage imageNamed:@"first.png"] forState:UIControlStateNormal];

   }

   els
{

 [cell.button_my setBackgroundImage:[UIImage imageNamed:@"first_other.png"] forState:UIControlStateNormal];


        }