UIView的常用方法

2022-08-16 15:54:17 字數 4401 閱讀 4284

bringsubviewtofront:

把指定的子檢視移動到頂層

- (void)bringsubviewtofront:(uiview *)view

引數 view

需要移到頂層的檢視

convertpoint:fromview:

把乙個點從乙個座標系轉換到接收者的座標系

- (cgpoint)convertpoint:(cgpoint)point fromview:(uiview *)view

引數 point

乙個檢視中座標系上的點

view

乙個檢視包含了點和他自身座標系。如果是圖是nil,那麼這個方法將嘗試轉換基於視窗的座標系。否則檢視和那個接收者必須屬於同乙個uiwindow物件。

返回值

乙個轉換到接收者座標系的點

convertpoint:toview:

轉換乙個點從接收者座標系到給定的檢視座標系

- (cgpoint)convertpoint:(cgpoint)point toview:(uiview *)view

引數 point

乙個在呼叫者座標系中的點

view

乙個包含了需要被轉換的點的檢視。如果檢視是nil,那麼這個方法將會轉換成基於視窗的座標。否則檢視和接收者都要屬於同乙個uiwindow物件。

返回值

基於檢視的座標系轉換過的點

convertrect:fromview:

轉換乙個矩形從其他檢視座標系到接收者座標系。

- (cgrect)convertrect:(cgrect)rect fromview:(uiview *)view

引數 rect

乙個在檢視座標系中的矩形

view

乙個檢視內部有矩形在他的座標系中。如果檢視是nil,那麼這個方法將會基於視窗來轉換。否則檢視和接收者必須都屬於同乙個uiwindow物件

返回值

the converted rectangle

轉換過的矩形

convertrect:toview:

轉換接收者座標系中的矩形到其他檢視

- (cgrect)convertrect:(cgrect)rect toview:(uiview *)view

引數 rect

乙個在接收者座標系中的矩形

view

要轉換過去的目標檢視物件。如果這個是檢視是nil,這個方法將會基於視窗座標系來轉換。否者檢視和接收者必須屬於同乙個uiwindow物件

返回值

乙個轉換過的矩形

drawrect:

在接收者檢視中繪製矩形(自定義uiview)

- (void)drawrect:(cgrect)rect

引數 rect

乙個定義的需要繪製的矩形

討論 子類重寫這個方法如果他們確實要繪製他們自定義的檢視。如果子類是其他檢視的容器那麼它不需要重寫這個方法。預設的實現不做任何事情。如果你自定義的檢視是

乙個uiview子類,你不需要去呼叫它的父類實現。注意如果它的父類實現繪製並且不透明屬性為yes那麼每乙個子類都需要填充矩形。

當這個方

法被呼叫,接收者可以假定他的幀在座標上已經轉換,邊界矩形已經應用;所有他要做的就是繪製自定義的方法。使用

uigraphicsgetcurrentcontext方法去獲取當前圖形內容用來繪製,座標原點在左上角。不要保留內容當他可以被

drawrect:這個方法呼叫。

hittest:withevent:

返回接收者檢視層次中最遠的派生(包括它本身)的特定的點。(觸控事件)

- (uiview *)hittest:(cgpoint)point withevent:(uievent *)event

引數 point

接收者座標系中的點

event

觸發這個方法的事件或者是如果這個方法被預呼叫就返回nil

返回值

乙個檢視物件最遠的派生點。如果這個點位於接收者之外就返回nil

討論 這

個方法貫穿檢視的層次傳送pointinside:withevent:

訊息到每乙個子檢視用來決定那個子檢視需要接收觸控事件。如果pointinside:withevent:

返回yes,那麼檢視的層次全部貫穿;否則檢視層次的分支是被否定的。你不太需要呼叫這個方法,但是你需要重寫它用來隱藏子檢視的觸控事件。

如果檢視是隱藏的,禁止使用者互動的或者透明值小於01那麼這個方法不可用

pointinside:withevent:

返回乙個布林值指出接收者是否包含特定的點

- (bool)pointinside:(cgpoint)point withevent:(uievent *)event

引數 point

乙個在接收者座標系內的點

event

這個方法的目標事件或者如果這個方法被預呼叫返回nil

