首页 / IOS / ios基础知识--05
ios基础知识--05
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ios基础知识--05,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4026字,纯文字阅读大概需要6分钟。
内容图文
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
内容总结
以上是互联网集市为您收集整理的ios基础知识--05全部内容,希望文章能够帮你解决ios基础知识--05所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。