簡體   English   中英

更改自定義單元格中按鈕的圖像

[英]change image of button in custom cell

我想更改自定義單元格上按鈕的圖像,給定代碼在雙擊時更改圖像。我想在單擊時更改圖像(選中和取消選中)

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *simpleTableIdentifier = @"SimpleTableCell";

        SimpleTableCell *cell = (SimpleTableCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
        if (cell == nil) 
        {
            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"SimpleTableCell" owner:self options:nil];
            cell = [nib objectAtIndex:0];
        } 
        NSString *localArrayData = [LocalArray objectAtIndex:indexPath.row];
        cell.nameLabel.text =localArrayData;
        cell.CheckButton.tag=indexPath.row;
        [cell.CheckButton setImage:[UIImage imageNamed:@"checkU.png"] forState:UIControlStateNormal];
        [cell.CheckButton addTarget:self action:@selector(CheckButtonAction:)forControlEvents:UIControlEventTouchUpInside];
        return cell;
    }
- (void)CheckButtonAction:(id)sender
    {
        NSInteger row = [sender tag];
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:0];
        SimpleTableCell *cell = [DataTable cellForRowAtIndexPath:indexPath];
        if(appDelegate.didSelect)
        {
            [cell.CheckButton setImage:[UIImage imageNamed:@"checkU.png"] forState:UIControlStateNormal];
            appDelegate.didSelect = FALSE;
        }
        else
        {
            [cell.CheckButton setImage:[UIImage imageNamed:@"checkS.png"] forState:UIControlStateNormal];
            appDelegate.didSelect = TRUE;
        }
    }

在 UIButton Action 里面寫這個

UIButton *btn = (UIButton *)sender;
if (btn.tag==0)

{
    btn.tag = 1;
    [btn setImage:[UIImage imageNamed:@"uncheck.png"] forState:UIControlStateNormal];

}
else
{
    btn.tag=0;
    [btn setImage:[UIImage imageNamed:@"check.png"] forState:UIControlStateNormal];
}

你需要做這樣的事情

-(void)selectUser:(id)sender
{
    UIButton *button=(UIButton *) sender;
    NSIndexPath *indexpath = [NSIndexPath indexPathForRow:button.tag inSection:0];
    CustomTableViewCell *tappedCell = (CustomTableViewCell *)[yourTableView cellForRowAtIndexPath:indexpath];
    if ([tappedCell.selectButton.imageView.image isEqual:[UIImage imageNamed:@"green.png"]])
    {
        [tappedCell.selectButton setImage:[UIImage imageNamed:@"grey.png"] forState:UIControlStateNormal];
    }
    else
    {
        [tappedCell.selectButton setImage:[UIImage imageNamed:@"green.png"] forState:UIControlStateNormal];
    }
}

cellForRowAtIndexPath方法中,您將單元格的 indexPath 設置為按鈕標簽

cell.selectButton.tag=indexPath.row;

並將選擇器設置為按鈕

[cell.selectButton addTarget:self action:@selector(selectUser:) forControlEvents:UIControlEventTouchUpInside];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM