iOS 组件化加载 图片、gif、xib等文件

本文介绍了如何在iOS组件化项目中处理并加载Assets.xcassets、xib、gif、json等文件。通过在podspec设置生成bundle文件,并在组件中使用Objective-C和Swift加载不同类型的资源,包括使用NSBundle和FLAnimatedImage库来实现图片和gif的加载。
摘要由CSDN通过智能技术生成

前言

xcode 15.3
ios 10.0

起因,因为公司要使用保利威视的视频使用,我拿来他们的Module来封装做成组件来用,但是他们的xib文件一直是nil,为此困扰了我好久

说明

在组件化中,你的.assets中的图片,文件夹中的图片、gif图片,xib文件,json文件等都需要进行处理,否则加载不了

1、在podspec设置生成bundle文件

在你的组件化文件pod -> .podspec文件中设置
PolyvOpenSourceModule/Assets.xcassets: 设置加载Assets.xcassets中的图片
PolyvOpenSourceModule/**/.xib:设置加载xib文件
PolyvOpenSourceModule/Images/
: 设置加载Module -> Images文件夹中的图片、gif图片、json文件等

  s.resource_bundles = {
    'Polyv_bundles' => ['PolyvOpenSourceModule/Assets.xcassets', 'PolyvOpenSourceModule/**/*.xib', 'PolyvOpenSourceModule/Images/*']
  }

2、在组件中加载文件

2.1、Objective-C

2.1.1 首先生成 NSBundle文件

FADeviceAssets.h 封装

+ (NSBundle *)hj_ResourceBundle;

FADeviceAssets.m 注意,此处的bundle文件名要和 .podspec 文件中设置的一致

static NSBundle *resourceBundle = nil;
static dispatch_once_t onceToken;

+ (NSBundle *)hj_ResourceBundle {
   
   dispatch_once(&onceToken, ^{
   
       NSString *resourceBundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:@"Polyv_bundles" ofType:@"bundle"];
       resourceBundle = [NSBundle bundleWithPath:resourceBundlePath];
   });
   return resourceBundle;
}

2.1.2 加载图片

封装加载方法

@interface UIImage (Category)
+ (instancetype)hj_imageDevice:(NSString *)name;
@end


@implementation UIImage (Category) 
+ (instancetype)hj_imageDevice:(NSString *)name {
   
  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值