如何在表视图单元格上创建自定义按钮

时间:2011-10-08 05:38:52

标签: iphone xcode

我想在表视图中创建自定义按钮。通过单击该按钮,将使用当前日期创建标签。在该按钮中,我还必须实现复选框功能。我已经为复选框功能实现了以下代码:它工作正常,但我可以通过检查它们来创建标签YES.Thanks提前。

      UIButton *btnUncheck=[[UIButton alloc] initWithFrame:CGRectMake(260, 35, 20, 20)];

    //btnUncheck=[UIButton buttonWithType:UIButtonTypeCustom];
     btnUncheck.tag=indexPath.row;
 [btnUncheck setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
[btnUncheck addTarget:self action:@selector(checkBoxClicked:)    forControlEvents:UIControlEventTouchUpInside];


  [btnUncheck release];

[cell.contentView addSubview:view];


    return cell;

}

     -(IBAction)checkBoxClicked:(id)sender
      {


   if(favoriteChecked==NO)
{


    [sender setImage:[UIImage imageNamed:@"YES.png"] forState:UIControlStateNormal];
        favoriteChecked=YES;
   [lblAchievementreward setHidden:NO];
        }
else
{


    [sender setImage:[UIImage imageNamed:@"NO.png"] forState:UIControlStateNormal];
    favoriteChecked=NO;
        }

1 个答案:

答案 0 :(得分:1)

是的,你可以。在checkBoxClicked:中,将已检查项的行保存在实例变量中。然后,重新加载该行,以便再次调用cellForRowAtIndexPath。像 -

这样的东西
self.checkedRow = sender.tag;
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathWithIndex:sender.tag]] withRowAnimation:UITableViewRowAnimationNone];

然后,在cellForRowAtIndexPath:中,检查self.checkedRow并添加标签。像 -

这样的东西
if(indexPath.row == self.checkedRow)
{
       UILabel* label = [[UILabel alloc] init];
       //label.text = [NSDate date]; //use date formatters here
       [cell.contentView addSubview:label];
}