我尝试了很多东西,而且我完全不知所措。我的文字没有出现在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;
}
答案 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