今天刚学UI, 首先什么是UI, UI(User Interface):用户界面, 用户能看到各种各样的页面元素。
UIWindow
window是窗口, 每个app都需要借助window将内容展现给用户看。在iOS中,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象。因为window的主要作用是呈现内容给用户,所以我们不会对window做太多的操作。
如何去创建window?
1.在创建widow的时候,需要指定window的大小。
2.通常window的大小(frame)于屏幕(UIScreen)大小一致。
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIView
view(视图):代表屏幕上的一个矩形区域。iOS中用UIView来表示视图。
iOS中所有能看到的内容都是view或其子类。
如何创建view?
1.开辟空间并初始化视图(初始化时, 给出视图位置和大小)。
2.对视图做一些设置(比如说背景颜色等等)。
3.将视图添加到window上进行显示。
4释放视图对象。
UIView *View = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[view setBackgroundColor:[UIColor blueColor]];
[self.window addSubview:view];
[view release];
frame是view的重要属性,是我们做视图布局的关键,它决定了视图的大小和位置。
iOS提供了用于布局的坐标系。
水平向右可划分为320等份。
垂直向下可划分为480等份(3.5寸)or 568等份(4寸)
坐标不是以像素作为划分依据,而是以点为依据。
frame的origin和size是相对于父视图。
添加视图
[superview insertSubview:blueView atIndex:1];// 在指定的index处插入子视图
[superview insertSubview:blueView aboveSubview:redView];// 在指定的视图上面添加子视图
[superview insertSubview:blueView belowSubview:redView];// 在指定的视图下面添加子视图
管理视图层次
[superview bringSubviewToFront:redView];// 把指定的子视图移动到最前面
[superview sendSubviewToBack:redView];// 把指定的子视图移动到最后面
[superview exchangeSubviewAtIndex:0 withSubviewAtIndex:2];// 交换亮哥指定索引位置的子视图
[redView removeFromSuperview];// 把receiver从父视图上移除
视图重要属性
redView.hidden = YES;// 隐藏redView
redView.hidden = NO;// 显示redView
redView.alpha = 0.8;//控制视图的不透明度(子视图也一起透明),取值范围在0~1之间
UIView *superView = [redView superView];// 获取本视图的父视图
NSArray *subviews = [redView subviews];// 获取本视图的所有子视图
redView.tag = 100;// 给视图添加标记,被加标记的视图可以使用viewWithTag:方法取出