在iOS 7中,tableview中的webview没有显示在iOS 5中正常工作的位置。在iOS 7中,创建了一个示例应用程序,其中包含tableview中的webview。它工作正常。搜索了很长时间后,我发现可能是由于手势识别器,桌面视图中的Webview没有显示出来。我在示例应用程序中测试了这个场景。但它运作正常。所以手势识别器没问题。
知道为什么桌面视图中的webview没有在iOS 7中显示?
这是要检查的代码:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [app.resultsDic count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [NSString stringWithFormat:@"%d",section];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 150;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UIWebView *webView ;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}
NSUInteger row = [indexPath section];
if ( [app.resultsDic count]>0 )
{
NSArray *cellSubviews = [cell subviews];
for (UIView *currSubView in cellSubviews) {
[currSubView removeFromSuperview];
}
webView = [[UIWebView alloc] initWithFrame:CGRectMake(15, 8, 280, 140)];
webView.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.jpg"]];
[cell addSubview:webView];
//Retrieving Data into Dictionary and formatting the data using htmlString
NSDictionary *resDict = [app.resultsDic valueForKey:[NSString stringWithFormat:@"%d",row]];
NSMutableString *htmlString = [[NSMutableString alloc] init];
NSString *initialString = [NSString stringWithFormat:@"<table>"];
NSString *endString = [NSString stringWithFormat:@"</table>"];
[htmlString appendString:initialString];
for (int e = 0 ; e < [[resDict allKeys] count]; e++) {
NSString *currentKey = [[resDict allKeys] objectAtIndex: e];
[htmlString appendFormat:@"<tr><td ><b>%@</b></td><td>:</td><td><font color=DarkBlue>%@</font></td></tr>", currentKey,[resDict objectForKey:currentKey]];
}
[htmlString appendString:endString];
NSString *cssString=[NSString stringWithFormat:@"table { width:100%; font-size:12px;font-family:Verdana}"];
NSString *htmlString1 = [NSString stringWithFormat:@"<html> <head> <style type=\"text/css\"> %@ </style> </head> <body> %@ </body> </html>", cssString, htmlString];
[webView loadHTMLString:htmlString1 baseURL:nil];
[webView.scrollView setBounces:NO];
}
return cell;
}
谢谢
答案 0 :(得分:0)
这个简单的代码适用于iOS7
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UIWebView *web = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
[web loadHTMLString:@"im a <b>webview</b>" baseURL:nil];
web.userInteractionEnabled = NO;
[cell.contentView addSubview:web];
return cell;
}
答案 1 :(得分:0)
您可以尝试替换以下代码
NSString *htmlString1 = [NSString stringWithFormat:@"<html> <head> <style type=\"text/css\"> %@ </style> </head> <body> %@ </body> </html>", cssString, htmlString];
到
NSString *htmlString1 = [NSString stringWithFormat:@"<html> <head> <style> %@ </style> </head> <body> %@ </body> </html>", cssString, htmlString];
答案 2 :(得分:0)
I resolved this issue in iOS 7.
//In ios 5, I have added this code for removing the subviews in webview.
NSArray *cellSubviews = [cell subviews];
for (UIView *currSubView in cellSubviews)
{
[currSubView removeFromSuperview];
}
//In ios 7 , I have removed the above code. Because we need not to write any code for removing the subviews in webview.