我有一个名为 ScheduleTableViewCell 的自定义 UITableView 单元。它在 initWithStyle 中以编程方式(无 NIB)添加了三个子视图(标签)。我可以调用我的cellForRowAtIndexPath
方法:[[ScheduleTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
一切正常。我寻找更好的方法来设置重用标识符,这样我就没有一堆永远不会使用的标签和视图(我只使用我创建的三个),但找不到任何。这是最好的方法,我不应该担心过多的内存使用,还是有更好的方法来设置重用标识符?
谢谢。
编辑:
我用于创建自定义 UITableViewCells 的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ScheduleTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if (cell == nil) {
cell = [[ScheduleTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
}
if (_grayedOut) {
[[cell mainLabel] setTextColor:[UIColor grayColor]];
[[cell subtitleLabel1] setTextColor:[UIColor grayColor]];
[[cell subtitleLabel2] setTextColor:[UIColor grayColor]];
} else {
[[cell mainLabel] setTextColor:[UIColor blackColor]];
[[cell subtitleLabel1] setTextColor:[UIColor blackColor]];
[[cell subtitleLabel2] setTextColor:[UIColor blackColor]];
}
[[cell mainLabel] setText:[[[[[[[self appDelegate] user] days] objectAtIndex:_dayInt] periods] objectAtIndex:[indexPath section]] desc]];
[[cell subtitleLabel1] setText:[NSString stringWithFormat:@"Teacher: %@", [[[[[[[self appDelegate] user] days] objectAtIndex:_dayInt] periods] objectAtIndex:[indexPath section]] teacher]]];
[[cell subtitleLabel2] setText:[NSString stringWithFormat:@"Location: %@", [[[[[[[self appDelegate] user] days] objectAtIndex:_dayInt] periods] objectAtIndex:[indexPath section]] roomLocation]]];
return cell;
}