- (void)addSubview:(UIView *)aView; - (void)removeFromSuperview;
須要注意的是,經過父 View 添加子 View,而移除要經過子 View 它本身。segmentfault
@property CGFloat contentScaleFactor;
,它會返回一個點有多少個像素。@property CGRect bounds; // 你的視圖內部的繪圖區域的原點和大小。 bounds 屬性用在你 view 本身的實現方法裏。 It is up to your implementation至於怎樣解釋 bounds.origin 的含義,這取決於你的實現方法 @property CGPoint center; // 你的視圖在父視圖座標空間裏的中心點 @property CGRect frame; // 父視圖座標空間的整個外邊框 // contains your view’s bounds.size
好比上面這張圖,它的 bounds
也就是左上角的 (200,250) 那個點。對於 View B 來講並不知道本身被旋轉了,而是其餘某些東西旋轉了它。再看下 View B 的 frame
,在 View A 的座標系統裏它比 View B 大了好多。由於它要完整的裝下 View B,包括 B 的旋轉狀態。因此 View B 的 bounds
只有 200 * 250,可是 View B 的 frame
大多了,是 320 * 320。它的中心點是 (300,225),若是你不當心在 View B 的內部用了這個 center
,你甚至都無法畫出它的 bounds
了,由於已經在屏幕外面了。bounds
不會顯示,由於 View B 只有 200 * 250,但中心點遠在 (300,225)。數組
View B 它本身的中心點是 :spa
(bound.size.width/2 + bounds.origin.x, bounds.size.height/2 + bounds.origin.y)
這個例子中它是 (100,125)。code
一般作法是從 View Library 中拖出一個通用 UIView,而後使用 Inspector 改變 UIView 爲你自定義的類。事件
(經過代碼建立 UIView)只要使用 alloc
和 initWithFrame:
(UIView 的指定初始化)就行。rem