我仍然是Xcode的新手,所以请耐心等待我。无论如何,我在尝试在UILabel中显示数组的全部内容时遇到了一些麻烦。我只需使用代码
即可显示它wordList.text = [NSString stringWithFormat:@"List of Words:\n %@", listA];
然而,在运行时,标签最终会显示括号和单词上的单词,以及单词周围的引号,以及每个单词之间的行中的结束引号和逗号。例如:
List of Words:
(
"apple
",
"banana
",
"etc.
虽然我希望单词以自己的行显示,但我不希望括号和右引号和逗号显示在单独的行中。我也希望一起删除括号,引号和逗号,但如果我不能,我不会介意太多。
有人可以解释为什么会这样显示,并帮助我在UILabel中自己正确显示数组中的每个单词吗?
答案 0 :(得分:6)
使用此:
NSArray *listOfWords = @[@"One", @"Two", @"Three"];
NSString * stringToDisplay = [listOfWords componentsJoinedByString:@"\n"];
wordList.text = stringToDisplay;
将显示:
One
Two
Three
答案 1 :(得分:0)
正在添加括号,引号和逗号,因为提供数组作为格式说明符%@
的参数会导致-(NSString *)description
方法被发送到数组。 NSArray
覆盖NSObject
description
的实现,并返回一个表示数组内容的字符串,格式为属性列表。 (而不是只返回带有数组内存地址的字符串。)因此,额外的字符。
答案 2 :(得分:-1)
您可以使用此代码
NSArray *listOfWords = [NSArray arrayWithObjects:
@"one.",
@"two.",
nil];
for (NSString *stringToDisplay in matters)
{
//frame, setting
labelFrame.origin.x = 20.0f;
UILabel *stringToDisplayLabel = [[UILabel alloc] initWithFrame:labelFrame];
stringToDisplayLabel.backgroundColor = [UIColor clearColor];
stringToDisplayLabel.font = [UIFont boldSystemFontOfSize:12.0f];
stringToDisplayLabel.lineBreakMode = NSLineBreakByWordWrapping;
stringToDisplayLabel.numberOfLines = 0;
stringToDisplayLabel.textColor = [UIColor whiteColor];
stringToDisplayLabel.textAlignment = NSTextAlignmentLeft;
//set up text
stringToDisplayLabel.text = stringToDisplay;
//edit frame
[stringToDisplayLabel sizeToFit];
labelFrame.origin.y += stringToDisplayLabel.frame.size.height + 10.0f;
[self.view addSubview:stringToDisplayLabel];
[matterLabel release];
}