0

我有一个 UITableViewController 包含一个表格,我希望在其单元格中添加一个按钮。这是一个自定义按钮,将充当复选框,其中包含正常状态下的图像,以及用户选择它时具有的另一个图像。不幸的是,每当我按下它时,图像都不会改变状态,并且由于某种原因,它也没有调用目标方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    // Configure the cell...
    TestObject *tObject = [myNSMutableArray objectAtIndex:indexPath.row];
    cell.textLabel.text = tObject.testTitle;

    testButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [testButton setFrame:CGRectMake(280, 57, 25, 25)];
    [testButton setImage:[UIImage imageNamed:@"CheckBox1.png"] forState:UIControlStateSelected];
    [testButton setImage:[UIImage imageNamed:@"CheckBox2.png"] forState:UIControlStateNormal];
    [testButton setUserInteractionEnabled:YES];
    [testButton addTarget:self action:@selector(clickOnCheckButton:) forControlEvents:UIControlEventTouchUpInside];

    [cell addSubview:testButton];

    return cell;

}

作为记录,我确实实现了该方法:

-(void)clickOnCheckButton:(id)sender {

    NSLog(@"button has been pressed");
}

并确保拼写正确,这就是为什么我不明白为什么按下每个单元格中的按钮时没有调用该方法的原因。

我的表格输出的另一个问题是我的第一个单元格里面没有按钮。但是,它下面的所有其他单元格都可以。

谁能看到我做错了什么?

提前感谢所有回复的人。

4

2 回答 2

0

如果您使用单元格的accessoryView属性,您可以将其设置为自定义视图,就像您的按钮一样,它的设计目的就像一个按钮。然后,您可以选择使用该UITableViewDelegate方法– tableView:accessoryButtonTappedForRowWithIndexPath:来控制操作。

于 2013-01-08T05:22:01.833 回答
0

您正在我们的项目中编写流动代码

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


    ObjectiveCcustTcell *cell=[tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
   ObjctiveString *temp=[_arraymain objectAtIndex:indexPath.row];


    cell.labQutionNo.text=temp.qutNO;
    cell.labQution.text=temp.qution;
    cell.labAns.text=temp.ans;
    cell.labAns2.text=temp.ans2;
    cell.labAns3.text=temp.ans3;

[cell.ButAns1 setBackgroundImage:[UIImage imageNamed:temp.ansD1] forState:UIControlStateNormal];
[cell.ButAns2 setBackgroundImage:[UIImage imageNamed:temp.ansD2] forState:UIControlStateNormal];
[cell.ButAns3 setBackgroundImage:[UIImage imageNamed:temp.ansD3] forState:UIControlStateNormal];

     if(indexPath.row==0&&t==1)
        {
             [cell.ButAns1 setBackgroundImage:[UIImage imageNamed:@"select"] forState:UIControlStateNormal];
        }

    if(indexPath.row==1&&t==3)
            {

             [cell.ButAns1 setBackgroundImage:[UIImage imageNamed:@"select"] forState:UIControlStateNormal];
            }



    [cell.ButAns1 addTarget:self action:@selector(MEthodBut:)forControlEvents:UIControlEventTouchUpInside];
    [cell.ButAns2 addTarget:self action:@selector(MEthodBut2:) forControlEvents:UIControlEventTouchUpInside];
     [cell.ButAns3 addTarget:self action:@selector(MEthodBut3:) forControlEvents:UIControlEventTouchUpInside];

     [cell.ButAns1 setTag:indexPath.row];
     [cell.ButAns2 setTag:indexPath.row];
    [cell.ButAns3 setTag:indexPath.row];

    return cell;



}


-(void)MEthodBut:(UIButton *)sender
{

    UIButton *button = (UIButton *)sender;
    int row = (int)button.tag;





    if(row==0)
    {

        t=1;

[_tablemain reload];

    }
}
于 2016-10-05T04:22:48.420 回答