画像をラップするために、2 つの UILabels の間で長いテキストを分離しようとしています。このプロジェクトで以前の開発者が残したいくつかのコードを再利用して適応させました...
文字列 (連番単語、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」が間違って配置されていることに注意してください。この単語も、2 番目のラベルの途中で欠落しています。この問題以外は、問題なく動作するようです。
ここで何が起こっているかについてのアイデアはありますか?
これに対する代替ソリューションはありますか? UIWebView を使用したくないことに注意してください (主に画面上のレンダリングの遅延のため)。