--------------------------------------04.01-------------------------------------
window的本质是一个对象。
class Prefix 类的前缀
ARC中用strong修饰内存管理
(代码规范):dealloc放在方法的最上面,一个对象在释放掉以后指针指向nil
alpha 透明度
视图以所加载的窗口/视图的原点为原点
Frame 决定了视图的大小与位置
Frame 的origin和size是相对于父视图来说的
CGRectMace()方法可以快速地创建一个CGRect结构体
*Frame是CGRect类型的结构体变量
window的本质是一个视图,UIWindow类继承于UIView类
bounds的原点是设置本视图坐标系的原点(对子视图有影响)
bounds的宽和高是在中心点不变的情况下进行拉伸或缩小,此时本视图的坐标系也会发生变化。(对子视图有影响)
修改bounds只有本视图的中心点不发生变化,本视图的坐标系会发生变化(对子视图有影响)
Index与视图添加到父视图上的顺序有关(第一个添加到window上的视图下标为0)
makeKeyAndVisible 设置主窗口
父视图对子视图是一对多的关系
多次添加取最后添加的结果
hidden属性默认为NO,YES时为隐藏
数组在打印时以小括号开头
一个程序一般只创建一个window
---------------------------------04.02-------------------------------------------------
UILabel是一个静态文本框。
setNumberOfLines的参数0代表任意行,根据文本的数量来划分行数
UITextField 输入框
输入控制
secureTextEntry 是否文字以圆点格式显示(密码模式)
UIButton
UIButton分三部分,底部为view,左半边为图片(imageView),右半边为文字(titleLabel)
UIButton current开头的属性是获取属性,可以通过这些属性直接获取按钮的信息
resignFirstResponder重定义第一响应对象
button修改button上的字体要加上.titleLabel
协议是系统写好方法名供用户重写的方法
----------------------------04.03----------------------------------------------------
CPU
5S armv64
5,5c armv7s
4s armv7
4 armv6
3GS armv5
Images.xcassets设置应用程序的图标和开场动画
pt为物理尺寸单位
--------------------------------------04.07--------------------------------------
UIButton和UITextField继承于UIControl
UIControl与UILabel继承于UIView
UIButton分为三部分,底层的View以及上层左边的image和上层右边的titleLabel
修改UIButton上的文本内容要用UIButton.titleLabel 去调用相应方法.(titleLabel为UILabel类型)
高质量代码的特点:可复用,可移植,精炼.
自定义视图:
将多个控件类型封装到一个自定义的类中
类中出现的self代表通过该类创建的对象
MVC设计模式
MVC是一个框架级设计模式
M是Model,主要用于建立数据模式(即数据结构,与结构体相像)
V是View,主要用来显示数据
C是控制器,负责M与V之间的通信
在IOS开发中,M和V没有任何联系
视图控制器:(ViewController)
所有视图控制器的基类(父类)是UIViewController
视图控制器本身是一个容器,不能显示任何内容.(本质是一个类)
视图控制器的view相当于容器的底部,所有东西必须放置在view上
view的默认颜色为透明色
viewDidLoad方法中的view指的作为底部的view
该方法中可以创建任意控件放置在view(写法为self.view)上
(类没有任何意义,生成对象才有意义.)
窗口与视图控制器关联用setRootViewController方法(设置根视图控制器)
示例:[_window setRootViewController:main];(main为一个视图控制器类型的对象)
视图控制器的执行顺序:
初始化方法
loadView方法(view被调用时执行)
viewDidLoad方法(loadView执行后执行)
三个方法各只执行一次
*(loadView与viewDidLoad成对出现)
视图的出现方法和消失方法:
- (void)viewWillAppear:(BOOL)animated;
- (void)viewDidAppear:(BOOL)animated;
- (void)viewWillDisappear:(BOOL)animated;
- (void)viewDidDisappear:(BOOL)animated;
空方法,若需要可重写.成对出现.可重复执行.
在.h中引用头文件用@class 类名;
instancetype与id相像
----------------------------------04.08-------------------------------------------
UIView继承于UIResponder
事件(UIEvent)
事件是由硬件捕捉的一个表示用户操作设备的对象.分为触摸,晃动以及远程控制三类
在触摸事件中会包含一个到多个UITouch(实现多点触控)
UIView支持触摸事件,并且支持多点触控(一个UITouch代表一根手指在触摸)
要实现触摸事件首先要自定义一个类(继承于UIView),然后重写Touch相关的方法
当触摸序列被诸如电话呼入这样的系统事件所取消时,发送touchesCancelled:withEvent:消息。 非人为取消触摸
第一个参数touches是一个集合
drawRect中的参数rect是touchView的坐标与尺寸
UIGraphicsGetCurrentContext();
获得当前所要绘制内容的上下文(即绘图前的草稿)
NSValue 将非对象类型的变量转换为对象类型
setNeedsDisplay 调用drawRect方法
setObjectForKey给字典添加一个元素
-----------------------------04.09---------------------------------------------
数组或字典等取出的元素是id类型,操作最好要转换类型
-----------------------------04.10---------------------------------------------
空指针调用任何方法不会有任何反应
按钮响应事件是在鼠标松开的时候
targetAction
[target performSelector: action withObject: (id)]
target是调用方法的对象(即addTarget方法中的第一个参数),action是(addTarget方法中的第二个参数)
属于自己类的方法只能由自己调用
响应者
相应者对象是可以响应事件并对其进行处理的对象
UIResponder是所有UI开头的类的基类
第一响应者是应用程序中当前负责接收触摸事件的响应者对象(即点谁谁就是第一响应者)
userInteractionEnabled 用户交互属性(默认为YES)若设为NO,则不传递响应事件
当控件的透明度为0或控件被隐藏时,不传递响应事件
UIImageView 相框
可以存放一个或多个图片
不设置尺寸时,展示的是图片的像素大小
图片默认的用户交互是NO
animationDuration动画时长
手势
UIGestureRecognizer是IOS中的手势类,它有多个子类,代表具体手势
-----------------------------04.11---------------------------------------------
协议的定义以@protocol开头,以@end结束
协议的方法分为必须实现和非必须实现两种
@required表示必须实现(默认为必须实现)
@optional表示可选择实现(即非必须实现)
在.h中导入协议头文件必须用import
协议的作用:监听和配置
*一旦类接收协议,就必须实现协议中@required方法
对象类型的实例变量也可以接受协议
conformsToProtocol:判断对象是否接受某些以
respondsToSelector:判断对象是否实现了某方法
协议可以间接实现多继承
UIScrollView滚动视图
UIScrollView是所有滑动视图的基类
系统的协议一般以Delegate作后缀