我正在使用此代码设置表视图:
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(!cell){
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 300, 40)];
[cell.contentView addSubview:text];
text.tag = 1;
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UILabel *text = (UILabel*)[cell.contentView viewWithTag:1];
text.text = [subjects objectAtIndex:indexPath.row];
return cell;
}
在我试图使单元格在if(!cell)语句中可重用之前,它一直很好,有人知道这是什么问题。
为了使单元可重用,我检查了this question并正确复制了。
最佳答案
尝试这个
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
for (UIView *view in cell.contentView.subviews) {
[view removeFromSuperview];
}
UILabel *text = [[UILabel alloc]initWithFrame:CGRectMake(10, 5, 300, 40)];
[cell.contentView addSubview:text];
text.backgroundColor=[UIColor redColor];
text.textColor=[UIColor blueColor];
if(subjects[indexPath.row].lenght==0)
{
text.text=@"this object is null";
}
else
{
text.text = subjects[indexPath.row];
}
return cell;
}
希望这会有所帮助
关于ios - 尽管有标签和按钮,但可重用的UITableViewCells看起来为null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22314055/