0

添付ファイルにカスタムセルが表示されています。

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

UIWebViewを使用してツイートテキストを表示しています。いくつかのツイートは短く、Webビューのサイズを変更し、Time sinceを上に移動して、最後にセルのサイズを変更したいと思います。Webビューのサイズを変更する方法は知っていますが、それ以降の時間を移動してセルのサイズを変更する方法がわかりません。

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSFetchedResultsController *fetchedResultsController = nil;

    if (self.tweetsSegmentedControl.selectedSegmentIndex == REPORTERS_SELECTED_INDEX)
    {
        fetchedResultsController = self.reportersFetchedResultsController;

    }
    else if (self.tweetsSegmentedControl.selectedSegmentIndex == PLAYERS_SELECTED_INDEX)
    {
        fetchedResultsController = self.playersFetchedResultsController;
    }

    Tweet *tweet = [fetchedResultsController objectAtIndexPath:indexPath];

    //Calcaulate height of box, instead of return a fixed number 
    return 170;
}
4

1 に答える 1

0

Web ビューのサイズを変更する方法を知っています

しないでください。自動サイズ調整を使用して、セルの高さで UIWebView を引き伸ばします。

時間を移動する方法

しないでください。自動サイズ調整を使用して、経過時間をセルの下部に固定します。

セルのサイズを変更する

使用する-tableView:heightForRowAtIndexPath:


アップデート

以前にこれを行った方法は、プロトタイプ セルのフレキシブル ビュー (Web ビューの場合) の既知のサイズを設定し、プロトタイプ セルの既知のサイズを設定することでした。この場合、Web ビューが kPrototypeViewHeight で、プロトタイプが kPrototypeCellHeight であるとします。

テーブルビューコントローラーで:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIWebView *webView = … // Whatever you need to do to get the web view
    CGFloat webViewHeight = webView.frame.size.height;
    return kPrototypeCellHeight - kPrototypeViewHeight + webViewHeight;
}

注: これは-tableView:cellForRowAtIndexPath:が呼び出される前に行われます。したがって、自分で描く前に自分のサイズを知る必要があります。

注 2: webView のサイズを自分で変更しているため、自動サイズ調整は必要ありません。

注 3: テーブル内の各 Web ビューを再レンダリングして、身長を計算します。私の推測では、スクロールは非常に遅くなります。

それが役立つことを願っています。

于 2012-07-16T17:02:37.193 に答える