一.視圖
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的區別?這下清楚了吧。