最近在工作中遇到一个问题,现象是WKWebView加载完页面后,显示不全,而且只显示在左边,看了一下x,y的值都是负的。同样的WKWebView,在新建的Demo中显示正常。这就让我很恼火啊!边调边网上找解决方案啊!看到网上有部分人,因为这种原因没有找到解决方案,不得不换回UIWebView。如果你们看到这篇文章了,还是回到WKWebView的怀抱吧!特此记录一下,分享给需要的人!废话不多说,直接看答案吧!

献上解决方案:

  • WKWebView显示不全现象示例图(已加载某度为例):

  • 八哥原因:自定义的UIView Category中重写了center,造成了冲突。

  • 解决方案:自定义的UIView Category中的center加上前缀。

举例说明(NO BB,Show CODE):

修改前代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

@interface UIView (Rect)
@property (nonatomic,assign) CGPoint center;
@end

@implementation UIView (Rect)
- (CGPoint)center {
//代码省略
}

- (void)setCenter:(CGPoint)yCenter {
//代码省略
}
@end

修改后代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
@interface UIView (Rect)
@property (nonatomic,assign) CGPoint y_center;
@end

@implementation UIView (Rect)
- (CGPoint)y_center {
//代码省略
}

- (void)setY_center:(CGPoint)yCenter {
//代码省略
}
@end

总结:写Category需谨慎,记得加上前缀!

参考资料地址:

此文仅供学习交流,转载请注明出处!