UI基础

来源:互联网 发布:电子书架软件 编辑:程序博客网 时间:2024/05/16 10:19
1,框架就是多功能的集合,例如UIKit框架
2,界面size才是编辑界面正在的大小,箭头指向的是启动界面,点击会变色的就是按钮,
3,控制器最终都是继承自UIViewController,管理各种事件的监听,每个界面都要有相应的控制器,所属的控制器在名片有写。
4,连接按钮关联的监听方法,右击出现一堆Events事件,其中Touch Up Inside是点击事件,而返回值为IBAction的方法才是可以进行监听的方法,互相连线时才会有反应。反过来方法也可以进行连线(监听),按住ctrl也可以连。右击控制器按钮,也会出现所有可连线的方法,或者将控件拖向控制器。IBAction本质就是void类型的
5,大部分,一个控件可以关联n个方法,一个方法也可以关联n个控件
6,已经关联方法的控件在复制和删除时要注意,是连带过去的
7,新建控制器:New file>IOS>Source>Cocoa Touch Class>继承自UIViewController。
8,不同的控制器之间不能连线监听?
9,为控制器添加一个控件对象,与界面连接起来才能在界面进行实现功能,而声明为IBOutlet 的控件类型的属性才可以关联,IBOutlet是连接输出口的意思。
10,为了防止被其他控制器调用,在自己控制器中.h文件写属性,是不太好的。通常使用到类扩展,类扩展可以扩展属性和方法的声明,又不必写在头文件里。类扩展也可以放在.h文件上,但为了私密,就要放在.m文件中。
11,属性和方法都可以通过直接从控件拖线去文件中生成。只要根据所需填对内容就可以了。减少代码输入所消耗的时间
12,Makedown文本语言,做笔记常用,使用Mou作为解析器,解析出这语言所需要的格式。GitBook更加方便,推荐。
13,每一个软件界面,都会有加载顺序,第一个默认都是Main.storyboard。
14,
15,新建项目时,bundle identifier,软件的唯一标识,通常由公司的网址倒过来组合在一起。最好不要和别的软件一样。
16,在属性列表中,部分属性属于自己的,写在上层,越往下就越是父类。一个控件通常先继承control,再才到view。
17,每一个控件都可以作为父控件容纳别的控件作为子控件subviews。所有的子控件是数组存储,越后面添加,越在数组后面。
关于子控件的常用的方法:
动态添加子控件:addSubview
删除子控件:removeFromSuperview
管理子控件的摆放:
谁放谁上面:insertSubview:aboveSubview:
谁放最上面:bringSubviewToFront
18,每个控制器都有两个系统自带的方法:1,控制器加载完毕时自动加载的方法viewDidLoad;
每个控制器都常用的属性:
superview父控件,subviews子控件,tag对应的ID标识,transform变形(旋转,缩放等)
frame属性 控件的矩形框在父控件中放在什么位置以及尺寸,属于CG类型的结构体的属性。y值是往下的。(系统带的控件一般都有frame的默认值,但自定义的一定要定义frame才能成功创建)
打印frame也可以通过字符串打印
NSLog(@“%@”,NSStringFromCGRect(self.view.frame))
20,bounds属性,控件矩形框的尺寸,以自身坐标原点为参照的尺寸
21,center属性 ,控件的中心点坐标,也是以父控件为参照。
19,根据标识找出对应控件:viewWithTag:可以根据这个来处理控件 。Tag如果相同,那么只会按照添加顺序来查找,先看看自己的tag,再找子控件。
22,关于提示性的操作,可以创建一个HUD,显示指示器,蒙版,监听情况作出显示。所有控件都有显示和隐藏的属性,也有一次性显示的。还有定时器performSelector:方法 withObject:参数 afterDelay:(NSTimeInterval 其实就是小数double)时间段s多久会自动消失。
23,当控件拖动到另一个控件的范围时,会变成它的子控件,如果想要悬浮在另一个控件之上,不要拖动,更改xy值就可以了。
24,属性列表文件plist,在resource资源选项中创建,resource 里面可以创建很多资源,还有File。plist文件的使用也要注意,添加某些内容的时候,还要记得要展开小三角形才能添加进一个type。
25,Root是根的意思,如果用数组来传文件夹,就要调用一个方法,arrayWithContentsOfFile:文件路径,返回文件内容,而文件路径也是
绝对路径才可以,因为file只能传文件的全路径。
但通常情况下,数据资源都不是直接使用电脑中的,而路径也就不能使用电脑的绝对路径。
26,苹果有一个类NSBundle资源包,一个对象对应一个资源包,可以是图片,音频,视频等。用来访问与之对应的资源包获得文件的全路径。Bundle的mainBundle方法,直接关联到项目中的主资源包(包含项目的所有资源)返回每一个资源的全路径,再通过返回的内容对象调用pathForResource:资源名 ofType: 文件类型这个方法提取所需要的其中的某个资源的路径。
27,拖文件的注意点
在项目中直接创建的黄色文件夹是虚拟的,没有路径的,而直接将文件夹拖入项目中的,是真实的。
拖入项目中时,要记得勾选Copy items if needed,拷贝一份就不会轻易删除到原来的文件。
而Add to targets添加到主资源包的选项,如果不勾选,就只是加载一次性引用,不参与编译,显示为没有定义 。不小心没有勾选,那么可以在Build Phases中寻找资源包看看能不能添加回来。
28,不要将数据在一启动时就加载,因为后面很有可能不需要加载到。需要用到懒加载:用到时才加载资源,并只加载一次,其实就是重写gei方法,将加载资源的代码,直接写入接受资源的属性的gei方法中,并且if属性等于空的时候。降低内存的消耗。
29,模型,专门用来存放数据的对象,继承与NSObject。创建一个模型类,例如:将字典中的key写作属性,将key对应的内容赋值给相应的属性NSString *name=dict[@"name"];,这样就避免了用key提取数据时,写错了却没有提示和警告。创建模型对象的时候,也可以通过构造方法intiWithDict:直接将字典赋值给对象的方法封装到里面,减少代码繁琐。
30,创建对象的方法最好前面加上对象的名字,统一规范。
31,由于数据最好使用时加载,所以可以在get方法中将模型带入,转换为数组。以后都面相模型开发。
32,设置类的前缀,成为一个习惯。在新建项目的属性栏里,找到class prefix输入前缀,那么后面建立的类都会有这个前缀。
33,组合性的控件最好封装成一个大控件。将尺寸通过下面的方法分离开来,其他的内容则写入大控件的初始化里,同时生成
        但凡自动调用的方法,都会先调用父类的同名方法
34,当控件本身尺寸发生改变的时候,系统会自动调用layoutSubviews这个方法。可以通过这个自动调用的方法去设置,将子控件的frame跟随父控件的改变而改变,成一定的规律。(方法内部首先要调用父类的同名方法)
35,需要将数据带入控件时,可以通过控制器赋值,但切忌不要直接赋值,这样不严谨,应该让控件接受数据,再内部通过getset方法去赋值给内部变量,比较安全

0 0