iOS开发-UI (一)补充 UIWindow UIView UIlabel
之前忘了把这些整理出来,现在补充一下,应该放在前面学习的
知识点:
1.UI的初步认识
2.UIWindow
3.UIView
4.UIlabel
========================
UI的初步认识
1.什么是UI(*)
UI即User Interface(用户界面)的简称。UI设计则是指对软 件的人机交互、操作逻辑、界面美观的整体设计。好的UI设 计不仅是让软件变得有个性有品味,还要让软件的操作变得 舒适、简单、自由、充分体现软件的定位和特点。
2.第一个UI工程
1)UI工程的程序入口在哪里(*)
在AppDelegate这个类中(UIApplication的代理对象);
2)什么是UIApplicationMain(*)
每一个程序在运行期必须有且仅有一个UIApplication(或则其 子类)的一个实例。创建UIApplication的单例实例。这样可以 通过调用[UIApplication sharedApplication]来得到这个单例 实例的指针。
UIApplication的一个主要工作是处理用户事件,它会创建一个 队列,把所有用户事件都放入队列,逐个处理,
在处理的时候,它会发送当前事件到一个合适的处理事件的目 标控件。此外,UIApplication实例还维护一个在本应用中打开 的window列表(UIWindow实例),这样它就 可以接触应用 中的任何一个UIView对象。UIApplication实例会被赋予一个 代理对象,以处理应用程序的生命周期事件(比如程序启动和 关闭)、系统事件(比如来电、记事项警告)等等
3)IOS程序图标和程序名设置(***)
修改info.plist配置文件中的bundle name
图片必须是png格式,并且像素尺寸必须要符合要求
========================
UIWindow
1.iPhone应用程序通常只有一个窗口,表示为一个UIWindow类的 实例。应用程序在启动时创建这个窗口,并往窗口中加入一或多 个视图并显示出来。
2.UIWindow对象是所有UIView的根,管理和协调应用程序的显 示。一般应用程序只有一个UIWindow对象,即使有多个 UIWindow对象,也只有一个UIWindow可以接受到用户的触屏 事件。
备注:UIWindow继承自UIView
========================
UIView使用
1.UIView初步介绍
ios中一切看得见摸得着的类都是直接或者间接的继承自UIView
2.UIView作用
1)视图是UIView类的实例,负责在屏幕上定义一个矩形区域。
视图在展示用户界面及响应用户界面交互方面发挥关键作用。
每个视图对象都要负责渲染视图矩形区域中的内容,并响应该区域 中发生的操作事件。视图是应用程序与用户交互的重要机制。除了 显示内容和处理事件之外,视图还可以用于管理一或多个子视图。
2)子视图是指嵌入到另一视图对象边框内部的视图对象,而被嵌入的 视图则被称为父视图或超视图。视图的这种布局方式被称为视图层 次,一个视图可以包含任意数量的子视图,通过为子视图添加子视 图的方式,视图可以实现任意深度的嵌套。子视图总是被显示在其 父视图的上方。每个父视图都负责管理其直接的子视图,根据需要 调整它们的位置和尺寸,以及响应它们没有处理的事件。
3.iPhone屏幕是用点来计算坐标的
型号 x y
iPhone4 320 * 480
iPhone4S 320 * 480
iPhone5 320 * 568
iPhone5S 320 * 568
iPhone6 375 * 667
iPhone6 Plus 414 * 736
普通屏幕 1点=1像素
retina屏幕 1点 = 4像素
6 Plus 1点 = 9像素
4.iPhone的坐标系
1) 原点在左上角
2) 往右为x的正方向,往下为y的正方向
5.UIView常见属性和坐标属性
1)IOS中的坐标系统
2)frame: 该view在父view坐标系统中的位置和大小。 (参照点是,父亲的坐标系统)
3)bounds:该view在自身坐标系中的位置和大小。 (参照点是,自己的坐标系)
4)center:该view的中心点在父view坐标系统中的位置。
(参照点是,父亲的坐标系统)
6.UIView的层次关系
1)添加子视图:addSubView
[self.window addSubview:label];
2)从父视图移除:removeFromSuperview
========================
UIlabel
1.UIFont类常用方法
1)创建一个UIFont对象
(UIFont *)fontWithName:(NSString *)name size:(CGFloat)size
label.font = [UIFont fontWithName:@"Zapfino" size:20];
2)遍历系统字体库
(NSArray *)familyNames
//获取系统的字体库
NSArray *fontArr = [UIFont familyNames];
3)设置加粗
(UIFont *)boldSystemFontOfSize:(CGFloat) size
label.font = [UIFont boldSystemFontOfSize:20];
2.UILabel如何改变字体颜色
1)字体颜色:setTextColor
2)文字阴影颜色:setShadowColor
3)设置文字阴影偏移: setShadowOffset
//阴影相对于本身的label 往X的正方向偏移20个单位,往Y方向偏移20个单位
label.shadowOffset = CGSizeMake(20, 20);
//设置阴影颜色
label.shadowColor = [UIColor grayColor];
3.UILabel文字对齐方式:setTextAlignment
1)NSTextAlignmentLeft -> 左对齐
2) NSTextAlignmentCenter ->居中对齐
3)NSTextAlignmentRight ->右对齐
label.textAlignment = NSTextAlignmentCenter;
4.UILabel多行显示:numberOfLines
//0代表无限换行,直到超出label本身的范围
label.numberOfLines = 0;
5.自适应内容,根据内容大小设置UILabel的frame
//textSize为最后字符串内容占用的区域大小
CGSize textSize = [str boundingRectWithSize:CGSizeMake(200, 3000) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
//创建一个UILabel ,UILabel的大小根据textSize进行变化
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, textSize.width, textSize.height)];