单元格文本不会出现在iOS 7 TableView中

时间:2014-08-09 19:31:46

标签: ios uitableview

我尝试了很多东西,而且我完全不知所措。我的文字没有出现在TableView中我单元格的默认文本标签中。奇怪的是,其他一切都有效。我的意思是,我可以读取和解析数据源(XML),我可以创建适当数量的行(5),甚至可以让单元格包含文本数据。我知道这一点,因为当我使用NSLog时它显示了这一点。我甚至通过使用didSelectRowAtIndexPath和NSLog(@"%@",cellText);进行双重检查,并且正确的文本在日志中!因此,单元格文本标签包含我想要的文本,但它仍然没有出现在屏幕上。相反,我只得到5个空白行,每个行都是可选择的,当我选择它们但不在屏幕上时,它将在NSLog中显示正确的文本。

我已经尝试了以下修复:调整backgroundColor和textColor(nope),尝试使用ViewControllers而不是TableViewControllers(nope)在线查找不同的示例代码(nope),删除文件并重新构建它们(nope),甚至只使用此代码创建新项目以隔离代码(nope)。每一次,它仍然是空白的!我不知道该怎么做。

这是我用来抓取和显示tableview中数据的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [app.listArray count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (cell == nil) {
    cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

theList = [app.listArray objectAtIndex:indexPath.row];

cell.textLabel.text = theList.name;

NSLog(@"%@",cell.textLabel.text);
NSLog(@"%@",theList.name);

return cell; 
}

3 个答案:

答案 0 :(得分:1)

我认为这是一个新的普通项目,没有任何其他可能会干扰的项目。您使用NSLog(@“%@”,cell.textLabel.text)检查了文本是否已填充,您验证了背景颜色和前景颜色不同。剩下要检查的是透明度/ Alpha。确保将其设置为1.

如果这是在模拟器上,请尝试在设备上进行测试。如果您无法在设备上进行测试,请尝试使用不同的模拟器设备,以排除它是模拟器故障的可能性。

另外,尝试将标签文本硬编码为@“Abcdef”,以确保罪魁祸首的来源不是您要显示的数据。

答案 1 :(得分:0)

尝试这样的方式。看看我是如何编写cellForRowAtIndexPath方法的。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [listArray count];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (cell == nil) {
    cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}


 [cell.titleLabel setText:[listArray objectAtIndex:indexPath.row]];

NSLog(@"%@",cell.textLabel.text);
NSLog(@"%@",theList.name);

return cell; 
}

答案 2 :(得分:-1)

我遇到了同样的问题,但我的问题的答案是单元格右侧的连接检查器。 Outlet需要设置为ContentView的accessoryView。只需将其拖到单元格即可。不要心疼我也把头发拉了出来。

我正在使用Xcode7 Beta和Swift