返回值

如果點在接收者邊界內返回yes,否則返回no

isdescendantofview:

返回乙個布林值指出接收者是否是給定檢視的子檢視或者指向那個檢視

- (bool)isdescendantofview:(uiview *)view

引數 view

乙個檢視用來測試子檢視在檢視層次中的關係

返回值

如果接收者是檢視的子檢視就返回yes,或者檢視就是接收者;否則就是no

layoutifneeded

排列子檢視如果需要的話

- (void)layoutifneeded

討論 使用這個方法來關注子檢視的排列在繪製前

layoutsubviews

排列子檢視

- (void)layoutsubviews

討論 當layoutifneeded被呼叫是子類用來重寫這個方法來排列子檢視。預設實現這個方法不做任何事情。

sendsubviewtoback:

移動指定的子檢視到它相鄰檢視的後面

- (void)sendsubviewtoback:(uiview *)view

引數 view

乙個子檢視用來移動到它後面去

setneedsdisplay

控制接收者的邊界矩形被標記為需要顯示

-(void)setneedsdisplay

討論 默

認情況下,檢視幾何圖形的改變自動重繪而不需要呼叫drawrect:方法。因此,你需要去請求檢視重繪當檢視的資料或者狀態改變的時候。從這個意義上來

說,向檢視傳送setneedsdisplay訊息。任何uiview物件標記為需要顯示後將會在應用程式迴圈中自動重新繪製。

setneedsdisplayinrect:

標記接收者中的特定的矩形區域為需要顯示,或者新增接收者現有的其他無效區域

- (void)setneedsdisplayinrect:(cgrect)invalidrect

引數 invalidrect

標記接收者的矩形區域為無效的;他需要在接收者座標系中定義。

討論 預設情況下,檢視幾何圖形的改變自動重繪而不需要呼叫drawrect:方法。因此,你需要去請求檢視重繪當檢視的資料或者狀態改變的時候。使用這個方法或者用setneedsdisplay方法來標記檢視需要顯示的地方。

setneedslayout

設定當子檢視顯示的時候需要重新排列

- (void)setneedslayout

討論 如果你呼叫這個方法在下乙個顯示方法之間,那麼layoutifneeded排列子檢視;否則將不會做任何事情

sizethatfits:

計算並返回乙個最好的適應接收者子檢視的大小

- (cgsize)sizethatfits:(cgsize)size

引數 size

接收者首選的尺寸

返回值

乙個新的大小用來適應接收者子檢視

討論 預設的實現返回大小引數 子類重寫這個方法用來返回特定檢視的大小。舉個粒子,uiswitch返回乙個修正過的大小,uiimageview返回的大小 這個方法並沒有改變接收者的大小

sizetofit

調整大小並移動接收者檢視大小所以他包含了他的子檢視

- (void)sizetofit

討論 這個方法使用sizethatfits: 方法來決定大小。子類需要重寫sizethatfits:用來計算正確的尺寸大小。預設的實現不做任何事情。

viewwithtag:

返回檢視的特定的標籤

- (uiview *)viewwithtag:(nsinteger)tag

引數 tag

乙個用來在檢視中搜尋的標籤

返回值

檢視在接收者層次中符合的標籤,接收者也包含在搜尋中。

UIView的常用屬性

設定檢視的透明度.預設為1.完全透明 view.alpha 0 不透明 view.alpha 1 預設是 no,當設定為 yes時,超出當前檢視的尺寸的內容和子檢視不會顯示。view.clipstobounds yes 預設是 no,當設定為 yes,檢視就看不見了。view.hidden yes ...

UIView的常用屬性

uiview的常用屬性 1.frame 屬性 設定控制項位置和尺寸。因為它返回的是乙個cgrect,要設定x,y,width,height,所以要弄清楚在ios開發中,是怎樣計算的。在ios開發中,x,y都是父控制項左上角為 0,0 往右 x越來越大,往下 y越來越大。width和height就簡單...

UIView 的基本方法

1.初始化檢視 self.myview uiview alloc initwithframe cgrectmake 100,50,200,400 的背景色 self.myview.backgroundcolor uicolor redcolor 3.新增子檢視到view上 self.view add...