一、UI编程概述
UI:用户界面,英文User和Interface的缩写。
UI设计是指对软件的人机交互,操作逻辑,界面美观的整体设计。
软件设计可分为两个部分:编码设计与UI设计。
二、UIWindow
UIWindow:UIView的子类,负责管理和协调应用程序的显示。一般情况下,一个应用程序只有一个UIWindow对象。并且UIWindow对象的尺寸与屏幕等大。
UIWindow的创建:
//Xcode7以后,没有空白模板,我们选择使用singleView模板.该模板默认有storyBoard(故事板),会自动创建window.
//1.创建一个window对象,并设置其大小.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
//2.设置window的背景颜色
self.window.backgroundColor = [UIColor whiteColor];
//3.设置当前的window为主窗口并可见.
[self.window makeKeyAndVisible];
//在Xcode7之前,只需要完成创建window的步骤,程序即可运行.但Xcode7以后,当手动创建window之后必须给其设定根视图控制器.否则程序崩溃.
//1.创建一个viewController对象.
ViewController *vc = [[ViewController alloc] init];
//2.将viewController对象设置为window的根视图控制器
self.window.rootViewController = vc;
三、**重点内容**UIView
UIView:iOS中所有视图的基类。在我们开发的过程中占有相当重要的地位。
UIView表示屏幕上的一块矩形区域。因为iOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容并且响应该区域内发生的触摸事件。
UIView的功能:
1. 管理矩形区域里的内容
2. 处理矩形区域中的事件
3. 子视图的管理
4. 实现UIView动画
5. UIView作为父类,子类也具有这些功能
iOS中的坐标系是以手机屏幕左上角为原点分别往右为x轴正方向,往下为y轴正方向。
确定一个视图的位置,需要两个条件:
1. 一个坐标–CGPoint类型的变量存储,其有两个成员变量x, y
2. 视图的尺寸–CGSize类型的变量存储,其有两个成员变量width,height。
frame是UIView的重要属性,它决定了视图的大小和位置。frame是CGRect类型,是基于它父视图的坐标系而言的。
UIView常用属性:
属性名 | 描述 | 示例 |
---|---|---|
center | 视图的中心点,可以更改视图位置 | view.center = CGPoint(100,200); |
hidden | 控制视图显示或隐藏 | view.hidden = YES;//隐藏 view.hidden = NO;//显示 |
alpha | 控制视图的透明度 | view.alpha = 0~1 |
superView | 获取本视图的父视图 | view.superView |
subViews | 获取本视图的所有子视图 | view.subViews |
tag | 给视图标记,用于找到该视图 | view.tag = 101; [superView viewWithTag:101]; |
添加视图:
方法名 | 描述 | 示例 |
---|---|---|
addSubview: | 添加子视图 | [superView addSubview:view]; |
insertSubview:atIndex: | 在指定的index处插入子视图 | [superView insertSubview:orangeView atIndex:2]; |
insertSubview:aboveSubview: | 在指定的视图上面添加子视图 | [superView insertSubview:d aboveSubview:a]; |
insertSubview:belowSubview: | 在指定的视图下面添加子视图 | [superView insertSubview:e belowSubview:b]; |
视图层次管理:
方法名 | 描述 | 示例 |
---|---|---|
bringSubviewToFront: | 把指定的子视图移到最前面 | [superView bringSubviewToFront:redView]; |
sendSubviewToBack: | 把指定的子视图移动到最后面 | [superView sendSubviewToBack”redView]; |
exchangeSubviewAtIndex:withSubviewAtIndex: | 交换两个指定索引位置的子视图 | [superView exchangeSubviewAtIndex:0 withSubviewAtIndex:2]; |
removeFromSuperview: | 把子视图从父视图上移除 | [redView removeFromSuperview]; |