我正在使用Custom
tableViewCell
。单元格包含一些labels
等,但在所有行中,两行包含图形。
问题是我保持图形(子类视图)隐藏,但不想为每个单元格加载图形。如果我执行该图nil
,那么它也会从那两行开始。
请建议我使用table
因为该图而不会占用大量内存。
代码是这样的
self.btnTitleOfSection = [UIButton buttonWithType:UIButtonTypeCustom];
self.btnTitleOfSection.frame = CGRectMake(5, 5, 316, 30);
[self.btnTitleOfSection setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[self.btnTitleOfSection setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
[self.btnTitleOfSection setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
[self.contentView addSubview:self.btnTitleOfSection];
self.viewGraph1 = [[Graph1 alloc]initWithFrame:CGRectMake(40, 5, 240, 140)];
self.viewGraph1.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.viewGraph1];
self.viewGraph2 = [[Graph2 alloc]initWithFrame:CGRectMake(40, 5, 240, 110)];
self.viewGraph2.backgroundColor = [UIColor clearColor];
[self.contentView addSubview:self.viewGraph2];
self.lblGraphH = [[UILabel alloc]initWithFrame:CGRectMake(100, 145, 103, 21)];
self.lblGraphH.text = @"Week";
[self.contentView addSubview:self.lblGraphH];
我不想每次都加载viewGraph1和viewGraph2。
我是否必须仅使用两个单元格,或者我可以使用1个单元格来解决内存问题。
答案 0 :(得分:0)
您的图表将仅显示在其他单元格上,因为您的单元格正在重复使用。您必须在cellForRowAtIndexPath
方法中为图表实现默认值,并且只在特定条件下启用图表,如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(!cell)
{
cell = [[CustomCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.graph setHidden:YES];
// check for your condition here
if(indexPath.row == yourIndex)
{
// show the graph only in this cell
[cell.graph setHidden:NO];
}
}