进击的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属于具体的视图,有⾃⼰的侧重点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值