我有一个扩展UITableViewCell的自定义类。它有两个标签和一个UISegmentedControl。
这是我配置的cellForRowAtIndexPath()。当我在调试器中检查“cell”时,它具有我提供的所有数据。但不知何故,数据永远不会被应用。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
CustomGameCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[CustomGameCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
MyData *my_data = [rows objectAtIndex:indexPath.row];
UILabel *my_date = [[UILabel alloc] init];
my_date.text = my_data.myDate;
[cell setMyDateLabel:my_date];
UILabel *my_question = [[UILabel alloc] init];
my_question.text = my.question;
[cell setMyQuestionLabel:my_question];
UISegmentedControl *my_choices = [[UISegmentedControl alloc]
initWithItems:[NSArray arrayWithObjects:my.firstChoice, my.secondChoice, nil]];
[my_choices setSelectedSegmentIndex:my.choice];
[cell setMyChoiceSegments:my_choices];
return cell
}
我想要显示的数据当前是我在viewDidLoad()中创建的数组,通过“rows”var可以访问cellForRowAtIndexPath()。
当我在模拟器中运行代码时,我在表中得到三行,表示我在viewDidLoad()中创建的数组中的三个元素。但是,这些行的内容看起来与我在故事板中定义的内容完全相同。
我错过了什么?
答案 0 :(得分:2)
您必须在单元格的单元格内容视图中添加标签和segmentcontrol,否则请执行此操作。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
CustomGameCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[CustomGameCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
MyData *my_data = [rows objectAtIndex:indexPath.row];
cell.myDateLabel.text = my_data.myDate;
cell.myQuestionLabel.text = my.question;
[cell.myChoiceSegments setSelectedSegmentIndex:my.choice];
[cell autorelease];
return cell
}
还可以使用autorelease
进行内存管理。
答案 1 :(得分:2)
您在哪里定义细胞的布局?在NIB?在你的故事板?以编程方式initWithStyle
CustomGameCell
?实现细节根据您使用的方法略有不同,但您肯定需要在故事板中定义NIB或原型单元格,或者以编程方式创建控件,设置框架,执行addSubview
以便它们包含在细胞等
您的代码正在添加新的UILabel
个对象,而不是将它们作为子视图添加到任何内容中,无论您是否正在使用已出列的单元格,都要执行此操作等。因此,此处存在许多问题。要查看如何正确使用自定义单元格的示例,请参阅表视图编程指南中的Customizing Cells。但是,正如我所说,详细信息会因您的具体情况而有所不同设计您的子类UITableViewCell
布局,所以在您指定设计用户界面的方式之前,我不愿提出任何代码。