tableview中的webview未在iOS 7中显示

时间:2013-11-15 09:55:41

标签: ios uitableview uiwebview

在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;

}

谢谢

3 个答案:

答案 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.