0

我有一个UITableViewUITableViewCell在界面生成器中使用自定义填充的。我在访问这些自定义 tableviewcells 属性时遇到了一些问题,希望能得到一些帮助。

在 Interface Builder 中,我将自定义 tableviewcell 设置class为当前 View 控制器(因此我可以将所有标签对象分配给 Interface Builder 中的正确标签),所以我还在 Interface Builder 中将IBOutlet标签设置为正确的标签但是这个当我尝试将 NSString 从数组对象变量(类型为 NSString)传递到 UIlabel 的文本时发生错误。

Property 'cellDescription' not found on object of type 'UITableViewCell *'

下面是我用来使用自定义 tableviewcell 设置我的 tableview 的代码,然后尝试用正确的文本填充单元格 UILabels..

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (indexPath.section == 0) {      
        // Set cell height
        [self tableView:tableView heightForRowAtIndexPath:indexPath];

        // Configure the cell using custom cell
        [[NSBundle mainBundle] loadNibNamed:@"AutomotiveSearchCell" owner:self options:nil];

        cell = autoSearchCell;

        //call dataArrayOfObject that has all of the values you have to apply to the custom tableviewcell
        SearchResultItem* myObj = (SearchResultItem*)[dataArrayOfObjects objectAtIndex:indexPath.row];

        cell.cellDescription.text = myObj.seriesDescription; // This is where I am receiving the error

        NSLog(@"%@", myObj.seriesDescription); // This logs the correct value

        //Disclosure Indicator
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }

    return cell;
}
4

1 回答 1

2

你必须键入Casting UITableViewCellToAutomotiveSearchCell

我认为您在某处的代码很奇怪(autoSearchCell 没有声明),但是您必须执行以下操作。

cell = (AutomotiveSerachCell* )autoSearchCell;

上面的代码不起作用,应该遵循代码。


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

转换成

AutomotiveSearchCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

如果上述方法不起作用,请参考以下过程。

  1. 制作一个 CustomCell 类。 在此处输入图像描述

  2. 制作一个 CustomCell xib。 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

  3. 链接到 CustomCell 类的标签。 在此处输入图像描述

  4. 导入标头#import "AutomotiveSearchCell.h"和以下代码复制和粘贴。


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    AutomotiveSearchCell *cell = nil;

    if(!cell)
    {
        UINib *nib = [UINib nibWithNibName:@"AutomotiveSearchCell" bundle:nil];
        NSArray *arr = [nib instantiateWithOwner:nil options:nil];
        cell = [arr objectAtIndex:0];
        cell.cellDescription.text = @"Test~!~!~!";
    }

    // Configure the cell...

    return cell;
}

在此处输入图像描述

于 2012-08-15T02:41:57.030 回答