一.视图
1. iphone手机上的窗口就是UIWindow类的一个实例(1个手机应用只有一个UIWindow)。
2.UIView类用于实现视图。
UIView提供了方法来添加和删除子视图。一个视图可以有多个子视图,这些子视图按照顺序放在父窗口下:
-(void) addSubview:(UIView *)view;//添加子视图
-(void) removeFromSuperview;//从父窗口上删除子视图(自己)
-(void) insertSubview:(UIView *)view atIndex:(int)index;//按照顺序添加子视图
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) insertSubview:(UIView *)view belowSubview:(UIView *)view;
-(void) exchangeSubviewAtIndex:(int) indexwithSubviewAtIndex:(int)otherIndex;
3.视图结构的相关函数
CGPointMake(x,y) CGPoint point=CGPointMake(50.0,50.0);
声明位置的信息 point.x=50.0;
point.y=50.0;
CGSizeMake(width,height)
声明大小的信息 CGSize size=CGSizeMake(200.0,100.0);
size.width=200.0;
size.height=200.0;
CGRectMake(x,y,width,height) CGRect rect=CGRectMake(50.0,50.0,200.0,200.0)
声明位置和大小信息 rect.origin.x=50.0;
rect.size.width=200.0;
4.Frame和Bound
视图的大小和位置用两种方式表示。一种方式是Frame(框架),即以其父视图为起点,得出它自己的信息。另一种方式是Bound(界限),即以它自己为起点,得到其位置。
其实,系统内部存放的是图的中心点位置和大小信息。Frame方式的信息是按照中心点位置计算出来的。当我们创建一个视图的时,我们往往采用Frame方式。当我们旋转一个视图或者处理视图事件时,我们大多采用Bound方式。
曾经被面试官问过这个问题,当时概念很模糊,被面试官嗤笑了,呵呵!Frame和Bound的区别?这下清楚了吧。