Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 表格单元格中的复选标记按钮不工作_Ios_Iphone_Uitableview - Fatal编程技术网

Ios 表格单元格中的复选标记按钮不工作

Ios 表格单元格中的复选标记按钮不工作,ios,iphone,uitableview,Ios,Iphone,Uitableview,UItable单元格中的复选标记按钮不工作提前感谢,表格单元格中的复选标记按钮不工作 self.btn_acceptCheckmark = [[UIButton alloc] initWithFrame:CGRectMake(250 , 25, 20, 20)]; [self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarknormal.png"] forState:UIControlSt

UItable单元格中的复选标记按钮不工作提前感谢,表格单元格中的复选标记按钮不工作

self.btn_acceptCheckmark = [[UIButton alloc] initWithFrame:CGRectMake(250 , 25, 20, 20)];
        [self.btn_acceptCheckmark setBackgroundImage:[UIImage imageNamed:@"checkmarknormal.png"] forState:UIControlStateNormal];
        [self.btn_acceptCheckmark addTarget:self action:@selector(CheckMarkaction:) forControlEvents:UIControlEventTouchUpInside];
        [self.btn_acceptCheckmark setBackgroundColor:[UIColor clearColor]];
        self.btn_acceptCheckmark.clipsToBounds = YES;
cellforrowattindexpath: 表视图indexpath=4

else if (indexPath.section == 4){

        if (indexPath.row == 0) {
            lbl_offerertittle.text = @"Offerers";
            [cell addSubview:self.btn_acceptCheckmark];
            self.btn_acceptCheckmark.hidden=YES;

    }

        if ([[offersAsset valueForKey:@"offers"] isEqualToString:@"No listing"]) {
            lbl_offererName.text = @"No offers available!";
            lbl_offererName.textColor = [UIColor grayColor];

        }
        else {

              self.btn_acceptCheckmark.hidden=NO;
            lbl_offererCount.text = @"";
勾选按钮动作法

-(IBAction)CheckMarkaction:(id)sender {

    if (self.btn_acceptCheckmark.isSelected==YES)
    {

    [self.btn_acceptCheckmark  setBackgroundImage:[UIImage imageNamed:@"checkmarkactive.png"] forState:UIControlStateNormal];
   /// self.btn_acceptCheckmark .backgroundColor=[UIColor clearColor];

    [self.btn_acceptCheckmark setSelected:NO];
        [self.tbl reloadData];


    }else if (self.btn_acceptCheckmark.isSelected==NO)
    {

        [self.btn_acceptCheckmark  setBackgroundImage:[UIImage imageNamed:@"checkmarkactive.png"] forState:UIControlStateNormal];
        //self.btn_acceptCheckmark .backgroundColor=[UIColor clearColor];

        [self.btn_acceptCheckmark setSelected:YES];
         [self.tbl reloadData];


    }
}

希望你至少得到了选中标记按钮。你可以使用下面的代码在UITableViewCell中切换按钮的图像。它对我有用。对于表视图单元格,我想您还必须获得索引路径

- (void)selectDistance: (UIButton *)button event:(UIEvent *)event{
    NSIndexPath* indexPath = [self.table indexPathForRowAtPoint:
                              [[[event touchesForView:button] anyObject]
                               locationInView:self.table]];
    if (button.selected) {
        [button setBackgroundImage:[UIImage imageNamed:@"checkboxoff-5.png"] forState:UIControlStateNormal];
        [button setSelected:NO];
    }else{
        [button setBackgroundImage:[UIImage imageNamed:@"checkboxon-5.png"] forState:UIControlStateNormal];
        [button setSelected:YES];
 }

CheckMarkaction
的第一行添加断点。单击按钮,查看它是否进入此方法。如果有多个单元格具有此按钮,则肯定存在问题,因为只有一个
self.btn_acceptCheckmark
,但您尝试将其添加到不同的单元格。请定义“不工作”。期望的行为是什么?发生了什么事?正如@Hampotato所建议的,如果有多个单元格需要选中标记,您的方法将不起作用-这可能由特定的UITableViewCell子类处理得更好。我有多个单元格,如两个单元格扫描任何一个告诉我该怎么办?现在(void)selectDistance:(UIButton*)button event:(UIEvent*)event{此方法自身不调用您在initWithStyle中设置了什么:…?[self.btn_acceptCheckmark addTarget:self action:@selector(selectDistance:event:)forControlEvents:UIControlEventTouchUpInside];是,我已经提供了UIControlEventTouchUpInside,但没有使用尝试设置self.btn_acceptCheckmark.userInteractionEnabled=是您确定已正确在内部添加按钮吗