zoukankan      html  css  js  c++  java
  • UIImageView

    资源管理

    1-图片放到supporting Files注意事项

    注意: 如果放到images.xcassets中,默认就是拷贝源文件过来

       不勾选copy,项目文件夹中是没有的,仅仅是引用,建议勾选。

    2-Add to targets

    要不要把图片打包到软件安装包中去

    3-Added folder

    如果勾选Create groups,会创建一个虚拟的文件夹

    如果勾选Create folder references,真的创建一个文件夹(文件夹颜色不一样),在安装包中会有这个文件夹。

    属性:

    contentMode属性

    UIViewContentModeScaleToFill
    -将图片拉伸填充整个imageView
    -图片显示的尺寸跟imageView的尺寸是一样的

    UIViewContentModeScaleAspectFit
    - 保证刚好能看到图片的全部
    - 拉伸至图片的宽度或者高度跟imageView一样

    简单来说:UIViewContentModeScaleToFill属性会让图片显示整个ImageView,可以修改宽高比。

         UIViewContentModeScaleAspectFit属性会锁定纵横比,让图片显示整个区域。

    其他的属性中带有scale的,图片不会拉伸,保持原先的宽高。

    clipsToBounds属性:

    // 裁剪超出imageView边框的部分

    imageView.clipsToBounds = YES;

    添加图片时:

    initWithImage默认尺寸就是图片的尺寸,位置默认从(0,0)开始

    init默认的尺寸是(0,0),所以必须要设置图片的尺寸才能够显示图片

    添加尺寸注意点:

    错误代码:imageView.frame.size.width = imageView.image.size.width

    在OC语法中,不能直接修改结构体属性中的成员

    修改方法(同样适用于bounds/center):

    CGRect tempFrame = imageView.frame; // frame是一个新定义的变量

    tempFrame = imageView.image.size;

    imageView.frame = tempFrame; // 如果少了这一句(不是对象,是结构体)

    加载无缓存的图片:

    优点:如果资源是经常用的,干脆放在内存中,不需要耗时的读写操作
    缺点:缓存是会越积越多的,占用内存越来越大

    在images.xcassets中:

    放在images.xcassets中的图片,只能通过文件名访问,没有全路径
    大批量的图片不要放在images.xcassets中,默认就带有缓存

    - 有缓存
    UIImage *image =[UIImage imageNamed:@"图片名"];
    使用场合:图片比较小、使用频率比较高
    建议:把需要缓存的图片放到Images.xcassets

    - 没有缓存
    NSString *file = [[NSBundle mainBundle] pathForResource:@"图片名" ofType:@"图片扩展名"];
    UIImage *image = [UIImage imageWithContentOfFile:file];
    使用场合:图片比较大,使用频率比较低,类似于懒加载
    建议:不需要缓存的图片不能放在Images.xcassets中

  • 相关阅读:
    HashMap(HashSet)的实现
    C/C++ 安全编码 —— 指针与内存
    AlexNet神经网络结构
    查看,修改动态组成员/通讯组
    刷新已禁用用户邮箱状态
    监控DAG状态
    AD诊断命令
    PowerShell管理Exchange
    TCP连接(Time_Wait、Close_Wait)说明
    IIS配置(安装IIS、.Net、更改IIS Log目录位置)
  • 原文地址:https://www.cnblogs.com/wwjwb/p/12649699.html
Copyright © 2011-2022 走看看