ios - UIWebView 和 UITableView 同时滚动

标签 ios objective-c swift xcode

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

最佳答案

This Question has not been answered yet so i am posting my answer so late .

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

1. 在您的 UITableViewCell

中创建自定义委托(delegate)
@protocol MyTableCellDelegate <NSObject>

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

@end

2. 在您的TableCell.h 文件中添加UIScrollViewDelegate

@interface TableCell : UITableViewCell<UIWebViewDelegate,UIScrollViewDelegate>
property(weak,nonatomic) id<MyTableCellDelegate> delegateWebView;

3. 在您的 TableCell.m 文件中

- (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. 在您的 UIViewController.h 中添加 MyTableCellDelegate,您的 TableView 所在的位置。

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

5. 在您的 UIViewController.m 文件中实现您的自定义委托(delegate)方法,并启用禁用 tableView 滚动,当你的 webviewDidEndScrollingwebviewDidStartedScrolling

#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;
}

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

关于ios - UIWebView 和 UITableView 同时滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719581/

相关文章:

ios - UISlider 默认拇指颜色

ios - 仅支持设备的 SDK

Iphone Objective-c 全局变量不同的值

ios - NSFileManager:删除项目

ios - reloadData() 并在没有 Interface Builder 的情况下设置 IBOutlets

swift - 如何在 Swift 中以编程方式创建 UISplitViewController

ios - 从 nstimeinterval 值中减去 1 小时

ios - AFNetworking 中 UIImageView 的磁盘备份图像缓存

ios - NSLocalizedString为数字

ios - Tableview 未加载/触发