您的位置:首页 > 产品设计 > UI/UE

UI一揽子计划 1 (UIView UILabel)

2015-09-10 12:45 239 查看
第一天

1.UIView

·建立一个空模板后,首先将ARC模式关闭,因为iOS采用MRC模式,即手动管理内存。

·重写dealloc方法。 - (void)dealloc

{

[_window release];

[super dealloc];

}

·将self.windows进行autorelease。

·把窗口显示到界面上,如果窗口不显示到界面上 默认是黑色的

创建UI控件 一共四部

1. 初始化一个空间

2. 设置属性 例如:背景颜色

3. 显示视图

4. 释放内存空间

·构建一个frame结构体

UIView *aView = [[UIView alloc] initWithFrame:CGRectMake( 50, 50, 200, 200)];

·设置背景颜色

UIView 的默认的背景颜色是透明的

aView.backgroundColor = [UIColor redColor];

aView.alpha = 0.7;

·显示视图 添加到windows上面

[self.window addSubview:aView];

·释放视图

[aView release];

·子视图的起始坐标是根据父视图的原点坐标开始计算的

将bView 添加到 aView上面

UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];

bView.backgroundColor = [UIColor blueColor];

·子视图跟着父视图的变化而变化 子视图的透明度随着父视图的改变而改变

·所有能看见的都是UI控件 全是UIView的子类

·改变视图的中心点位置 就相当于改变它的位置

aView.center = CGPointMake(200, 200);

·构建Size(宽高)结构体 CGSizeMake(<#CGFloat width#>, <#CGFloat height#>);

·如果子视图没有在父视图的范围内会造成没有点击事件(触摸事件) 所以一定要添加到范围

·设置透明属性 有一个范围(0 - 1)设置透明度属性 默认是不透明的

bView.alpha = 1;

·隐藏 只是YES NO 默认是NO 如果父视图隐藏子视图一样隐藏

aView.hidden = NO;

[aView addSubview:bView];

·改变父视图的bounds 是改变撒???

1.不管怎么改,父视图本身是不会发生变化的。

2.更改的是子视图的坐标系(即原点 0, 0 点)。

3.把bounds从0,0 更改成 10,10 相当于将原来的0,0 点改成了 10,10 点。子视图必须要根据父视图的0,0 点计算 那么需要寻找现在的0,0 点从而改变位置

aView.bounds = CGRectMake(10, 30, 200, 200); 一般就改原点 宽高一般不动

·打印frame结构体的函数

NSLog(@”%@”, NSStringFromCGRect(aView.bounds));

·获取 a 的全部子视图 放到数组中去

NSArray *subViews = aView.subviews;

·把子视图插到相应的角标位置

√ c 插到最前的位置

[aView insertSubview:cView atIndex:0];

√ b插到最前的位置

[aView insertSubview:bView atIndex:0];

√ 把 b 放在 c 的上面

[aView insertSubview:bView aboveSubview:cView];

√ 把 b 放在 c 的下面

[aView insertSubview:bView belowSubview:cView];

√ 把 b 移动到最前面

[aView bringSubviewToFront:bView];

√ 把 b 移动到最后面

[aView sendSubviewToBack:bView];

√ 交换两个视图的位置 改变的是角标的位置

[aView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

√ 从父视图中移除 b 这个子视图

[bView removeFromSuperview];

·给视图加一个标签

aView.tag = 100;

注意: 1.标签不能重复 2.不能为0

·在父视图的子视图上面寻找 有没有对应的标签 也就是说, 这个方法是由父视图调用的

UIView *aViewTemp = [self.window viewWithTag:100];

aViewTemp.backgroundColor = [UIColor blackColor];

cView.tag = 1000;

UIView *cViewTemp = [self.window viewWithTag:1000]; 父亲的父亲也可以

cViewTemp.backgroundColor = [UIColor redColor];

·取出 c 的父视图 改变颜色

UIView *cSuperView = [cView superview];

cSuperView.backgroundColor = [UIColor brownColor];

2.UILabel

·创建一个UILabel

1.初始化

2.设置属性

3.显示

4.回收内存

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(30, 100, 90, 40)];

label.backgroundColor = [UIColor grayColor];

label.alpha = 0.5;

[self.window addSubview:label];

·默认上下居中 左右居左 字体黑色 默认一行

label.text = @”name:”;

label.textColor = [UIColor redColor];

label.textAlignment = NSTextAlignmentCenter;

·显示在本label里文本几行 行数设置为0 如果label够长够宽 可以把本本显示完整

label.numberOfLines = 0;

·设置字体的大小 或者字体样式

label.font = [UIFont fontWithName:@”Marker Felt” size:18]; 比如黑体 宋体 字号

label.font = [UIFont systemFontOfSize:18];

NSLog(@”%@”, label.font.fontName);

·断行模式

label.lineBreakMode = NSLineBreakByCharWrapping;

/*

typedef NS_ENUM(NSInteger, NSLineBreakMode) { /* What to do with long lines */

NSLineBreakByWordWrapping = 0, /* Wrap at word boundaries, default */

NSLineBreakByCharWrapping, /* Wrap at character boundaries */

NSLineBreakByClipping, /* Simply clip */

NSLineBreakByTruncatingHead, /* Truncate at head of line: “…wxyz” */

NSLineBreakByTruncatingTail, /* Truncate at tail of line: “abcd…” */

NSLineBreakByTruncatingMiddle /* Truncate middle of line: “ab…yz” */

} NS_ENUM_AVAILABLE_IOS(6_0);

*/

·设置阴影

label.shadowColor = [UIColor blackColor];

·设置阴影位置

label.shadowOffset = CGSizeMake(0, 3);

·打印手机安装过的字体的方法

·所有的字体都在这个

NSArray *fontNameArray = [UIFont familyNames];

NSLog(@”%@”, fontNameArray);

[label release];

UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(30, 160, 90, 40)];

label1.backgroundColor = [UIColor grayColor];

label1.alpha = 0.5;

[self.window addSubview:label1];

label1.text = @”password:”;

label1.textColor = [UIColor redColor];

label1.textAlignment = NSTextAlignmentCenter;

[label1 release];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: