您的位置:首页 > 产品设计 > UI/UE

IOS UIView 详解

2016-08-19 11:31 363 查看
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界面 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IOS