0

这是一个奇怪的问题。我的故事板上有一个标签,位于自定义原型单元格中,其标签为 102。正如主题标题所示,我可以通过各种方式设置标签的文本,并按预期显示在设备上。以下是我尝试过的方法:

nameLabel.text = @"My buddy's name";
nameLabel.text = [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"];
[nameLabel setText:[[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];

然而,这些都行不通……

NSString *nameString = [NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];
[nameLabel setText:nameString];

还...

[nameLabel setText:[NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]]];

和...

nameLabel.text = [NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];

我需要让单元格读取:“与某某的游戏”,其中“某某”是对手的名字,显然。关于什么会导致这种情况的任何想法?

编辑:所以这里有更多代码,展示了我如何攻击这个东西:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MatchCell"];
    UILabel *nameLabel = (UILabel *)[cell viewWithTag:102];
    ...
}

if (indexPath.section == 0) {
    nameLabel.text = [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"];
    [nameLabel setText:[[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];
    NSString *nameString = [NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];
    [nameLabel setText:nameString];
    [nameLabel setText:[NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]]];
    nameLabel.text = [NSString stringWithFormat:@"game with %@", [[self.matchArray objectAtIndex:indexPath.row] valueForKey:@"player2Username"]];
}
        return cell;
}

我使用 Parse 作为我的 BaaS。那里似乎真的没有问题,因为我可以在我的 iPhone(在单元格中)上检索、记录和显示玩家的用户名和我想要的任何其他数据,只要我不包含 stringWithFormat:。

我尝试清理项目和构建文件夹,从设备卸载等。重新运行它。仍然没有运气。

4

1 回答 1

0

纽伯的错误。我没有将 UILabel 的大小设置为足够宽以容纳额外的文本。也就是说,我可以显式设置一个字符串(例如 nameLabel.text = @"player name";),并且有足够的空间来容纳玩家的名字,但是每当我尝试在任何用户的名字前面加上“game with”时,它具有使整个字符串太长以至于 UILabel 的小宽度无法容纳的效果。所以,我猜它正在恢复到标签的文本(我在 Interface Builder/Storyboard 中设置),“game with ...”。

简而言之,确保你的 UILabel 足够宽以容纳他们将要处理的文本,孩子们!如果你不这样做,有人最终会患上疾病或怀孕或更糟。我已经看过一千遍了。

于 2013-11-06T23:09:01.667 回答