gpt4 book ai didi

objective-c - 在两个 UILabel 之间拆分一串文本以环绕图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:20 25 4
gpt4 key购买 nike

我正在尝试在两个 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];

}

它或多或少像我预期的那样工作,除了它在发生切换的地方变得困惑。

enter image description here

请注意标签 1“One”中的最后一个单词放错了位置。第二个标签的中途也缺少这个词。除了这个问题,其他方面似乎都可以正常工作。

对这里发生的事情有什么想法吗?

是否有任何替代解决方案?请注意,我宁愿不使用 UIWebView(主要是因为屏幕渲染延迟)。

最佳答案

好的,这是你的问题。

您正在检查字符串中的每个单词是否适合第一个标签,然后检查是否不适合。它进入第二个。直到“十二”,它都适合第一个标签。但是你希望其余的字符串落入第二个标签,对吧?

好吧,在你的检查中,即使在你拆分到第二个标签之后,你也会继续检查每个单词是否也适合第一个标签。 “一个”是仍然适合第一个标签的第一个词,因此将其放在那里,然后继续将其他词放在第二个标签中。

要解决这个“奇怪”的拆分问题,您可以让自己成为一个 bool 值,当您将拆分到第二个标签时变为"is"(或者您喜欢的 true)并确保检查该 bool 值是否是打开并检查尺寸。

我希望这一切现在对你来说都有意义。

祝你好运。

关于objective-c - 在两个 UILabel 之间拆分一串文本以环绕图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12069868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com