繁体   English   中英

ios7中UItableview中的UIwebview滚动问题

[英]UIwebview in UItableview scrolling issue in ios7

我正在应用拉动以刷新tableview中的代码。 我有带有UIwebview的自定义单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"CustomCell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if(cell==nil){
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
    NSLog(@"%@",cell.subviews);
}
// Configure the cell...

NSURL *url = [NSURL URLWithString:@"http://www.google.com.au"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

[cell.webView loadRequest:request];
return cell;

}

鉴于didLoad

- (void)viewDidLoad
{
[super viewDidLoad];
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:self.refreshControl];

}

- (void)refresh:(id)sender
{
// do somthing
NSLog (@"Refresh");
[self performSelector:@selector(stopRefresh) withObject:nil afterDelay:2.5];


}

- (void)stopRefresh {
    NSLog (@"Stop Refresh");

    [self.refreshControl endRefreshing];
}

它在iOS 6中表现正常,我可以刷新一下,但是在iOS 7中,只有Web视图在滚动而不是TableView。

请帮帮我。

尝试这个

   - (void)refresh:(id)sender
    {
    NSLog (@"Refresh");
    [self performSelectorInBackground:@selector(stopRefresh) withObject:Nil];

    }

希望这可以帮助

在iOS7及更高版本中,由于层次结构更改和框架更改,事件未从UIWebView滚动端传递到UITableView反弹。

以编程方式检测滚动视图是来自UITableView还是UIWebView(如果滚动视图是appWebView)

if([[scrollView superview] isEqual:appWebView]){
    if (scrollView.contentOffset.y<0) {
        CGPoint currentContentOffset = CGPointMake(0, scrollView.contentOffset.y);
        [appTableView setContentOffset:currentContentOffset animated:NO];
    }

}

根据您对scrollView委托的要求,尝试使用此部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM