4

私は自分の問題のヒントを探し回っています。しかし、私はこれに対する解決策を見つけることができません。

UITableviewCell (FeedCell) のサブクラスを作成しました。1 つの画像と 2 つのラベル。問題は、複数行にする必要があるラベルが複数行で表示されないことです。

私はautolayotを使用しています。

ユーザーのツイッターフィードを表示するアプリです。

私のコード:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";

FeedCell *tweetCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (tweetCell == nil) {
    tweetCell = [[FeedCell alloc]
            initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    [tweetCell.tweetText setNumberOfLines:0];
    [tweetCell.tweetText setLineBreakMode:NSLineBreakByWordWrapping];
    [tweetCell.tweetText setFont:[self fontForCell] ];


}
NSDictionary *tweet = _dataSource[[indexPath row]];

NSString *tweetString = [tweet valueForKey:@"text"];

tweetCell.name.text =[tweet valueForKeyPath:@"user.name"];


[tweetCell.tweetText setText:tweetString];

return tweetCell;

}

heigthforRowAtIndexPath も設定しました。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *tweet = _dataSource[[indexPath row]];
NSString *theText=[tweet valueForKey:@"text"];
UIFont *cellFont = [self fontForCell];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [theText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

return labelSize.height + 20;

}

問題は、ツイートの cell.tweetText が複数行で表示されないことです。別の CellStyle でこれを試したことはありません (カスタムの cellstyle を使用しています)。

何かヒントはありますか?

4

5 に答える 5

2

複数の場合は、次を使用します。

tweetCell.tweetText.numberOfLines = 0;
[tweetCell.tweetText sizeToFit];

テスト目的で、次の方法で行の高さを 46.0f に設定します。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

高さの問題を修正できませんでしたが、これにより、複数の行を持つ UILabel が得られました

于 2013-09-03T20:33:30.197 に答える
2

これは古い投稿であることは知っていますが、検索していたら出てきました。

http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layoutに従って、このような例を取得しました。

iOS8の場合、次が必要だと思います:

  • 行を 0 に設定する
  • ワードラップの設定
  • ラベル サイズを >= 20 に設定する
  • セルの高さ (タイトルの高さと垂直方向の間隔) を決定するのに十分な制約があることを確認します。
于 2015-06-21T23:27:02.693 に答える
1

試す

[tweetCell.tweetText  sizeToFit]
于 2013-09-03T20:23:06.753 に答える
0

行数、改行モード、およびフォントを設定するコードを中括弧の外側に配置してみてください

于 2013-10-16T06:27:49.383 に答える