Ios 有些UIButton最初隐藏在自定义TableViewCell中,有些则不是,但在滚动时,一切都会变得一团糟

Ios 有些UIButton最初隐藏在自定义TableViewCell中,有些则不是,但在滚动时,一切都会变得一团糟,ios,iphone,uitableview,Ios,Iphone,Uitableview,在我的应用程序中,基于从web服务返回的一些数据,我必须禁用或启用自定义UITableViewCell上的按钮。最初,当表格呈现时,一切都很好;但在滚动之后,事情就变得失控了 我知道我需要使用标签。但是怎么做呢?我是标记每个单元格还是仅标记每个单元格上的相关按钮。请帮忙 -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { stati

在我的应用程序中,基于从web服务返回的一些数据,我必须禁用或启用自定义UITableViewCell上的按钮。最初,当表格呈现时,一切都很好;但在滚动之后,事情就变得失控了

我知道我需要使用标签。但是怎么做呢?我是标记每个单元格还是仅标记每个单元格上的相关按钮。请帮忙

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifierForContacts = @"UserContacts";
        if (!indexPath.row)
        {
            ContactNumberTableCell *cell = (ContactNumberTableCell*)[tableView dequeueReusableCellWithIdentifier:cellIdentifierForContacts];
            if (cell == nil)
            {
                NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ContactNumberTableCell" owner:self options:nil];
                cell = [nib objectAtIndex:0];
            }

// THE CALL BUTTON IS TO BE DISABLED WHEN THE WEB SERVICE DOES NOT RETURN A CONTACT NUMBER

            UITapGestureRecognizer *singleTapForCall = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(callPressed:)];
            [cell.call addGestureRecognizer:singleTapForCall];

            UITapGestureRecognizer *singleTapForSave = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(savePressed:)];
            [cell.save addGestureRecognizer:singleTapForSave];

NSMutableDictionary *dict = [arrayOfContactNumbers objectAtIndex:indexPath.section];

                if([dict objectForKey:@"WorkPhone"] == [NSNull null])
                {
                    cell.contactNumber.text = @"Not In Record";

//AREA OF PROBLEM.. THE STATE DOES NOT REMAIN THE SAME WHEN TABLE ROWS ARE SCROLLED

                        [cell.call setHidden:YES];
                    }

                    else
                    {
                        cell.contactNumber.text = [dict objectForKey:@"WorkPhone"];
                    }

}
这样做:

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

    //Your code
    --- 
    ----
                    if([dict objectForKey:@"WorkPhone"] == [NSNull null])
                    {
                        //AREA OF PROBLEM.. THE STATE DOES NOT REMAIN THE SAME WHEN TABLE ROWS ARE SCROLLE
                         cell.contactNumber.text = @"Not In Record";
                         [cell.call setHidden:YES];
                     }
                     else
                     {
                          [cell.call setHidden:NO];//show your button here
                           cell.contactNumber.text = [dict objectForKey:@"WorkPhone"];
                      }
    //Your code
    --- 
    ----
        }

请出示CellForRowatineXpath:的完整代码好吗?实际上,只有这部分代码与我的问题有关。。即使我把代码粘贴在这里,也不会有帮助。事实上,这行如果!indexPath.row没有意义。这就是我要问的问题。这句话多少次变成现实?你查过了吗?你在这条线上得到了什么!行。它成真了多少次?如果!行检查该行是否为节。实际上,我正在创建嵌套行。。这是可折叠和可扩展的行。它工作正常。。问题在于只维护按钮的状态。答案对您没有帮助吗?