我的UIWebView
单元格中有一个UITableView
。但是,当我滚动UIWebView
,UITableView
滚动时。当用户尝试滚动它时,如何确保只有一个UIWebView
滚动?
答案 0 :(得分:2)
此问题尚未得到解答,所以我发布了我的回答 迟到了。
我遇到了同样的问题,我解决了创建自定义委托的问题。请按照以下步骤操作。
1。在UITableViewCell
@protocol MyTableCellDelegate <NSObject>
-(void)webViewDidStartedScrolling;
-(void)webViewDidStoppedScrolling;
@end
2。在UIScrollViewDelegate
文件中添加TableCell.h
@interface TableCell : UITableViewCell<UIWebViewDelegate,UIScrollViewDelegate>
property(weak,nonatomic) id<MyTableCellDelegate> delegateWebView;
TableCell.m
文件中的3。
- (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>
5. 在UIViewController.m
文件中实施自定义委托方法的方法,启用或禁用 {{1滚动,当您的tableView
和webviewDidEndScrolling
webviewDidStartedScrolling
这对我来说很好,我希望这会帮助那些面临同样问题的人。
答案 1 :(得分:0)
当调用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;
}