UIView类中定义了三个属性,分别是frame、bounds与center属性:
@property(nonatomic) CGRect frame;
@property(nonatomic) CGPoint center;
@property(nonatomic) CGRect bounds;
frame属性指的是视图在其父视图坐标系中的位置与尺寸,在创建视图时,需要在初始化方法中指定视图的frame,这样创建视图之后,通过 addSubview: 方法就可以将创建的子视图放置在父视图的指定位置,并以指定的尺寸显示出来
center属性就是指定视图的中心点在其父视图坐标系中的位置坐标,简单讲,center属性就定义了当前视图在父视图中的位置
bounds属性指的是视图在其自己的坐标系中的位置与尺寸
UIView视图管理方法:
// 加一个视图到一个视图里面
addSubview
// 将一个视图移到前面
bringSubviewToFront
// 将一个视图推送到背后
sendSubviewToBack
// 把视图移除
removeFromSuperview
// 插入视图 并指定索引
insertSubview:atIndex
// 插入视图在某个视图之上
insertSubview:aboveSubview
// 插入视图在某个视图之下
insertSubview:belowSubview
// 交换两个位置索引的视图
exchangeSubviewAtIndex:withSubviewAtIndex
UIView设置标记和检索视图:
myview.tag = 1001;
[self.view viewWithTag:1001];
(UILable *)[self.view.window viewWithTag:1001];
视图的几何特征:
//框架
struct CGPoint {
CGFloat x;
CGFloat y;
};
typedef struct CGPoint CGPoint;
/* Sizes. */
struct CGSize {
CGFloat width;
CGFloat height;
};
typedef struct CGSize CGSize;
struct CGRect {
CGPoint origin;
CGSize size;
};
typedef struct CGRect CGRect;
CGRect rect = CGRectMake(0,0,320,480);
UIView *view = [[UIView allow]initWithFrame:rect];
//将String转成CGPoint 如 @”{3.0,2.5}” {x,y}
CGPoint CGPointFromString (
NSString *string
);
//将String转成CGRect @”{{3,2},{4,5}}” {{x,y},{w, h}}
CGRect CGRectFromString (
NSString *string
);
//将String转成CGSize @”{3.0,2.5}” {w, h}
CGSize CGSizeFromString (
NSString *string
);
//CGPoint转成NSString
NSString * NSStringFromCGPoint (
CGPoint point
);
//CGRect转成NSString
NSString * NSStringFromCGRect (
CGRect rect
);
//CGSize转成NSString
NSString * NSStringFromCGSize (
CGSize size
);
//对一个CGRect进行修改 以这个的中心来修改 正数表示更小(缩小) 负数表示更大(放大)
CGRect CGRectInset (
CGRect rect,
CGFloat dx,
CGFloat dy
);
//判断两个矩形是否相交
bool CGRectIntersectsRect (
CGRect rect1,
CGRect rect2
);
//初始为0的
const CGPoint CGPointZero;
const CGRect CGRectZero;
const CGSize CGSizeZero;
//创建CGPoint
CGPoint CGPointMake (
CGFloat x,
CGFloat y
);
//创建CGRect
CGRect CGRectMake (
CGFloat x,
CGFloat y,
CGFloat width,
CGFloat height
);
//创建CGSize
CGSize CGSizeMake (
CGFloat width,
CGFloat height
);
UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了
一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面