MRC下属性的属性
MRC retain assign
ARC retain相当于strong 一般修饰对象
assign相当于weak 一般修饰基本数据类型
window
初始化
// 打印满屏的bounds
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];
// 把窗口显示出来
[self.window makeKeyAndVisible];
UIView
初始化
UIView代表一个矩形区域
初始化一个UIView
// 起始点 从屏幕左上角(0,0)开始计算
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100,100, 200, 100)];
添加背景颜色
view.backgroundColor = [UIColor greenColor];
把视图添加到控件上显示
// 实际上添加进一个数组中
[self.window addSubview:view];
取出子视图的方法
NSArray *subView = self.window.subviews;
UIView *tempView = subView[0];
获取中心点
CGPoint center = view.center;
NSLog(@"%@",NSStringFromCGPoint(center));
更改中心点
view.center = CGPointMake(100, 50);
更改视图位置的两种方法
1.更改frame
2.更改中心点
初始化另一个视图view2
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(50, 20, 50, 50)];
view2.backgroundColor = [UIColor blackColor];
// 父子视图的关系是相对的
// 添加在谁的上面 谁就是父视图
// 子视图的起始位置 要根据父视图的左上角(0,0)点开始计算
[view addSubview:view2];
[view2 release];
// 添加子视图注意
// 必须把子视图添加到 父视图的范围之内 否则无法交互
bounds
bounds:边界的意思,可以控制子视图的坐标系
默认bounds的起始 就是从(0,0)点开始
改变父视图的bounds 相当于改变子视图的坐标系(也就是原点坐标)
父视图是不发生变化的 知识更改子视图的位置 (当然交互的问题以frame为准)
创建视图步骤
1.开辟空间 给一个位置
2.给视图设置属性:如背景颜色,字体大小等
3.添加视图
4.释放内存
定义屏幕长宽的宏
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
初始化一个view
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(kScreenWidth/4, kScreenHeight/10, kScreenWidth/2, kScreenHeight/3)];
// 如果UIView没有设置背景颜色 默认是透明的
aView.backgroundColor = [UIColor greenColor];
[self.window addSubview:aView];
[aView release];
添加一个标签
aView.tag = 100;
// ***注意:tag值不能给0 (因为window默认值为0)
通过标签取出视图
UIView *tagView = [self.window viewWithTag:100];
// 更改通过标签取出视图的属性
tagView.backgroundColor = [UIColor blueColor];
视图属性:隐藏
aView.hidden = YES; // 默认是NO
// 如果父视图被隐藏 那么父视图上面的所有子视图也会被隐藏
初始化视图bView
UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(kScreenWidth/4, kScreenHeight/10, kScreenWidth/4, kScreenHeight/6)];
bView.backgroundColor = [UIColor redColor];
[self.window addSubview:bView];
[bView release];
取出某视图的子视图
NSArray *subViews = self.window.subviews;
把视图插入到指定的位置 (父视图调用的方法)
[self.window insertSubview:bView atIndex:0];
把前一个视图添加到后一个子视图上
[self.window insertSubview:bView aboveSubview:aView];
在指定视图下面插入一个子视图
[self.window insertSubview:bView belowSubview:aView];
取出某一视图的父视图
UIView *superView = bView.superview;
superView.backgroundColor = [UIColor orangeColor];
把某一个子视图 放到最前面
[self.window bringSubviewToFront:aView];
把某一个视图 放到最后面
[self.window sendSubviewToBack:aView];
交换两个视图的位置
[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
把某一个视图从父视图上移除
[bView removeFromSuperview];
透明属性:alpha
默认是1 取值范围0 ~ 1
aView.alpha = 0.5; // 半透明
// 如果父视图的透明度发生变化 那么父视图上面的所有子视图也会发生变化
显示文本的视图UILabel
初始化UILabel
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 270, 500)];
label.backgroundColor = [UIColor greenColor];
label.text = @"text";
多行显示
label.numberOfLines = 0;
// 0 与 - 1全部显示
设置字体颜色
label.textColor = [UIColor redColor];
设置字体大小
label.font = [UIFont systemFontOfSize:15];
设置字体类型及大小
label.font = [UIFont fontWithName:@"Heiti TC" size:20];
获取系统的所有安装的字体
NSArray *fontArray = [UIFont familyNames];
// 打印
NSLog(@"%@",fontArray);
设置对其方式
label.textAlignment = NSTextAlignmentCenter;
阴影颜色
label.shadowColor = [UIColor blueColor];
调整阴影的位置
label.shadowOffset = CGSizeMake(1,0);
设置断行模式
label.lineBreakMode = NSLineBreakByTruncatingMiddle;