当前位置:首页 > 操作系统 > Ios

ios基础知识--05

1. UIView tag 属性

/*

    1. 所有直接或者间接继承 UIVIew 的控件都有一个 tag 属性

    2. 这个属性 , 只能用来保存一个数字 , 对控件的外观没有任何影响

    3. 但是我们可以通过这个属性的值 , 来判断是哪个控件

 */

2. transform 属性

/*

1. 可以使用动画 , 叫做变换

2. CGAffineTransformIdentity 如果赋值,那么之前通过 transform 属性进行的修改都会复原:_imageButton.transform= CGAffineTransformIdentity

3. 可以用来修改控件的位置 , 控件的大小 , 还有控件的旋转:

下面这几个方法 , 都是 直接创建一个 固定值的 tranform

CGAffineTransformMake(<#CGFloat a#>, <#CGFloat b#>,<#CGFloat c#>, <#CGFloat d#>, <#CGFloat tx#>, <#CGFloatty#>) 参数最多 , 的可定制型最强 , 用的不多;

 CGAffineTransformMakeRotation(<#CGFloatangle#>) 直接修改旋转角度;

 CGAffineTransformMakeScale(<#CGFloatsx#>, <#CGFloat sy#>) 直接修改缩放;

 CGAffineTransformMakeTranslation(<#CGFloattx#>, <#CGFloat ty#>) 修改位置;

如果想要每次都累加一点 , 那么需要使用另外一组方法:

CGAffineTransformRotate(self.tankImageView.transform,M_PI_4);

 CGAffineTransformScale(self.tankImageView.transform,

  CGFloat sx, CGFloat sy);

 CGAffineTransformTranslation(self.tankImageView.transform, CGFloat sx, CGFloat sy);

 

M_PI M_PI_2  M_PI_4 分别 对应 π π/2 π/4

 */

3. .label 的设置

/*

    lines 属性设置为 0 可以自动换行

    高度如果不够 , 自动换行也是看不到的

 */

4. UIView 的常见方法

/*

    tag: 标示而已 , 不能改变外观

    removeFromSuperView: 从父控件中删除

    addsubView: 添加子控件

    subViews: 调用 addsubView 这个方法 添加的所有子控件 都在这里面

    viewWithTag: 获取子控件 , 如果 tag 跟自己一样 , 优先获取自己:UILabel *label1 =[self.whiteView viewWithTag:1];

    frame: 决定了控件的位置和尺寸

    transform: 可以改变位置 , 大小 , 旋转 需要注意的是 有两套方法 , 一套是直接创建固定值 , 一套是在某一个基础上偏移

*/

5. .UIImageView

/*

    1. 可以用来展示单张图片

    2. 也可以用来播放动画

    3. 播放动画的方法

     - (void)startAnimating;

     - (void)stopAnimating;

     - (BOOL)isAnimating;

    4. 用来存放动画图片的属性

    @property(nonatomic,copy) NSArray*animationImages;// 要播放图片(存放到数组里再赋值)

    5.

@property(nonatomic) NSTimeInterval animationDuration // 持续时间

@property(nonatomic) NSInteger animationRepeatCount // 播放次数

 */

.IOS 开发中内存的处理细节

/*

    1. 开发 IOS 项目 , 如果 APP 占用内存过大 ,IOS 系统会发送一个警告给应用程序

    2. 程序员可以在警告中 , 释放内存

    3. 如果发送了警告以后 ,APP 的内存占用没有任何的改变 , 那么会 --- 闪退

 */

 

 

 

6. . 什么是 Bundle

/*

    1. 应用程序 .app  就是 bundle

    2.ios 程序 . 打包好以后 . 其实也是 xxx.app

    3. 查看方法 , 可以 NSLog(NSHomeDirectory()); 打印的路径 , 往前移动两个文件夹 ,bundle 中找到对应的 .app

    5.bundle 有我们项目里面的文件

 */

. 图片放置位置的区别

