UI笔记_UIView

UI概述

UI(User Interface): 用户能看到的各种个样的页面元素

iOS App = 各种各样的UI控件 + 业务逻辑和算法

UIWindow

window是窗口,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象

通常window的大小(frame)与屏幕(UIScreen)大小一致

// 示例
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UIView

view(视图): 代表屏幕上的一个矩形区域

iOS中用UIView表示视图,各种UI控件都属于view,不同的控件代表不同种类的view,iOS中所有能看到的内容都是view或其子类

// 创建视图的步骤
// 1.开辟空间并初始化视图(初始化时,给出视图的位置和大小)
UIView *view = [[UIView all] initWithFrame:CGRectMake(100, 100, 100, 100)];
// 2.对视图做一些设置(比如: 背景颜色)
[view setBackgroundColor:[UIColor blueColor]];
// 3.将视图添加到window上进行显示
[self.window addSubview:view];
// 4.释放视图对象
[view release];

iOS坐标系

iOS提供了用于布局的平面坐标系。左上角为坐标系的原点。

水平向右:为x的正方向。屏幕最左到最右可划分320等份。

垂直向下:为y的正方向。屏幕最上到最下可划分480等份(3.5寸)或568等份(4.0寸)。

坐标系不是以像素作为划分依据,而是以“点”作为依据。

// frame是一个结构体,包含2部分内容:origin和size
struct CGRect {
    CGPoint origin;
    CGSize size;
};
typedef struct CGRect CGRect;
// origin也是一个结构体,包含2部分内容:x和y
struct CGPoint {
  CGFloat x;
  CGFloat y;
};
typedef struct CGPoint CGPoint;
// size同样是一个结构体,包含2部分内容:width和height
struct CGSize { 
  CGFloat width; 
  CGFloat height;
};
typedef struct CGSize CGSize;
// frame的origin和size是相对于父视图来说的。
// CGRectMake()函数可以帮我们快速的构造一个CGRect变量
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height){ 
  CGRect rect; 
  rect.origin.x = x; 
  rect.origin.y = y; 
  rect.size.width = width; 
  rect.size.height = height; 
  return rect;
}
 

center

center(中⼼点)也是view重要的属性。

center是个结构体,包含2个部分:xy

centerframe有着密切的联系。

center.x = frame.origin.x + frame.size.width/2;
center.y = frame.origin.y + frame.size.heigh 

bounds

bounds(边界)也是view的重要属性,⽤于定义⾃己的边界。

它同frame⼀样是⼀个CGRect结构体变量。

当⼀个view设置bounds时,会把⾃己当成⼀个容器,定义⾃己的边界⼤小以及相对坐标原点的偏移量。

当⼦视图添加到此视图时,会根据bounds指定的原点计算frame

center和bouns

center参考系:父视图;      bounds参考系:自身

center发生变化bounds.origin不变,bounds.origin发生变化center不变

添加视图

insertSubview:atIndex:               在指定的index处插入子视图

insertSubview:aboveSubview:   在指定的视图上面添加子视图

insertSubview:belowSubview:   在指定的视图下面添加子视图

管理视图层次

bringSubviewToFront:                                           把指定的子视图移动到最前面

sendSubviewToBack:                                            把指定的子视图移动到最后面

exchangeSubviewAtIndex:withSubviewAtIndex:   交换两个指定索引位置的子视图

removeFromSuperview                                         把receiver从父视图上移除

视图重要属性

hidden        控制视图的显隐                                                                                    [view setHidden:YES]; // YES隐藏 NO显示

alpha          控制视图的不透明度(子视图也一起透明),取值范围0~1                    [view setAlpha:0.8];

superview   获取本视图的父视图                                                                             UIView *superView = [view superview];

subviews    获取本视图的所有子视图                                                                      NSArray *subViews = [view subviews];

tag              给视图添加标记,被加完标记的视图可以使用viewWithTag:方法取出  [view setTag:100];  UIView *view = [superview viewWithTag:100];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值