过滤 UILabel 显示时的网页字符串

@implementation LableTextFilter

// 
+ (void)initialize
{
    // 获取到UILabel中setText对应的method
    Method setText = class_getInstanceMethod([UILabel class], @selector(setText:));
    Method setTextMySelf = class_getInstanceMethod([self class], @selector(setTextHooked:));

    // 将目标函数的原实现绑定到setTextOriginalImplemention方法上
    IMP setTextImp = method_getImplementation(setText);
    class_addMethod([UILabel class], @selector(setTextOriginal:), setTextImp, method_getTypeEncoding(setText));

    // 然后用我们自己的函数的实现,替换目标函数对应的实现
    IMP setTextMySelfImp = method_getImplementation(setTextMySelf);
    class_replaceMethod([UILabel class], @selector(setText:), setTextMySelfImp, method_getTypeEncoding(setText));
}

/*
  * 截获到 UILabel 的setText
  * 我们可以先处理完以后,再继续调用正常处理流程
  */
- (void)setTextHooked:(NSString *)text
{
    //在这里插入过滤算法
    text = [text stringByReplacingOccurrencesOfString:@"<br>" withString:@"\r\n"];
    // do something what ever you want
    NSLog(@"haha, this is my self setText !!!!!!!");

    // invoke original implemention
    [self performSelector:@selector(setTextOriginal:) withObject:text];
}



@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值