UIWebView未填充UITableView单元格

时间:2012-04-25 16:35:36

标签: ios uitableview uiwebview height

我在uitableview单元格中有一个webview。问题是网页视图只占用了uitableview单元格的75%

我不确定iOS如何决定网页视图的高度,因为我似乎无法增加所需的空间。我可以将tableview单元格的高度增加到更高或更低,但Web视图不会增加。

我想象的一件事就是以某种方式根据文本的大小来获取Web视图的高度,以便它可以自动缩放tableview单元格的大小。

a)我不确定哪个函数检索它

b)我认为这将采用(void)webViewDidFinishLoad:(UIWebView *)webView方法,但我无法让应用程序进入该功能。我试过调试器,似乎根本就不去那里。 (Web视图对象在其自己的控制器中)

#import "WebViewCell.h"

NSUInteger const WEB_VIEW_ROW_HEIGHT = 75;

@implementation WebViewCell

@synthesize webView;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    // Initialization code
}
return self;
}

  - (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
  [super setSelected:selected animated:animated];

// Configure the view for the selected state
}

 @end

并在实际使用Web视图填充tableview单元格的控制器中:

  WebViewCell *cell = [[ViewManager instance] loadWebViewCell:self.tableView cellID:eventDetailsValueCellID];

        NSString *htmlText = [news valueForKey:propertyName];


        [cell.webView loadHTMLString:htmlText baseURL:nil];


        return cell;

我不确定在此设置中将(void)webViewDidFinishLoad:(UIWebView *)webView方法放在何处。它是在WebViewCell.m中还是在调用WebViewCell.m

的控制器中

另外,根本问题是如何使网页视图缩放到单元格的大小?

1 个答案:

答案 0 :(得分:1)

(void)webViewDidFinishLoad:(UIWebView *)webView需要由 UIWebViewDelegate 实施。

尝试在cellForRowAtIndexPath方法中添加cell.webView.delegate = self,并将委托协议“UIWebViewDelegate”添加到控制器的头文件中。

至少应该让你的(void)webViewDidFinishLoad:(UIWebView *)webView来电,让你在加载网页视图后进行高度计算。

计算可能看起来像:

webView.frame = CGRectMake(0, 0, webView.superview.frame.size.width, webView.superview.frame.size.height);