美文网首页iOS开发
WKWebView的位置问题

WKWebView的位置问题

作者: Mrfengzi | 来源:发表于2019-11-20 16:03 被阅读0次

最近项目把UIWebView替换成WKWebView,其他的都还挺顺利基本上资料还都挺全的,不过发现一个问题:当实现webView的ScrollowView的

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView
    代理的时候,发现网页滑动的时候屏幕之外的地方都是白屏闪现,感觉渲染出现问题,就去网上查了好久,发现这个问题的资料好少。最后看到一篇文章分析的挺好
    https://www.jianshu.com/p/1d739e2e7ed2
    感觉问题相似就想直接使用他的这个方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
    if ([[self respondsToSelector:@selector(_updateVisibleContentRects)]) {
        ((void(*)(id,SEL,BOOL))objc_msgSend)([self,@selector(_updateVisibleContentRects),NO);
    }
#pragma clang diagnostic pop
..........
}

但是还是怕使用私有API被拒。
也想到直接使用

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    [self setNeedsLayout];
    ..........
}

但是发现使用之后webView的上拉下拉效果失效,也怕影响性能
最后还是多改几行代码使用KVO监控scrollView(明明打印的self.scrollView.bounces一直是YES,有时间研究下webView的弹簧效果为啥失效)

NSString *const TPKeyPathContentOffset = @"contentOffset";

NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld;
 [self.scrollView addObserver:self forKeyPath:TPKeyPathContentOffset options:options context:nil];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if ([keyPath isEqualToString:TPKeyPathContentOffset]) {
            }
    }
}

-(void)dealloc
{
    [self.scrollView removeObserver:self forKeyPath:TPKeyPathContentOffset];
}

由于我粘贴的代码是项目中WKWebView的封装,本文中self都是指WKWebView

相关文章

  • WKWebView的位置问题

    最近项目把UIWebView替换成WKWebView,其他的都还挺顺利基本上资料还都挺全的,不过发现一个问题:当实...

  • WKWebView获取和设置UA

    如果你喜欢WKWebView,肯定会遇到需要修改WKWebView的UA的问题,其实WKWebView的UA获取和...

  • [iOS] WKWebView crash ?

    类似WKWebView崩溃 WKWebView 那些坑 - 知乎专栏暂时未查到问题的出处

  • iOS 加载本地HTML适配的问题(完美解决)

    WKWebview加载富文本(本地HMTL)可能会出现一些布局问题,图片大小不对、位置不对、字体大小不对等等,这主...

  • WKWebview 问题

    1,前几天做微信提现的时候,出现了个别手机点击网页,无法调用代理方法,截获不了网址的问题,其他手机全部可以,就个别...

  • wkwebview问题

    下一个页面的wkWebview拿不到上一个页面的cookie 1.可以使用 每次请求 重新把cookie设置进去 ...

  • Returned WKWebView was not creat

    问题 调用WKWebView的时候,有些页面会打开新的一页,导致WKWebView出现闪退日志: 解决问题 在原来...

  • ionic2-UIWebView(bug)

    在ionic3 iOS 中默认为 WKWebView,但是 WKWebView存在跨域的问题,但是UIWebVie...

  • WKWebView获取网页图片并原生放大

    1、WKWebView添加UITapGestureRecognizer2、根据手势点击位置坐标获取网页图片资源3、...

  • 解决WKWebView加载html显示文字缩小的问题

    解决WKWebView的加载html缩小的问题 主要原因:WKWebView没有像UIWebView那么自适应设备...

网友评论

    本文标题:WKWebView的位置问题

    本文链接:https://www.haomeiwen.com/subject/fzvoictx.html