标签:
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