我有一个包含三个不同自定义单元格的表视图。每个将从三个不同的单元格类加载。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier1 = @"CellIdentifier";
static NSString *CellIdentifier2 = @"Cell";
static NSString *CellIdentifier3 = @"Cell";
if (indexPath.section == 0)
{
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
if (cell == nil)
{
cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier1] autorelease];
}
cell.datelabel.text=@"dhhg";
cell.nameLabel.text=@"shdhsjdj";
cell.msg.text=@"sdhhhfhjhfj";
cell.myImageView.image=[UIImage imageNamed:@"sd.png"];
cell.likelabel.text=@"hhhf";
return cell;
}
else
{
Customcellwithimage *cell = (Customcellwithimage *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];
if (cell == nil)
{
cell = [[[Customcellwithimage alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier2] autorelease];
}
cell.datelabel1.text=@"sdhkhks";
cell.nameLabel1.text=@"sdhjkhkshd";
cell.msg1.text=@"sdsdsd";
cell.myImageView1.image=[UIImage imageNamed:@"shdjhjhs"];
cell.likelabel1.text=@"sjdh";
cell.bannerview1.image=[UIImage imageNamed:@"dshjs"];
return cell;
}
return Nil;
}
`。这是我设计的代码。任何人都可以帮我解决我的错误?
答案 0 :(得分:1)
您的滞后可能是因为您正在主线程上的cellForRowAtIndexpath中从光盘加载。尽量避免在主线程上进行I / O操作。看看这里:loading images from a background thread using blocks
答案 1 :(得分:0)
首先,cellIdentifier2和cellIdentifier3具有与@“cell”相同的值。
您只包含2个条件,一个用于零部分,第二个用于其他条件。
您还应该提到使用cellIdentifier3的条件
您没有提到您遇到的问题,因为您的代码似乎没有任何错误。
你想要什么输出?不同细胞的不同部分??
答案 2 :(得分:0)
检查图像大小。 如果图像尺寸较大,则表格视图不会平滑
答案 3 :(得分:0)
你的代码对我来说似乎完全没问题。避免使用[UIImage imageNamed:@"sd.png"]
,因为它曾用于在ios 3.0之前创建内存问题,但是对于大图像,它可能仍然会产生问题。
您可以阅读:
Does UIImage's imageNamed still cause memory issues on iOS4 for large images?