本文主要是介绍进击的KFC:UI(一)UIView及其子类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pragma mark — UIView
UIView 代表一个矩形区域
创建一个视图的4步骤:
1.初始化: 起始点从(屏幕的)父视图左上角开始计算,为(0,0)点 (必须记住)
UIView *view = [[UIView alloc] initWithFrame:CGRect(100,100,200,100)];
2.设置一些属性
view.backgroundColor = [UIColor redColor];
3.显示视图
[self.window addSubView:view];
view.tag = 100; // 设置tag标记
4.释放内存
[view release];UIView的一些方法:
1.取出所有的子视图:
NSArray *subView = [self.window subViews];
2.取出视图view的中心点(以0,0原点为基点)
CGPoint center = view.center
NSLog(@“%@“,NSStringFromCGPoint(center)); // 把一个点转成字符串
// 更改视图的位置方法:
// 1.更改frame
// 2.更改中心点
3.bounds边界,子视图坐标系的原点
// 总结:改变父视图的bounds 像但与改变子视图的坐标系(也就是原点坐标)
// 父视图是不变的,只是改变子视图的位置
view.bounds = CGRectMake(0,30,200,100);
bounds 改的是父视图view,影响的是子视图view1. // 或者说:改变父视图的bounds,控制子视图的坐标系,因为子视图是从父视图的原点(0,0)开始计算坐标的,可是现在父视图的原点通过bounds改变了,子视图所遵循的(0,0)点位置变了,按上面修改的数据,父视图之前的(0,0)变成了(0,30),那么子视图遵循的点(0,0)在(0,30)的上方,所以view1上移
创建一个子视图,添加到view上
步骤同上:UIView *view1 =[ [UIView alloc]initWithFrame:(0,0,50,50)];
view1.backgroundColor = [UIColor yellowColor];
[view addSubView:view1];// tips:子视图的起始位置 要根据父视图的左上角(0,0)点开始计算坐标// 添加子视图注意:必须把子视图添加到 父视图的范围之内,否则无法交互!
pragma mark — 视图重要属性
1.隐藏视图:如果,父视图被隐藏,那么父视图上的所有子视图,也会被隐藏
view.hidden = YES;
2. 透明属性:如果,父视图透明度发生变化,那么父视图上面的所有子视图,也会发生变化
view.alpha = 0.2;
3.取出某一子视图的 父视图
UIView *superView = view1.superView;
4. 获取本视图的所有⼦视图
NSArray *subView = view.subViews;
5. 给视图添加标记,被加完标记的视图可以通过viewWithTag:⽅法被取出来// 通过tag值取出视图// 注意:tag 不能给0(因为window是0);
UIView *tagView = [self.window viewWithTag:100];
pragma mark — 管理视图层次
// 把某一个子视图 放到最前面[self.window bringSubViewToFront:view1];
//把某一个子视图 放到最后面[self.window sendSubViewToBack:view1];
// 交换两个子视图的位置[self.window exchangeSubViewAtIndex:0 withSubViewAtIndex:1];
// 把view1从⽗视图上移除[view1 removeFromSuperView];
pragma mark — UILabel
// 显示文本的视图UILabel,继承UIView
// 初始化
UILabel *label =[ [UILabel alloc]initWithFrame:CGRectMake:(10,30,100,300)];
label.backgroundColor = [UIColor redColor];
label.text = @“wosdanvjdlfj odpsadfl opafon dsgoaf "
label.font = [UIFont systemFontOfSize:19]; // 设置字体大小
label.textAlignment = NSTextAlignmentLeft; // 左对齐,右对齐,居中
label.NumberOfLine = 0; // 你想显示几行就填几,-1和0表示完全显示
label.lineBreakMode = NSLineBreakByTruncatingMiddle;//设置断行模式label.shadowColor = [UIColor redColor]; // 设置阴影颜色label.shadowOffset = CGSizeMake(2, 1); // 调整阴影的位置// 获取系统所有安装的字体NSArray *fountArray = [UIFont familyNames];NSLog(@"%@ %ld",fountArray,[fountArray count]);// 设置字体和字号:label.font = [UIFont fontWithName:fountArray[71] size:20];
小节:
UIView是所有可视化控件的基类。
UILabel是具有特定外观特定功能的视图。
UILabel侧重于⽂本的呈现。
pragma mark — 总结
App靠window来呈现内容,⼀个程序⼀般只创建⼀个window。
App中能看到的元素,都是UIView及其⼦类。
UIView作为所有可视化控件的BaseClass,提供了许多属性和⽅法。
显⽰效果控制(frame、alpha等)、视图添加和移除(addSubview:
等)、视图层次调整(bringSubviewToFront:等)等。
UILabel属于具体的视图,有⾃⼰的侧重点
这篇关于进击的KFC:UI(一)UIView及其子类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!