我正在尝试在两个 UILabel 之间分隔很长的文本以环绕图像。我已经重新使用并改编了该项目的前任开发人员留下的一些代码,如下所示......
字符串(连续数字单词,1 到 20):
NSString *sampleString = @"One two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty. One two three four five six seven eight nine ten. Eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty.";
分割方法...
-(void)seperateTextIntoLabels:(NSString*) text
{
// Create array of words from our string
NSArray *words = [text componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]];
//Data storage for loop
NSMutableString *text1 = [[NSMutableString alloc] init];
NSMutableString *text2 = [[NSMutableString alloc] init];
for(NSString *word in words)
{
CGSize ss1 = [[NSString stringWithFormat:@"%@ %@",text1,word] sizeWithFont:descriptionLabel.font constrainedToSize:CGSizeMake(descriptionLabel.frame.size.width, 9999) lineBreakMode:descriptionLabel.lineBreakMode];
if(ss1.height > descriptionLabel.frame.size.height || ss1.width > descriptionLabel.frame.size.width)
{
if( [text2 length]>0)
{
[text2 appendString: @" "];
}
[text2 appendString: word];
}
else {
if( [text1 length]>0)
{
[text1 appendString: @" "];
}
[text1 appendString:word];
}
}
descriptionLabel.text = text1;
descriptionLabelTwo.text = text2;
[descriptionLabel sizeToFit];
[descriptionLabelTwo sizeToFit];
}
它或多或少地像我预期的那样工作,只是在切换发生的时候它变得混乱。
请注意标签 1 'One' 中的最后一个单词放错了位置。在第二个标签的中途也缺少这个词。除了这个问题之外,它似乎工作正常。
关于这里发生了什么的任何想法?
有没有其他解决方案?请注意,我宁愿不使用 UIWebView(主要是因为屏幕渲染的延迟)。