你的位置:首页 > 操作系统

[操作系统]UI中对于UIView与UILabel的学习


第一次发博客,还请大家多多指教!

 首先说一下UIWindow,使用UIWindow来表示窗口,一般一个应用程序只创建一个UIWindeow的对象.它相当于一个地基,所有的其他的UI控件都是在它上面构成.

一 UIView

 UIView代表屏幕上的一块矩形区域,是一种视图,iOS中所能看到的东西都是UIView或其子类.

1.创建UIView

开辟内存初始化,这里frame:后面是指创建的UIView的大小和位置,CGRect是一个结构体,它后面括号里的4个数字分别表示UIView的左上角(原点)的横坐标,原点的纵坐标,UIView的宽,UIView的高

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];

2.设置视图的背景颜色

UIView.backgroudColor = [UIColor redColor];

3.将视图加到父视图上面

[self.window addSubview: view];

4.内存释放

[view release];

5.视图的一些其他操作

(1)获取view的父视图

UIView *view1 = [view superview];

(2)获取window的所有子视图

NSArray *arr = [self.window subviews];

(3)将子视图放到最后面,父视图是操作人,子视图是被操作的

[self.window sendSubviewToBack:view];

同理,放到最前面为:

[self.window bringSubviewToFront:view];

(4)按下标交换2个视图的位置

[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:1];

(5)从父视图中移除

[view removeFromSuperview];

(6)按下标在指定位置插入

[self.window insertSubview:cView atIndex:0];

在bView视图前插入aView

[self.window insertSubview:aView aboveSubview:bView];

在cView后面插入aView

 [self.window insertSubview:aView belowSubview:cView];

6.视图的一些属性

(1)重新设定视图的frame,子视图的原点的设定是相对于父视图的原点而设定的,

view1.frame = CGRectMake(50, 50, 100, 100);

(2)视图的中心点

view1.center = CGPointMake(30, 30);

(3)透明度,默认为1,改变它对其子视图无影响

view.alpha = 0.5;

(4)将视图隐藏,默认为NO

view1.hidden = YES;

(5)通过给子视图贴标签找到子视图

在#import "AppDelegate.h"下宏定义:#define VIEWTAG 111

view.tag = VIEWTAG;

NSLog(@"%@", [self.window viewWithTag:VIEWTAG]);

7.为视图的边框进行一些设置

(1)边框宽度

view.layer.borderWidth = 2;

(2)边框颜色

view.layer.borderColor = [UIColor yellowColor].CGColor;

(3)使视图的4角呈一定的弧度,若视图为正方形,值为边长的一半时视图变成圆形

view.layer.cornerRadius = 40;

(4)使子视图保留在父视图的那部分(只是看不见,并不是真的消除)

    view.clipsToBounds = YES;

二.UILabel

UILabel是UIView的子类,它除了有UIView的所有的功能外,最重要的是可以在上面加字

1.UILabel的创建

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(90, 300, 200, 50)];

label.backgroundColor = [UIColor redColor];

 [self.window addSubview:label];

 [label release];

清空背景颜色

label.backgroundColor = [UIColor clearColor];

2.(1)给label添加文本内容

label.text = @"我爱编程";

(2)字体颜色

label.textColor = [UIColor greenColor];

(3)对齐方式,默认是左对齐

label.textAlignment = NSTextAlignmentCenter; //中心对齐

label.textAlignment = NSTextAlignmentLeft;//文字靠左

label.textAlignment = NSTextAlignmentRight;//文字靠右

(4)字体大小

label.font = [UIFont systemFontOfSize:12];

改变字体类型和大小,name后所选的字体可到 http://iosfonts.com 去选

label.font = [UIFont fontWithName:@"BodoniOrnamentsITCTT" size:20];

label.font = [UIFont boldSystemFontOfSize:20];  // 字体加粗

(5)字体行数 若为0,则是当前文本显示的最大行数

    label.numberOfLines = 3;

(6)设置文字阴影尺寸与颜色

label.shadowOffset = CGSizeMake(1, 1);

label.shadowColor = [UIColor blackColor];

(7)换行模式

lineBreakMode :设置标签文字过长时的显示方式

label.lineBreakMode = NSLineBreakByTruncatingHead;  // 前面部分文字以....方式省略,显示尾部内容

label.lineBreakMode = NSLineBreakByTruncatingMiddle;  // 中间部分文字以....方式省略,显示头尾内容

label.lineBreakMode = NSLineBreakByTruncatingTail;     // 尾部部分文字以....方式省略,显示前面内容

label.lineBreakMode = NSLineBreakByWordWrapping;  // 以单词为显示单位显示,后面部分省略不显示

label.lineBreakMode = NSLineBreakByCharWrapping;  // 以字符为显示单位显示,后面部分省略不显示

label.lineBreakMode = NSLineBreakByClipping;         // 剪切与文本宽度相同的内容长度,后半部分删除

(8)根据文本宽度改变文字大小,用于文字多于label显示长度时,此时文字会因为变小而全部显示

label.adjustsFontSizeToFitWidth = YES;

(9)高亮

label.heighLighted = YES;

label.highlightedTextColor = [UIColor redColor];   // 设置高亮颜色

(10)如果设置为No,则文字颜色会变暗,表明其是不可用的,默认值为YES。

 label.enabled = NO;

(11)是否能与用户交互
label.userInteractionEnabled = YES;
(12)竖排文字显示

label.text = @"请\n竖\n直\n方\n向\n排\n列";

 label.numberOfLines = [label.text length];