IOSday02 基础控件

UIImageView

规律:

  • 但凡取值中包含Scale单词的, 都会对图片进行拉伸(缩放)

    • 但凡取值中没有出现Scale单词的, 都不会对图片进行拉伸
  • UIViewContentModeScaleToFill,

    • 会按照UIImageView的宽高比来拉伸图片
    • 直到让整个图片都填充UIImageView为止
    • 因为是按照UIImageView的宽高比来拉伸, 所以图片会变形

规律:

  • 但凡取值中包含Aspect单词的, 都会按照图片的宽高比来拉伸
    - 因为是按照图片的宽高比来拉伸, 所以图片不会变形

  • UIViewContentModeScaleAspectFit,

    • 会按照图片的宽高比来拉伸
    • 要求整张图片都必须在UIImageView的范围内
    • 并且宽度和高度其中一个必须和UIImageView一样
    • 居中显示
  • UIViewContentModeScaleAspectFill,

    • 会按照图片的宽高比来拉伸
    • 要求整张图片必须填充UIImageView
    • 并且图片的宽度或者高度其中一个必须和UIImageView一样

  • 枚举
    • UIViewContentModeCenter,
    • UIViewContentModeTop,
    • UIViewContentModeBottom,
    • UIViewContentModeLeft,
    • UIViewContentModeRight,
    • UIViewContentModeTopLeft,
    • UIViewContentModeTopRight,
    • UIViewContentModeBottomLeft,
    • UIViewContentModeBottomRight,

注意:

  • 注意点

    • 如果是通过[[UIImageView alloc] init];创建的图片, 没有默认的宽高
    • 但是如果是通过[[UIImageView alloc] initWithImage:image];创建的图片, 有默认的宽高
    • 默认的宽高就是图片的宽高
  • 修改控件的frame的注意点:

    • iv.frame = CGRectMake(0, 0, image.size.width, image.size.height);
    • (CGRect){{0, 0}, {image.size.width, image.size.height}};
  • 注意:

    • OC语法规定, 不能直接修改一个"对象"的"结构体属性"的"成员"

    • 如果不能直接修改一个"对象"的"结构体属性"的"成员", 那么如果真的想改怎么办?
    • 先取出 --> 再修改 --> 重新赋值
    • iv.frame.size = image.size;
    • CGRect tempFrame = iv.frame;
    • tempFrame.size = image.size;
    • iv.frame = tempFrame;

拷贝资源的时候选择的copy的含义:

是否要将资源拷贝一份到项目中, 如果不勾选就代表着不拷贝, 那么原来的资源不见了, 项目中的也不能用了

  • 注意:
    - 1. 虽然项目中的图片和外部的图片是同一张图片, 但是这仅仅是在开发阶段, 如果将应用程序安装到手机上, 那 么系统会自动给我们拷贝一张图片到手机中
    - 2.虽然安装的时候会自动拷贝, 但是还是不建议大家不勾选copy

       图片除了可以放到supporting files中, 还可以放到Assets.xcassets文件夹中
      > 如果是放到supporting files中, 使用图片的时候需要加上图片的后缀
      > 如果是放到Assets.xcassets中, 使用图片的时候不需要加上图片的后缀
      > 如果是放到Assets.xcassets中, 那么系统会自动对图片进行copy操作
      > 如果是放到Assets.xcassets中, 可以对图片进行一些额外的属性设置
      > 如果是放到Assets.xcassets中, 可以提高软件的安全性, 它会将图片都加密压缩保存到Assets.car文件中
    

add to target的含义

  • 是否需要将资源打包到main bundle中(03-拷贝资源的选项.app)
    • 如果不勾选就不会打包进去, 也就是说程序安装之后资源不会在手机上
      如何解决这个问题:
    • 如果是资源
    • 如果是代码
模拟器的路径:
  /Users/xiaomage/Library/Developer/CoreSimulator/Devices/
 
 imageNamed: 默认是去mian bundle中加载, 如果是在mian bundle子文件夹中, 需要告诉系统具体的路径

UIImageView动画效果

posted @ 2015-07-29 00:05  daizeng3344  阅读(135)  评论(0编辑  收藏  举报