WXLayer文件修改以下代码即可:
- (void)display
{
if(@available(iOS 14.0, *)) {
[super display];
}
[self.wx_component _willDisplayLayer:self];
}
image.png
PS:我是暂时直接改的pod文件测试,建议不要这么改,可以写个category交换方法更好吧。
话说我新建了一个category这个报错是为啥呢?怎么解决?
image.pngEmbedded添加WeexSDK库即可。
新建category;
.h文件
//
// WXLayer+Extension.h
// HaiDiLao
//
// Created by 彭思 on 2020/11/23.
// Copyright © 2020 haidilao. All rights reserved.
//
#import "WXLayer.h"
#import "WXDefine.h"
#import "WXComponent.h"
#import "WXComponent_internal.h"
NS_ASSUME_NONNULL_BEGIN
@interface WXLayer (Extension)
@end
NS_ASSUME_NONNULL_END
.m文件:
//
// WXLayer+Extension.m
// HaiDiLao
//
// Created by 彭思 on 2020/11/23.
// Copyright © 2020 haidilao. All rights reserved.
//
#import "WXLayer+Extension.h"
#import <objc/runtime.h>
@implementation WXLayer (Extension)
+(void)load{
/** 获取原始setBackgroundColor方法 */
Method originalM = class_getInstanceMethod([self class], @selector(display));
/** 获取自定义的pb_setBackgroundColor方法 */
Method exchangeM = class_getInstanceMethod([self class], @selector(newDishplay));
/** 交换方法 */
method_exchangeImplementations(originalM, exchangeM);
}
/** 自定义的方法 */
-(void)newDishplay{
if(@available(iOS 14.0, *)) {
[super display];
}
[self.wx_component _willDisplayLayer:self];
}
@end
网友评论