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

CGSize.height 是一个 CGFloat。你从哪里得到“不兼容的结果类型”?

您应该能够CGFloat fittingHeight;在您的界面中声明一个 CGFLoat 变量,然后在您的 -webViewDidFinishLoad 中分配它:

- (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 回答
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 回答
-1

像这样强制将其转换为 CGFloat:

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