我在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
另外,根本问题是如何使网页视图缩放到单元格的大小?
答案 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);