0

RSSフィードに取り組んでおり、入力されるタイトル/説明情報に合わせてTableViewCellのサイズを変更することを検討しています。セルにすべてのテキストを切り取るのではなく、表示させたいのですが...誰か知っていますかこれを行うための良い方法、または良いチュートリアルを知っていますか?

ここに画像の説明を入力してください

ありがとう。

4

3 に答える 3

1

フィードアイテムデータを保持しているセルの高さを計算し、テーブルがtableView:heightForRowAtIndexPath:で要求したときにそれを返す必要があります。

UILabelさらに、テキストを切り捨てないように言う必要があります。これについては、ラベルのテキストのサイズ設定のメソッドを確認してください

于 2012-11-27T14:01:15.337 に答える
0

そのためにカスタムUITableViewCellを作成する必要があります。次に、.xibファイルで正しい自動サイズ設定パラメーターを設定します。次に、セルの.mファイルで、このような方法でlayoutSubviewsメソッドを実装する必要があります。

- (void) layoutSubviews
{
    [super layoutSubviews];
    CGRect newFrame = rssLabel.frame;
    CGSize maximumLabelSize = CGSizeMake(rssLabel.frame.size.width,9999);
    CGSize expectedLabelSize = [rssLabel.text sizeWithFont:tweetLabel.font        constrainedToSize:maximumLabelSize lineBreakMode:rssLabel.lineBreakMode];
    int height = expectedLabelSize.height;
    newFrame.size.height = height;
    rssLabel.frame = newFrame;
}

そして確かに、私はあなたがあなたの列の高さを計算するべきだと言うのを忘れました

于 2012-11-27T14:05:29.060 に答える
0

最善のアプローチは、サブクラス化することUITableViewCellです。このクラスでは、セルの高さを返すクラスメソッドを実装します。tableviewのdelegateメソッドtableView:heightForRowAtIndexPath:でこのメソッドを呼び出し、テキストを渡します。NSString's sizeWithFont constrainedToSize lineBreakMode:メソッドを使用して高さを計算します。ラベルのプロパティnoOfLinesを0に設定します。これで準備完了です。

例えば:-

+(CGFloat)heightForText:(NSString *)value{
     CGSize size = [value sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:CGSizeMake(320, MAXFLOAT)];
     if(size.height<MINIMUM_CELL_HEIGHT){
         return MINIMUM_CELL_HEIGHT;
     }else{
    return size.height;
     }
 }
于 2012-11-27T15:29:59.577 に答える