0

iOS 5 のストーリーボードで作成されたプロトタイプ セルを含む動的 UITable を使用しています。このテーブルでは、セルの高さはセルの内容に依存し、heightForRowAtIndexPath でプログラムによって評価されます。私の問題は、表示されている表のセル区切り線が間違った場所に配置されていることです。ここに私のプログラムに関するいくつかの事実があります:

  • セルの内容とハイライトが意図した場所に表示される
  • cellForRowAtIndexPath では、 dequeueReusableCellWithIdentifier を使用して新しいセルを作成します
  • heightForRowAtIndexPath は、すべてのセルに対して正しい値を返します

誰でもこの問題を理解するのを手伝ってもらえますか? 1年前にまったく同じ問題について議論しているかなり古いスレッドを見つけましたが、説明/解決策は提案されていませんでした (セルの再利用によってUITableViewセパレーターが正しく描画されないことを参照してください? )

よろしくお願いいたします。

ありがとう、

アニス

4

1 に答える 1

0

私の投稿に返信していただきありがとうございます。以前に動的なセルの高さのテーブルが適切に機能していたので、この動作は私にとっても奇妙です。リクエストした情報は次のとおりです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *currentCell = nil;

    if([indexPath section] == 0 && [indexPath row]== 0)
    {
        currentCell = [issueDetailTable dequeueReusableCellWithIdentifier:@"DetailFieldCell"];

        NSString *summaryString;

        /* Here I call a method to figure out the value for summaryString */

        /* Here I call a method to figure out the frame for summaryLabel */

        summaryLabel = (UILabel *)[currentCell viewWithTag:1];
        [summaryLabel setFrame:summaryRect];
        [summaryLabel setText:summaryString];
    }
    return currentCell;
}

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

    if([indexPath section] == 0 && [indexPath row]== 0)
    {
        NSString *summaryString;

        /* Here I call the same method to figure out the value for summaryString */

        /* Here I call the same method to figure out the frame for summaryLabel */

        /* height = height of the summary label */
    }

    return height;
}

ストーリーボードに関する限り、テーブルにはプロトタイプ セルを使用します。私のテーブルは、サブビューを自動的にサイズ変更してクリップし、グラフィック コンテキストをクリアします。私のセルは、グラフィック コンテキストをクリアします。

そして、テーブル ビューのスクリーン ショットを投稿するつもりでしたが、どうやら Stackoverflow の評判ポイントが十分ではないようです。:|

これを理解するのを手伝ってくれてありがとう。

よろしく、アニス

于 2013-07-08T14:12:39.520 に答える