使用自己的Nib对UITableViewCell进行子类化

时间:2012-05-02 09:52:34

标签: ios uitableview interface-builder

我想创建一个自定义的UITableViewCell子类,它使用URL连接异步加载内容。我有一个处理所有这些的UITableViewCell子类和一个定义单元格布局的Nib文件,但是我在连接这两个时遇到了麻烦。这是我在tableView:cellForRowAtIndexPath中使用的代码:

static NSString *FavCellIdentifier = @"FavCellIdentifier";

FavouriteCell *cell = [tableView dequeueReusableCellWithIdentifier:FavCellIdentifier];

if (cell == nil)
{
    cell = [[[FavouriteCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FavCellIdentifier] autorelease];
}

cell.requestURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@?%@=%i", URL_GET_POST_STATUS,
                                           URL_PARAM_SERIAL,
                                           [[self.favourites objectAtIndex:indexPath.row] intValue]]];

return cell;

这为UITableViewCell子类提供了一个请求URL,该子类处理setRequestURL方法中的加载。

在FavouriteCell类中,我按原样保留了initWithStyle:reuseIdentifier:方法,在Nib中我将FavCellIdentifier设置为标识符,将FavouriteCell设置为类。现在我如何让FavouriteCell类加载Nib?

1 个答案:

答案 0 :(得分:7)

为了使用nib / xib文件,您将不得不以不同方式实例化FavouriteCell

试试这个:

  1. 确保您已将UITableViewCell类型更改为FavouriteCell的子类,而不是xib中的默认UITableViewCell。这样做:
    • 单击Interface Builder对象窗格中的单元格。
    • 然后,转到“身份检查器”选项卡,确保“自定义类”下的“类”选择列出FavouriteCell
  2. File's Owner属性更改为您要在其中显示自定义UIViewController的{​​{1}}(与步骤#1完全相同的过程)。
  3. UITableViewCell类型的IBOutlet属性添加到FavouriteCell。把它命名为你喜欢的(我将称之为UIViewController)。
  4. 返回cell的xib,将文件所有者中UITableViewCell属性的IBOutlet连接到自定义cell
  5. 使用此代码以编程方式加载单元格:

  6. UITableViewCell