UI_UIView、UILabel、UIWindow
- UIWindow
- UIView
- UILabel
UIWindow :
- 作为应用程序的窗口,在应用程序启动的时候就要加载,各个UI界面都是 借助window来呈现的
- NSObject -> UI系 -> UIResponder -> UIView -> UIWindow
- 在iOS中,使用UIWindow类来表示窗口,主要负责管理和协调各个视图在设备屏幕上的展现
- 通常一个应用程序只创建一个UIWindow对象。
- 我们不会对其操作太多,其尺寸要与屏幕大小一致
创建Window:
//通常Window的大小(frame)与屏幕(UIScreen)大小一致
1 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]];2 //让window变的可视,即显示window
3 [self.window makeKeyAndVisible];
UIView:
NSObject -> UI系 -> UIResponder(响应者类) -> UIViewUIView简介:
- iOS 中能看到的内容都是view或其子类。
- 负责渲染矩形区域的内容,相应区域中德触摸事件,以及为矩形区域添加动画
- 管理一个或者多个子试图
创建视图View:
- 开辟空间并初始化视图(初始化时,绘出视图位置和大小)
- 对视图做一些设置(比如:背景颜色)
- 将视图添加到window上进行显示
- 释放视图对象
1 //创建视图
2 UIView *blueView = [[UIView alloc] initWithFrame:CGRectMake(100, 10, 2, 10)];
3 blueView.backgroundColor = [UIColor buleColor];
4 [self.window addSubView:blueView];//addSubView自动引用计数加1
5 [blueView release];
View的属性:对于属性使用点语法和使用set赋值等价
- userInteractionEnabled:是否可以相应点击
- 子视图超出父视图的部分,不会有用户交互,可以设置clipsToBounds为YES改变
- autoresizingMask:如何调整自己的大小当superView的bounds发生变化时。
- autoresizesSubviews:是否自动调整subviews的大小,缺省值为YES。
- Frame: 指视图的坐标和大小视图布局的关键,决定视图的大小和位置。NSStringFromCGRect(View.frame)
- Center:中心点,和frame关系密切,是frame的中心坐标
- Bounds:边界属性,用于定义视图相对于本地坐标系的位置和大小。是CGRect结构体变量 NSStringFromCGRect(View.bounds)
- hidden:默认no
- alpha:可以改变的透明度float (0.0-1.0),父视图改变会影响到子视图
Bounds/Frame/Center联系
参考系 Bounds(Origin:到自身原点的距离, Size:自身的宽高) 自身 Frame(Origin:到父视图原点的距离, Size:自身的宽高) 父视图 Center 父视图
frame & bounds:bounds.size改变时,frame.size也会发生变化;
frame & center: frame.origin发生变化,center也会发生变化;frame.size发生变化时,bounds.size也发生改变。
center发生变化时,frame.origin也会发生变化。
- center.x = frame.origin.x + frame.size.width/2;
- center.y = frame.origin.y + frame.size.height/2;
- center & bounds:互不影响。
其他属性
属性名 描述 示例 hidden 控制视图的显隐 redView.hidden = YES(NO);//隐藏(显示) alpha 控制视图的不透明度(子视图也一起透明),取值范围0~1 redView.alpha = 0.8 subviews 获取本视图的所有子视图,有0或多个 NSArray *subViews = [redView subViews]; superview 获取本视图的父视图,只有一个 UIView *superView = [redView superView]; tag 给视图添加标记,被加完标记的视图可以使用viewWithTag:方法取出 redView.tag = 100;
UIView *view = [superview viewWithTag:100];
重要方法:
- 初始化视图
- initWithFrame:(CGRect)frame
- 添加视图
- addSubview:[添加视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加的子视图盖在下面。]
- 插入视图
- insertSubview:atIndex:[在指定的index处插入子视图。]
- [superview insertSubview:grayView atIndex:1];
- insertSubview:aboveSubview:[在指定的视图上面添加子视图]
- [superview insertSubview:grayView aboveSubview:redView];
- insertSubview:belowSubview:[在指定视图下面添加子视图。]
- [superview insertSubview:grayView belowSubview:redView];
- 整理视图
bringSubviewToFront:[把指定的子视图移动到最前面]
- [superview bringSubviewToFront:redView];
- sendSubviewToBack:[把指定的子视图移动到最后面]
- [superview sendSubviewToBack:redView];
- exchangeSubviewAtIndex:withSubviewAtIndex:[交换两个指定索引位置的子视图]
- [superview exchangeSubviewAtIndex:0 withSubviewAtIndex:2];
- 移除视图
- removeFromSubview[把receiver从父视图上移除]
- [redView removeFromSuperview];
- superView.clipsToBounds = YES;//将超出父视图部分的子视图去掉
UILabel:
NSObject -> UI系 -> UIResponder -> UIView -> UILabelUILabel(标签):是显示文本的控件。(在App中出现频率最高)
功能:Label是UIView子类,UILabel扩展了文字显示的功能,UILabel是能显示文字的视图。
Label的使用:
创建UILabel:
- 开辟空间并初始化(如果本类有初始化方法,使用自己的;否则使用父类的)。
- 设置文本控制相关的属性。
- 添加到父视图上,用以显示。
- 释放
-
1 {
2 UILabel *userNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0,1,3)];
3 userNameLabel.text = @"用户名";
4 [containerView addSubview:userNameLabel];
5 [userNameLabel release];
6 }
控制文本显示:
属性名 描述 示例 text 显示的文本内容 label.text = @"用户名"; textColor 文本内容的颜色 label.textColor = [UIColor redColor]; textAlignment 文本的对齐方式(水平方向) label.textAlignment = NSTextAlignmentLeft; font 文本字体 label.font = [UIFont fontWithName:@"Heletica-Bold"size:20];//黑体加粗20号字 numberOfLines 行数 label.numberOfLines = 3;//显示3行,注意label的高度要能容纳3行。如果3行没能显示完信息,没显示的信息以省略号代替。设置为0 不限行数 lineBreakMode 断行模式 label.lineBreakMode = NSLineBreakByWordWrapping;//以单词为单位换行。 shadowColor 阴影颜色 label.shadowColor = [UIColor yellowColor];//阴影颜色 shadowOffset 阴影大小 label.shadowOffset = CGSizeMake(2, 1);//阴影向x正方向偏移2,向y正方向偏移1
Label1 {
2 // 1.创建并设置位置和大小
3 UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, [UIScreen mainScreen].bounds.size.width - 100, 35)];
4
5 // 2.设置lable的相关属性
6 // lable.backgroundColor = [UIColor whiteColor];
7 lable.tag = 101;
8 lable.text = @"匆匆那年"; // 设置lable文字
9 lable.textColor = [UIColor whiteColor]; // 设置文本颜色
10 lable.textAlignment = NSTextAlignmentCenter; // 文本位置居中
11 lable.font = [UIFont boldSystemFontOfSize:30]; // 加粗,设置字号
12 lable.numberOfLines = 0; // 通常设置为0自动换行
13 lable.adjustsFontSizeToFitWidth = YES; // 文字自适应
14 // lable.shadowColor = [UIColor colorWithRed:.0 green:.2 blue:.2 alpha:0.2];
15 lable.shadowOffset = CGSizeMake(3.0, 3.0); // 设置投影颜色和高度
16
17 // 3.添加
18 [self.window addSubview:lable];
19
20 // 4.release一次
21 [lable release];
22
23 }


浙公网安备 33010602011771号