0

データベースからコメントのリストを取得しようとしています。コメントは最大 100 行になる場合もあります。問題は、それを改行できないことです。私は使用しました

comment.adjustFontSizeToFitWidth = NO;
comment.numberOfLines = 0;
comment.lineBreakMode = UILineBreakModeCharacterWrap

現在、テストコメントは次のとおりです。

おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

しかし、それは途中で終わり、「...」もテキストの折り返しもありません。これを修正する方法は?

ところで。このような細胞がたくさんあります。

4

3 に答える 3

0

テーブルビューデリゲートでこのことを行います:

- (CGFloat)tableView:(UITableView *)tableView1 heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        CGSize maximumSize = CGSizeMake(480.0,1000.0); // Put appropriate required height and width.
        NSString *dateString = [NSString stringWithFormat:@"%@",yourString];
        UIFont *dateFont = [UIFont fontWithName:@"Helvetica" size:14];
        CGSize dateStringSize = [dateString sizeWithFont:dateFont 
                                       constrainedToSize:maximumSize 
                                           lineBreakMode:UILineBreakModeWordWrap];
        return dateStringSize.height;
}

このコードは、セルに適切な高さを設定します。次に、cellForRowAtIndexPath関数で。このコードを保持します:

comment.adjustFontSizeToFitWidth = NO;
comment.numberOfLines = 0;
comment.lineBreakMode = UILineBreakModeCharacterWrap
于 2013-03-12T11:51:01.487 に答える
0
#define FONT_SIZE 11.0f
#define CELL_CONTENT_WIDTH 157.0f
#define CELL_CONTENT_MARGIN 10.0f

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
        NSString *text = YorCommentString;// or any String that u want.
        CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
        CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
        CGFloat height = MAX(size.height, 44.0f); // set as u want 
        return height + (CELL_CONTENT_MARGIN * 2); // set as u want

}

上記のコードではnumberOfLines、 forを設定する必要はありませんUILabel

于 2013-03-12T11:37:09.080 に答える
0

詳細については、 http: //developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.htmltableView:heightForRowAtIndexPath: を参照してください。

そのメソッド内で、ラベルがテキストを表示するために必要な高さに基づいて、各セルが必要とする高さを計算する必要があります。NSString の UIExtensions には、まさにその計算のためのヘルパー メソッドがあります。http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html

使用方法の例がいっぱいです – sizeWithFont:constrainedToSize:lineBreakMode:.

sizeWithFont:...次に、テキストのサイズの計算に再度使用する必要がある cellForRowAtIndexPath でセル項目をレイアウトできます。または、きちんとした解決策が必要な場合は、サブクラスUITableViewCell化してそのメソッドを上書きしlayoutSubviews、そこでレイアウトを行います。

于 2013-03-12T11:56:45.167 に答える