我有一个通过自定义表格视图单元设计的UITable View。我希望每个单元格上的文本都不同,所以我在我的CustomCell中添加了一个label
,然后将IBOutlet
连接到它上面,但是我很难把头缠绕在代码的逻辑部分,任何帮助将不胜感激。到目前为止我有这个:
//这是我的表视图控制器类。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *object = [[NSBundle mainBundle]loadNibNamed:@"TableOfContentsCell" owner:self options:nil];
for (id currentObject in object) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (TableOfContentsCell *)currentObject;
break;
}
}
}
//cell.textLabel.textColor = [UIColor whiteColor];
// Configure the cell...
return cell;
}
//This is in my Custom Table View Cell Class.
-(void)setTableText{
cellLabel.text = [table.tableCellText objectAtIndex:0];
}
我无法弄清楚如何在我想要的文本设置文本时,是在数组内部!提前谢谢!
答案 0 :(得分:1)
我不清楚为什么要将数据加载到自定义单元格中的标签上,请澄清一下。 其次,在注释配置单元格下方,您可以自定义单元格。就像你设置textColor一样。 只需在TABLE VIEW CONTROLLER CLASS中声明该数组
并编写以下代码
// Configure the cell...
cell.cellLabel.text = [yourArrayName objectAtIndex:indexPath.row];
希望它有所帮助。
答案 1 :(得分:0)
只需从tableView:cellForRowAtIndexPath
填充它- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
// Configure the cell...
cellLabel.text = [table.tableCellText objectAtIndex:indexPath.row];
return cell;
}
只需确保tableview可以访问table.tableCellText。
答案 2 :(得分:0)
不需要单独的方法。在qn的代码中有两行注释...(//配置单元格......) 将此代码添加到部分
假设您的自定义单元格中有两个标签 然后为它们添加标签(此处为1和2)并通过viewwithtag:method
在代码中获取它的引用UILabel *label=(UILabel *)[cell viewWithTag:1];
[label setText:@"2"];
UILabel *label2=(UILabel *)[cell viewWithTag:2];
[label2 setText:@"sasd"];
您必须保留的条件是必须唯一标记单元格的内容,并且使用此方法可以获取自定义单元格中任何视图的引用
快乐编码
答案 3 :(得分:0)
根据需要创建自定义单元格类。然后。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TableCustomCell *cell = (TableCustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//.....................
cell.yourLabel.text = [yourArray objectAtIndex:indexPath.row];
return cell;
}