自定义UITableViewCell init

时间:2012-10-03 14:05:14

标签: iphone objective-c ios uitableview

我使用故事板创建了自定义UITableViewCell

我正在加载它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    HJAddCell *cell = [tableView dequeueReusableCellWithIdentifier:@"addCell"];
    // setting properties of cell 
    return cell;
}

现在我需要在初始化期间以编程方式添加一些自定义。但问题是在我的HJAddCell中,init方法未被调用。我应该怎样做才能调用init方法,或者是否有其他方法可以在最初的时间以最小的努力向定制单元类添加更多自定义代码。

更新:我需要为UILabels添加边框。我在故事板中没有发现任何事情。

3 个答案:

答案 0 :(得分:13)

UIViews有两个designated initializersinitWithFrame:initWithCoder:。如果从nib / storyboard initWithCoder:加载视图,则使用initWithFrame - 如果以编程方式创建视图。

答案 1 :(得分:5)

当然没有调用init方法。你不是自己调用任何init方法。如果使用表视图注册HJAddCell的nib,则调用的初始化方法是initWithCoder。如果您正在使用nib,您还应该问自己为什么需要在运行时自定义自定义UITableViewCell。我的意思是,它已经是一个自定义单元格。您应该使用您需要的属性创建单元格。

答案 2 :(得分:0)

如何向HJAddCell添加一个名为reset的新方法?将每次使用前需要进行的初始化代码移动到reset方法中,并从初始化程序调用reset。

然后你会在你的单元格出列后调用重置方法。