0

太字の部分が含まれているテキストの配列があります。この太字の単語や文がどこにあるかという規則はないので、必要に応じてwebViewを使用して太字のタグ付きのhtml文字列を表示しています。これで、私のwebViewはどこにもスクロールせず、テキストが収まらないことがあります。

だからここに私の質問があります:

webViewに収まるようにテキストをトリミングしたいのですが、トリミングが文の途中に収まらないようにしますが、収まらない場合は文全体をトリミングします。したがって、最終的に、テキストは適切な最終文で終了する必要があります。

4

1 に答える 1

0

私が行ったのは、html文からhtmlタグを取り除き、テキストが占める高さを計算してから、「。」で区切られたテキストの最後の部分を削除することでした。(ドット)必要な高さを超えている場合。

これを行うためのコードは次のとおりです。

NSString * returnedString = [[[NSString alloc] initWithString:htmlText] autorelease];

CGSize a = [[returnedString stripHtml] sizeWithFont:font constrainedToSize:CGSizeMake(sizeToFit.width, 999)];


NSMutableArray *sentences = [[NSMutableArray alloc] initWithArray:[returnedString componentsSeparatedByString:@"."]];

while (a.height > sizeToFit.height) {
    
    _lastTextExceededLimits = NO;
    
    if (sentences.count > 1) {
        // -2 because last sentence is not deletable and contains html tags
        NSString *sentence2 = [sentences objectAtIndex:(sentences.count - 2)];
        
        NSString *stringToReplace = [NSString stringWithFormat:@"%@%@",sentence2, @"."];
        returnedString = [returnedString stringByReplacingOccurrencesOfString:stringToReplace  withString:@""];
        
        [sentences removeLastObject];
    } else
        returnedString = [returnedString stringByReplacingOccurrencesOfString:[sentences lastObject] withString:@""];
    
    a = [[returnedString stripHtml] sizeWithFont:font constrainedToSize:CGSizeMake(sizeToFit.width, CGFLOAT_MAX)];
    
    
}
[sentences release];

return returnedString;
于 2013-01-31T01:35:34.733 に答える