RunTime交换两个方法,可以根据特定条件来改变.

本文介绍了一种使用Runtime消息机制实现iOS不同系统版本图片适配的方法,通过给UIImage做分类并自定义方法,实现了根据系统版本展示不同图片,并在加载过程中判断图片是否加载成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.机制:这里用的是RunTime的消息机制

二.需求:需求是对iOS8 - 和 iOS8 + 的图片进行适配,根据不同的系统版本展示不同的图片,并且在加载图片的时候做个图片是否加载成功的判断.

三.实现:

   1.分析:如果要实现对图片的操作,那么就需要给UIImage做一个分类

   2.通过调用#import <objc/message.h> 获取到两个方法,然后交换两个方法的地址,实际上就是交换两个反法国的实现方式.

   3.在分类文件中实现自定义的方法,供外部调用.

   4.添加两个图,一个名字为old,一个名字为old_iOS8+,最好两张图不一样,这样能够很多的区分效果

四.代码:创建一个名字为MyImage的分类文件,自定义一个方法名.

MyImage.h:

   

MyImage.m:

这里load 方法是UIImage 的系统方法,这里通过获取地址方法,然后交换地址,这样外部调用自己定义方法时,其实调用的是自己定义的imageWithName方法.

 

掉用:

 

转载于:https://www.cnblogs.com/zhouyantongiOSDev/p/5258598.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值