IOS基础学习笔记二:Bundle加载文件、XIB使用

本文介绍了如何在iOS应用中加载Bundle中的文件,如通过NSBundle获取images.plist,并展示了从plist加载数据到UIImageView和UILabel的方法。此外,讨论了XIB文件的使用,强调设置File's Owner的重要性。同时,探讨了UIImage的两种加载方式,包括有缓存的`imageNamed:`和无缓存的`initWithContentsOfFile:`,并分析了它们的适用场景。

示例代码来自----黑马视频教程

1.加载文件

   //获取mainBundle

    NSBundle*bundle=[NSBundle mainBundle];

    // 获取images.plist在用户手机上的全路径

    NSString*path=[bundlepathForResource:@"images"ofType:@"plist"];

    //根据全路径

_imageData=[NSArrayarrayWithContentsOfFile:(path)];

    //NSLog(@"%@",_imageData);

  NSDictionary *dict=_imageData[0];

    _imageView.image=[UIImage imageNamed:dict[@"icon"]];


    _imageTitleView.text=dict[@"title”];


    //2.加载rou.xib文件 

    NSBundle * bundle=[NSBundle mainBundle];
    NSArray* objs=[bundle loadNibNamed:@"row" owner:self options:nil];

  需要设置XIB文件的File's Owner




3、UIImage的加载路径:

 1.[UIImage imageNamed:@"文件名"]

   * 有缓存,多次调用返回的是相同对象

   * 使用场合:图片使用频率高

 

 2.[[UIImage alloc] initWithContentsOfFile:@"全路径"];

   * 无缓存,每次调用返回的都是新对象

   * 使用场合:图片是一次性使用,用完这次,下次就不用了

   测试例子:所有图片(放入文件夹,后缀名改为.bundle),打包后放入项目中 为imges.bundle
    // 0.获取images.bundle的全路径,[NSBundle mainBundle]访问的是项目中的资源包
    NSString *path = [[NSBundle mainBundle] pathForResource:@"images" ofType:@"bundle"];
    
    // 1.加载images.bundle这个压缩包
    NSBundle *bundle = [[NSBundle alloc] initWithPath:path];
    //   2.获得某个图片
    NSString *imagePath = [bundle pathForResource:@"0" ofType:@"png"];
    // 3.获得images.bundle中所有png图片的全路径
    NSArray *paths = [bundle pathsForResourcesOfType:@"png" inDirectory:nil];

   //方法二:simageNamed
       self.imageView.image = [UIImage imageNamed:@"images.bundle/1.png"];





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值