UI初级总结


--------------------------------------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作后缀

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值