0

私はこれにとても近いです。基本的に私がやろうとしているのは、UIWebView のセルの高さを返すことです。NSLOG に正しい高さを出力しました。問題は、その高さから変数を作成する必要があることです。これまでのところ運がありません。これが私が今持っているものです。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
_descriptionWebView.frame = CGRectMake(_descriptionWebView.frame.origin.x, _descriptionWebView.frame.origin.y, _descriptionWebView.frame.size.width, 1);
CGSize fittingSize = [_descriptionWebView sizeThatFits:CGSizeZero];
_descriptionWebView.frame = CGRectMake(_descriptionWebView.frame.origin.x, _descriptionWebView.frame.origin.y, _descriptionWebView.frame.size.width, fittingSize.height);

NSLog(@" Fitting Size is : %f", fittingSize.height);
}

UIWebView (UITableViewCell 内) に表示される各記事の最適なサイズを出力します。私の主な問題は、その高さをどのように返すかです-

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.section == SectionHeaderTitle) {

    // Regular
    return 54;

} else {

    return 612;
}
}

NSNumber、NSInteger、CGFloat、CGRect、CGSize を使用して、fittingSize からインスタンス変数を作成しようとしましたが、基本的に「互換性のない結果の型」が得られます。

最終的に私がしたいことは、return fittingSize.height;

そこに着くのに何か助けはありますか?事前にどうもありがとうございました。うまくいけば、私は何も残しませんでした!

4

3 に答える 3

0

CGFloat 型のクラス レベル変数を作成し、

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
      //Get the value of fittingsize.height
    }

その変数にfittingsize.heightの値を保存し、その変数を

    -tableView:heightForRowAtIndexPath:indexpath
    {
      //Use the value stored of the CGFloat variable above
    }
于 2012-11-12T08:40:17.480 に答える
0

CGSize.height は CGFloat です。「互換性のない結果タイプ」はどこにありますか?

インターフェイスでCGFLoat 変数を宣言し、-webViewDidFinishLoadCGFloat fittingHeight;に割り当てることができるはずです。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
_descriptionWebView.frame = CGRectMake(_descriptionWebView.frame.origin.x, _descriptionWebView.frame.origin.y, _descriptionWebView.frame.size.width, 1);
CGSize fittingSize = [_descriptionWebView sizeThatFits:CGSizeZero];
_descriptionWebView.frame = CGRectMake(_descriptionWebView.frame.origin.x, _descriptionWebView.frame.origin.y, _descriptionWebView.frame.size.width, fittingSize.height);

fittingHeight = fittingSize.height;
}

次に、で使用し-tableView:heightForRowAtIndexPath:ます。

于 2012-11-12T01:39:17.597 に答える
-1

次のように CGFloat に強制的にキャストします。

return (CGFloat)(fittingSize.height);
于 2012-11-12T02:24:42.120 に答える