Ios UIWebView和UITableView同时滚动

Ios UIWebView和UITableView同时滚动,ios,objective-c,swift,xcode,Ios,Objective C,Swift,Xcode,我的UITableView单元格中有一个UIWebView。但是,当我滚动UIWebView时,UITableView也会滚动。如何确保在用户尝试滚动时只有一个UIWebView滚动?调用webView滚动委托时,可以使用tableView的禁用和启用滚动。 UIWebView内部有一个scrollView,您可以成为它的代表 - (void)setupSwip { UISwipeGestureRecognizer* swipeGesture = [[UISwipeGestureRe

我的
UITableView
单元格中有一个
UIWebView
。但是,当我滚动
UIWebView
时,
UITableView
也会滚动。如何确保在用户尝试滚动时只有一个
UIWebView
滚动?

调用webView滚动委托时,可以使用tableView的禁用和启用滚动。 UIWebView内部有一个scrollView,您可以成为它的代表

- (void)setupSwip
{
    UISwipeGestureRecognizer*   swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwip:)];
    swipeGesture.delegate = self;
    [self.view addGestureRecognizer:swipeGesture];

    self.tableView.scrollEnabled = YES
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    self.tableView.scrollEnabled = NO;
    return YES;
}

- (void)didSwip:(UIGestureRecognizer*)gestureRecognizer
{

}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{   
    self.tableView.scrollEnabled = NO;
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate)
    {
        self.tableView.scrollEnabled = YES;
    }
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    self.tableView.scrollEnabled = YES;
}
这个问题还没有得到回答,所以我现在发布我的答案 晚了

我也有同样的问题,我通过创建自定义委托解决了这个问题。按照以下步骤操作

1.在您的
UITableViewCell

@protocol MyTableCellDelegate <NSObject>

-(void)webViewDidStartedScrolling;
-(void)webViewDidStoppedScrolling;

@end
3.在您的
TableCell.m
文件中

@interface TableCell : UITableViewCell<UIWebViewDelegate,UIScrollViewDelegate>
property(weak,nonatomic) id<MyTableCellDelegate> delegateWebView;
- (void)awakeFromNib {
    [super awakeFromNib];
    self.myWebView.scrollView.delegate=self;
   }

 //ScrollView delegate method 
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
      if(self.delegateWebView && [self.delegateWebView respondsToSelector:@selector(webViewDidStoppedScrolling)]){
         [self.delegateWebView webViewDidStoppedScrolling];
     }
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{

    if(self.delegateWebView && [self.delegateWebView respondsToSelector:@selector(webViewDidStartedScrolling)]){
        [self.delegateWebView webViewDidStartedScrolling];

    }
 }
4.
MyTableCellDelegate
添加到您的
UIViewController.h
表格视图中

   @interface UIViewController ()<UITableViewDelegate,UITableViewDataSource,MyTableCellDelegate>

这对我来说很好,我希望这能帮助其他面临同样问题的人。

没什么,我只是做webview。在单元格的主视图上加载htmlString(htmlString,baseURL:nil)parent.addSubview(webview)。看到这一点后,它会帮到你。我一开始就无法滚动主表视图。
#pragma mark UItableView Delegate

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 YourTableCell *cell=[tableView dequeueReusableCellWithIdentifier:@"YourTableCell" forIndexPath:indexPath];
  cell.delegateDealDetails=self;

}
// Custom Delegate Callback method
-(void)webViewDidStartedScrolling
{
    tblDealDetails.scrollEnabled=NO;
}

-(void)webViewDidStoppedScrolling
{

    tblDealDetails.scrollEnabled=YES;
}