/*

    1. 直接放在项目中 , bundle 里面 可以看得到图片

    2. 放在 images.xcassets (xcassets.xcassets) 打包以后 , 会到 Assets.car , 无法还原出来 ( 目前为止 ) 更加安全

 */

// .NSBundle

/* 

    1. 这个类 , 对应到了 当前项目 打包以后的 xxx.app

    2.mainBundle 这个类方法 可以获取当前应用程序的 xx.app

    3.bundle 中的所有文件的全路径 , 我们都可以通过 pathForResource 来获取

    4. 可以直接把文件的后缀 , 拼接到文件名的后面

    */

// .plist 文件

/*

    1. 可以用来保存字典

    2. 项目中的 plist 文件 保存的位置是 bundle (bundle 去获取他 )

    3. 在开发中 , 可以使用 plist 文件 , 把数组跟代码剥离开来

 */

.UIimage 加载图片的几种方式

/*

    1.UIimage imageName: 图片名   使用这种方式加载的图片 会在内存中常驻

    一般 , 按钮的背景图 , 小箭头 icon 等等 UI 界面上的小元素 使用这种方式

    对于需要释放的图片 使用另外的方式

    2.UIImage imageWithContentsOfFile: 路径名

    使用这种方式加载的图片 , 只有当没有任何一个对象对他进行强引用的时候 , 才会释放

    3. 项目中

        播放第一个动画的时候 ,UIimageView 的图片属性 对加载到内存中的图片强引用了

        播放第二个动画 , 第一组图片被释放了 , 第二组图片被强引用

 */

. 延迟调用方法

/*

  可以延迟具体的时间调用某一个方法

  [self performSelector:@selector(cleanImage)withObject:nil afterDelay:2*50*0.08];

 */

 

 

 

 

7. . main.storyboard

 

/*

   1.main.storyboard 中可以添加多个 ViewController 但是 , 程序启动的时候 , 加载的是 箭头指向的那个

    2. 可以拖拉箭头 , 修改默认的启动的界面 , 也可以通过 is initial ViewController 属性来设置

    3. storyboard 中的控制器 , 如果想要跟代码建立联系 , 需要设置 customClass

    4. 在项目的设置界面 , 可以指定 , 使用哪一个 .storyboard 作用默认的启动界面 , 当项目启动的时候 , 就回去这个 .storyboard 中找箭头指向的控制器 , 如果找不到 , 报错 , 黑色

    5. 如果添加了多个 storyboard, 默认会找到 , 项目设置中设置的那个 storyboard

    6. 删除项目文件的时候 ,

        中间的选项 , 是删除引用 , 文件还在 ,

        第三个选项是 , 直接删除到回收站

 */

.storyboard 的本质

/*

    1.storyboard 的本质是一个文本文件 , 有一定格式的文本文件

    2. 这种格式叫做 xml 使用 标签的形式标示一些信息

    3.storyboard 中托拉拽的本质 , 其实是修改 storyboard 文本中的内容

        每一个使用拖拉方式添加的控件信息 , 全部保存在了文本中 (xml) 标签的形式

    4. 添加多个控件 , 只是增加文本的值而已

 */

. 程序的启动原理 _ 简单版本

/*

    1.main.m 中的 main 函数

    2.UIApplicationMain(argc, argv, nil,NSStringFromClass([AppDelegate class]));

    3. 找到设置好的 xxx.storyboard

    4. 创建箭头所指的控制器

    5. 读取 storyboard 中的所有文本值 , 创建对应的控件 , 添加到 控制器的 View

    6. storyboard 读取完毕以后 , 调用 viewDidLoad 方法   

    7. 呈献给用户

 */

 

 

8. 只要打开自动布局,就会有这两个属性(在 view Controller 中: Top LayoutGuide;Bottom Layout Guide ; 当我们发现没法修改控件的大小以后,就要关掉自动布局:(在属性面板里: use auto layout;use size classes

原文:http://blog.csdn.net/hx_lei/article/details/51344897


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!