3

UITableViewCell使用故事板创建了一个自定义。

我像这样加载它:

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

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

更新:我需要为 UILabel 添加边框。我在故事板中没有找到任何可以做到这一点的事情。

4

3 回答 3

13

UIViews 有两个指定的初始化器initWithFrame:initWithCoder:. initWithCoder:如果从 nib/storyboard 加载视图,则使用initWithFrame- 如果以编程方式创建视图。

于 2012-10-03T14:14:33.100 回答
5

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

于 2012-10-03T14:10:32.680 回答
0

向 HJAddCell 添加一个名为 reset 的新方法怎么样?将每次使用之前需要发生的初始化代码移到 reset 方法中,并从初始化程序中调用 reset。

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

于 2012-10-03T14:10:08.827 回答