男闺蜜与女闺蜜讲话的区别,UIView及其子类

男闺蜜与女闺蜜讲话的区别2014-09-18 10:21 开心笑笑网 点击次数 :次

一、UIView对象

  1. 类(Class):使用三层矩形框表示。 
    第一层显示类的名称,如果是抽象类,则就用斜体显示。 
    第二层是字段和属性。  第三层是类的方法。 
    注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

  2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<>显示 。  
    第一行是接口名称。  第二行是接口方法。

  3. 继承类(extends) :用空心三角形+实线来表示。

  4. 实现接口(implements) :用空心三角形+虚线来表示

  5. 关联(Association) :用实线箭头来表示,例如:燕子与气候

  6. 聚合(Aggregation) :用空心的菱形+实线箭头来表示  
    聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:
    公司和员工

女生之间关系好,就是这样:A:我想你了B:我也是!A:来,亲亲。

1.创建一个UIView对象并对相关属性进行设置

// 创建对象
UIView *view = [[UIView alloc] init];
// 设置View对象的frame,frame是view的重要属性,决定了视图的大小、位置
view.frame = CGRectMake(0, 100, 200 , 50);
// 设置背景颜色为红色
view.backgroundColor= [UIColor redColor ];
// 使用RGB对视图设置背景颜色时,在设置颜色的RGB,需要使用RGB/ 255.0;
// [UIColor colorWithRed:(r) / 255.0 green:(g) / 255.0 blue:�(b) / 255.0 alpha:a];
// 呈现View对象
[self.window addSubview:view];

7.组合(Composition):用实心的菱形+实线箭头来表示
 组合:部分和整体的关系,并且生命周期是相同的。例如:人与手

男生之间关系好,就是这样:A:儿子,过来!B:滚。A:叫爸,乖。B:你个SB!

2.frame、origin、size之间关系(三者均为结构体)

图片 1

三者之间关系.jpg

  1. 依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气

  2. 基数
    :连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类
    可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的。

3.如何得到frame、origin、size、center

// 获得view的 frame
NSLog(@"view.frame = %@", NSStringFromCGRect(view.frame));
// 打印view的frame的size(宽高)
NSLog(@"view.CGSize = %@", NSStringFromCGSize(view.frame.size));
// 打印view的frame的origin(x、y轴坐标)
NSLog(@"view.CGPoint = %@", StringFromCGPoint(view.frame.origin));

// 打印view的bounds
NSLog(@"view.bounds = %@", NSStringFromCGRect(view.bounds));
// 修改bounds的X、Y坐标
view.bounds= CGRectMake(50, 50, 200, 200);

// 创建一个新的subView 添加在view上边显示
UIView *subView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 50, 50)];
[subView setBackgroundColor: [UIColor redColor]];
[view addSubview:subView];

// 如何得到subView的父View以及view的子view
id superView= subView.superview;
NSLog(@"superView = %@", superView);

// 得到所有子view,返回值为NSArray数组,如果需要得到子试图中的某一类试图,需要遍历的时候,配合isKindOfClass使用

id subView = view.subviews;
NSLog(@"superView = %@", subView);

//修改view的bounds后view左上角的坐标成为(50,50),而它针对于window自身的位置并没有发生改变,而它的子类subView(0,0,50,50)将会发生位置改变,不再按照view的左上角坐标,而是寻找按照view左上角为参照点的(0,0)坐标原点;

// 如何计算center
// center.x = frame.origin.x + frame.size.width/2;

// center.y = frame.origin.y + frame.size.height/2;

// 打印center点
NSLog(@"center = %@",NSStringFromCGPoint(view.center));

// 修改view的中心点 使用CGPointMake(x, y);
view.center = CGPointMake(300, 300);

类之间的关系     UML把类之间的关系分为以下5种.

4.隐藏视图对象、设置视图透明度、tag值

// 隐藏视图
view.hidden = YES;
// 透明度设置 取值范围 [0,1]
view.alpha = 1;

// tag值设置标记,建议从1000以后开始(当视图为局部变量时,我们需要在另外的作用域得到该视图对象,就可以视同tag值)
view.tag =  1001;

// 通过tag值得到相应的子视图;
// 从父视图通过tag值得到相应的子试图
// UIView *tagView = [self.window viewWithTag:1001];

● 关联:类A与类B的实例之间存在特定的对应关系

5、bounds、frame、center之间关系

图片 2

EF0A0D63-0A8F-48E4-B3E2-5A37C3C6E5DA.png

图片 3

5E314F00-77F6-4972-9ACB-6017EC978DBD.png

图片 4

0C660F28-6449-44E2-8B2D-4BA2CEF1E109.png

● 依赖:类A访问类B提供的服务

6.多个视图之间的相关操作方法

● 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成

(1).添加视图

图片 5

D0369419-C7A5-4047-9F5C-B4A3F4EEE26C.png

● 泛化:类A继承类B

(2).管理视图层次

图片 6

B958C44B-2443-4BB5-BC76-30B5DEC21A6A.png

● 实现:类A实现了B接口   关联(Association)

二、UILabel对象

关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。按照类之间的数量对比,关联
 可以分为以下三种:

1.创建UILabel对象、相关属性设置

// UILabel的父类是UIView所以UIlabel也是一个视图对象,继承父类的相关属性和方法
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 300, 300, 50)];
// label呈现文字
label.text = @"这是一个UILabel对象";

// 设置字体颜色
label.textColor = [UIColor whiteColor];

// 设置文字位置
label.textAlignment = 2;

// 设置lable行数,label.numberOfLines = 0; 0 : 表示label按照当前文本内容自动进行行数确定,默认行数1;
label.numberOfLines = 5;

// 设置字体
label.font = [UIFont systemFontOfSize:30];

// 省略号位置
label.lineBreakMode = NSLineBreakByTruncatingHead;

// 设置阴影
// 设置阴影颜色
label.shadowColor = [UIColor yellowColor];

// 设置阴影偏移量
label.shadowOffset = CGSizeMake(-3, 1);

● 一对一关联

● 一对多关联

● 多对多关联

相关文章