2

私は を持ってUITableViewCellUITableViewCellStyleDefaultます。よりも長いテキストを入れようとするとUITableViewCell、切り捨てられます。このテキストに合わせてセルを拡張するにはどうすればよいですか?

4

3 に答える 3

2

私はあなたがやろうとしていることを正確にやろうとはしていませんが、おそらく次のようになります:

ビュー内のテキスト文字列の長さに応じて、ビューのサイズを変更する必要があります。

テーブル ビュー デリゲート (ビュー コントローラー) は実装する必要があります

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    Message *msg = (Message *)[messages objectAtIndex:indexPath.row];
    CGSize size = [[msg text] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:kLabelFontSize]
                         constrainedToSize:CGSizeMake(220.0f, 480.0f)
                             lineBreakMode:UILineBreakModeTailTruncation];
    CGFloat minHeight = 20.0f;
    CGFloat height = size.height > minHeight ? size.height : minHeight;
    return height;
}

これは、各行の高さをビューに伝えます。

同様に、UITableViewCell ラベルのフレームのサイズも変更する必要があります。

于 2010-10-13T03:29:02.877 に答える
1

iPhoneの画面よりもセルの幅を広げることはできません...できることは、1>フォントを小さくする2>テキストを複数行にすることです

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
    }

    CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
    UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];

    textView.text = mytext;
    textView.numberOfLines = 2;
    textView.textColor = [UIColor grayColor];
    textView.font = [UIFont systemFontOfSize:12];
        [cell.contentView addSubview:textView];
    [textView release];
于 2010-03-27T07:06:33.937 に答える
0

すべてのセルの高さと幅が同じである必要があると思います。UITableViewCellsプロパティを使用して高さを変更できtableView's rowHeightます。

たとえば、サブクラス化する場合UITableViewController

self.tableView.rowHeight = 100;

もう 1 つのオプションは、UILabel前に示したようにセル contentView のサブビューとしてカスタムを追加することです。

于 2010-03-27T07:14:40.247 に答える