UIView 中常見的方法總結

addSubview:
添加一個子視圖到接收者并讓它在最上面顯示出來。

  • (void)addSubview:(UIView *)view
    討論
    這方法同樣設置了接收者為下一個視圖響應對象碌燕。接收者保留視圖。如果你使用removeFromSuperview方法用來把視圖移除他的顯示列表,那么視圖將會被釋放嗜傅。如果你想要在視圖移除顯示列表後保留并使用這個視圖(如果,舉個例子泪勒,你想要交換一些視圖的位置跌前。)棕兼,你不許保留那個視圖在他調用removeFromSuperview前。

bringSubviewToFront:
把指定的子視圖移動到頂層

  • (void)bringSubviewToFront:(UIView *)view
    參數(shù)
    view
    需要移到頂層的視圖

convertPoint:fromView:
把一個點從一個坐標系轉換到接收者的坐標系

  • (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view
    參數(shù)
    point
    一個視圖中坐標系上的點
    view
    一個視圖包含了點和他自身坐標系抵乓。如果是圖是nil伴挚,那么這個方法將嘗試轉換基于窗口的坐標系。否則視圖和那個接收者必須屬于同一個UIWindow對象臂寝。
    返回值
    一個轉換到接收者坐標系的點

convertPoint:toView:
轉換一個點從接收者坐標系到給定的視圖坐標系

  • (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
    參數(shù)
    point
    一個在調用者坐標系中的點
    view
    一個包含了需要被轉換的點的視圖章鲤。如果視圖是nil,那么這個方法將會轉換成基于窗口的坐標咆贬。否則視圖和接收者都要屬于同一個UIWindow對象败徊。
    返回值
    基于視圖的坐標系轉換過的點

convertRect:fromView:
轉換一個矩形從其他視圖坐標系到接收者坐標系。

  • (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view
    參數(shù)
    rect
    一個在視圖坐標系中的矩形
    view
    一個視圖內部有矩形在他的坐標系中掏缎。如果視圖是nil皱蹦,那么這個方法將會基于窗口來轉換。否則視圖和接收者必須都屬于同一個UIWindow對象
    返回值
    The converted rectangle
    轉換過的矩形

convertRect:toView:
轉換接收者坐標系中的矩形到其他視圖

  • (CGRect)convertRect:(CGRect)rect toView:(UIView *)view
    參數(shù)
    rect
    一個在接收者坐標系中的矩形
    view
    要轉換過去的目標視圖對象眷蜈。如果這個是視圖是nil沪哺,這個方法將會基于窗口坐標系來轉換。否者視圖和接收者必須屬于同一個UIwindow對象
    返回值
    一個轉換過的矩形

didAddSubview:
告訴視圖當子視圖已經(jīng)添加

  • (void)didAddSubview:(UIView *)subview
    參數(shù)
    subview
    被添加做子視圖的視圖對象
    討論
    被子類重寫用來執(zhí)行額外的命令當子視圖添加到接收者酌儒。這個方法被addSubview調用

didMoveToSuperview
通知接收者父視圖已經(jīng)改變(nil是允許的)

  • (void)didMoveToSuperview
    討論
    默認不做任何事情辜妓;子類可以重寫這方法來作為特定的實現(xiàn)

didMoveToWindow
通知接收者它一斤給添加到窗口中

  • (void)didMoveToWindow
    討論
    默認實現(xiàn)不做任何事情;子類可以重寫這個方法來做特殊的實現(xiàn)
    窗口的屬性有可能是nil當這個方法調用的時候忌怎,這表明接收者并不屬于當然任何一個窗口籍滴。這個只發(fā)生在接收者從它的父視圖上移除或者接收者添加到父視圖中而不是添加到window中。重寫這個方法可以用來選擇忽略一些他們不關心的對象

drawRect:
在接收者視圖中繪制矩形

  • (void)drawRect:(CGRect)rect
    參數(shù)
    rect
    一個定義的需要繪制的矩形
    討論
    子類重寫這個方法如果他們確實要繪制他們自定義的視圖榴啸。如果子類是其他視圖的容器那么它不需要重寫這個方法孽惰。默認的實現(xiàn)不做任何事情。如果你自定義的視圖是一個UIView子類鸥印,你不需要去調用它的父類實現(xiàn)勋功。注意如果它的父類實現(xiàn)繪制并且不透明屬性為YES那么每一個子類都需要填充矩形坦报。
    當這個方法被調用,接收者可以假定他的幀在坐標上已經(jīng)轉換狂鞋,邊界矩形已經(jīng)應用片择;所有他要做的就是繪制自定義的方法。使用UIGraphicsGetCurrentContext方法去獲取當前圖形內容用來繪制要销,坐標原點在左上角构回。不要保留圖片內容當他可以被drawRect:這個方法調用夏块。
    exchangeSubviewAtIndex:withSubviewAtIndex:
    交換接收者的子視圖和給定的索引視圖
  • (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2
    參數(shù)
    index1
    一個需要取代索引2的子視圖
    index2
    一個需要取代索引1的子視圖

hitTest:withEvent:
返回接收者視圖層次中最遠的派生(包括它本身)的特定的點疏咐。

  • (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
    參數(shù)
    point
    接收者坐標系中的點
    event
    觸發(fā)這個方法的事件或者是如果這個方法被預調用就返回nil
    返回值
    一個視圖對象最遠的派生點。如果這個點位于接收者之外就返回nil
    討論
    這個方法貫穿視圖的層次發(fā)送pointInside:withEvent: 消息到每一個子視圖用來決定那個子視圖需要接收觸摸事件脐供。如果pointInside:withEvent: 返回YES浑塞,那么視圖的層次全部貫穿;否則視圖層次的分支是被否定的政己。你不太需要調用這個方法酌壕,但是你需要重寫它用來隱藏子視圖的觸摸事件。
    如果視圖是隱藏的歇由,禁止用戶交互的或者透明值小于01那么這個方法不可用

initWithFrame:
初始化并返回一個新的擁有特定幀矩形的視圖對象

  • (id)initWithFrame:(CGRect)aRect
    參數(shù)
    aRect
    一個幀矩形用來創(chuàng)建視圖對象卵牍。原始的幀在它的父視圖的坐標系中。設置這個屬性用來改變中心和邊界屬性沦泌。
    返回值
    一個初始化的視圖對象糊昙,如果沒有被創(chuàng)建那就返回nil
    討論
    一個新的視圖對象必須添加到視圖鏈中才能使用。這個方法為UIView類指出初始化對象谢谦。

insertSubview:aboveSubview:
在視圖層次頂層插入一個視圖

  • (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview
    參數(shù)
    view
    一個插入被用來放在頂層的視圖释牺。它將會從父視圖中移除如果它不是相鄰視圖
    siblingSubview
    一個相鄰視圖用來放在插入視圖的後面

insertSubview:atIndex:
插入視圖到指定的索引

  • (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
    參數(shù)
    view
    插入的視圖,這個值不能是nil
    index
    子視圖索引從0開始并且不能大于子視圖的數(shù)量

insertSubview:belowSubview:
插入視圖到顯示鏈的底層

  • (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
    參數(shù)
    view
    一個需要插入到其他視圖底部的視圖回挽。它將從它的父視圖移除如果它不與相鄰視圖的相鄰
    siblingSubview
    一個相鄰視圖將會在插入的視圖之上

isDescendantOfView:
返回一個布爾值指出接收者是否是給定視圖的子視圖或者指向那個視圖

  • (BOOL)isDescendantOfView:(UIView *)view
    參數(shù)
    view
    一個視圖用來測試子視圖在視圖層次中的關系
    返回值
    如果接收者是視圖的子視圖就返回YES没咙,或者視圖就是接收者;否則就是NO

layoutIfNeeded
排列子視圖如果需要的話

  • (void)layoutIfNeeded
    討論
    使用這個方法來關注子視圖的排列在繪制前

layoutSubviews
排列子視圖

  • (void)layoutSubviews
    討論
    當layoutIfNeeded被調用是子類用來重寫這個方法來排列子視圖千劈。默認實現(xiàn)這個方法不做任何事情祭刚。

pointInside:withEvent:
返回一個布爾值指出接收者是否包含特定的點

  • (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
    參數(shù)
    point
    一個在接收者坐標系內的點
    event
    這個方法的目標事件或者如果這個方法被預調用返回nil
    返回值
    如果點在接收者邊界內返回YES,否則返回NO

removeFromSuperview
把接收者從它的父視圖或者窗口移除墙牌,并在響應鏈中移除涡驮。

  • (void)removeFromSuperview
    討論
    接收者同時釋放;如果你計劃重用它憔古,要確定在發(fā)送消息前保持它并在添加到其他UIView對象作為子視圖後移除遮怜。 不要在顯示的時候調用

sendSubviewToBack:
移動指定的子視圖到它相鄰視圖的後面

  • (void)sendSubviewToBack:(UIView *)view
    參數(shù)
    view
    一個子視圖用來移動到它後面去

setNeedsDisplay
控制接收者的邊界矩形被標記為需要顯示
-(void)setNeedsDisplay
討論
默認情況下,視圖幾何圖形的改變自動重繪而不需要調用drawRect:方法鸿市。因此锯梁,你需要去請求視圖重繪當視圖的數(shù)據(jù)或者狀態(tài)改變的時候即碗。從這個意義上來說,向視圖發(fā)送setNeedsDisplay消息陌凳。任何UIView對象標記為需要顯示後將會在應用程序循環(huán)中自動重新繪制剥懒。

setNeedsDisplayInRect:
標記接收者中的特定的矩形區(qū)域為需要顯示,或者添加接收者現(xiàn)有的其他無效區(qū)域

  • (void)setNeedsDisplayInRect:(CGRect)invalidRect
    參數(shù)
    invalidRect
    標記接收者的矩形區(qū)域為無效的合敦;他需要在接收者坐標系中定義初橘。
    討論
    默認情況下,視圖幾何圖形的改變自動重繪而不需要調用drawRect:方法充岛。因此保檐,你需要去請求視圖重繪當視圖的數(shù)據(jù)或者狀態(tài)改變的時候。使用這個方法或者用setNeedsDisplay方法來標記視圖需要顯示的地方崔梗。

setNeedsLayout
設置當子視圖顯示的時候需要重新排列

  • (void)setNeedsLayout
    討論
    如果你調用這個方法在下一個顯示方法之間夜只,那么layoutIfNeeded排列子視圖;否則將不會做任何事情

sizeThatFits:
計算并返回一個最好的適應接收者子視圖的大小

  • (CGSize)sizeThatFits:(CGSize)size
    參數(shù)
    size
    接收者首選的尺寸
    返回值
    一個新的大小用來適應接收者子視圖
    討論
    默認的實現(xiàn)返回大小參數(shù) 子類重寫這個方法用來返回特定視圖的大小蒜魄。舉個粒子扔亥,UISwitch返回一個修正過的大小,UIImageView返回圖片的大小 這個方法并沒有改變接收者的大小

sizeToFit
調整大小并移動接收者視圖大小所以他包含了他的子視圖

  • (void)sizeToFit
    討論
    這個方法使用sizeThatFits: 方法來決定大小谈为。子類需要重寫sizeThatFits:用來計算正確的尺寸大小旅挤。默認的實現(xiàn)不做任何事情。

viewWithTag:
返回視圖的特定的標簽

  • (UIView *)viewWithTag:(NSInteger)tag
    參數(shù)
    tag
    一個用來在視圖中搜索的標簽
    返回值
    視圖在接收者層次中符合的標簽伞鲫,接收者也包含在搜索中粘茄。

willMoveToSuperview:
通知接收者他的父視圖將會改變到特定的父視圖(也有可能是nil)

  • (void)willMoveToSuperview:(UIView *)newSuperview
    參數(shù)
    newSuperview
    新的視圖對象將會是接收者新的父視圖
    討論
    子類可以重寫這個方法來做一些特定的行為

willMoveToWindow:
通知接收者它已經(jīng)被添加到特定的窗口對戲那個的視圖層次中(也有可能是nil)

  • (void)willMoveToWindow:(UIWindow *)newWindow
    參數(shù)
    newWindow
    一個窗口對象將會成為接收者新的視圖層次的根視圖
    討論
    子類可以重寫這個方法來提供一些特定的必要實現(xiàn)

willRemoveSubview:
由子類重寫用來在子視圖從接收者視圖中移除前執(zhí)行一些特定的方法。

  • (void)willRemoveSubview:(UIView *)subview
    參數(shù)
    subview
    子視圖將會被移除
    討論
    這個方法被調用當子視圖接收到removeFromSuperview消息或者子視圖從接收者視圖層次中移除因為它要被添加到其他視圖了
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末榔昔,一起剝皮案震驚了整個濱河市驹闰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撒会,老刑警劉巖嘹朗,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诵肛,居然都是意外死亡屹培,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門怔檩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褪秀,“玉大人,你說我怎么就攤上這事薛训∶铰穑” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵乙埃,是天一觀的道長闸英。 經(jīng)常有香客問我锯岖,道長,這世上最難降的妖魔是什么甫何? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任出吹,我火速辦了婚禮,結果婚禮上辙喂,老公的妹妹穿的比我還像新娘捶牢。我一直安慰自己,他們只是感情好巍耗,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布秋麸。 她就那樣靜靜地躺著,像睡著了一般芍锦。 火紅的嫁衣襯著肌膚如雪竹勉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天娄琉,我揣著相機與錄音,去河邊找鬼吓歇。 笑死孽水,一個胖子當著我的面吹牛,可吹牛的內容都是我干的城看。 我是一名探鬼主播女气,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼测柠!你這毒婦竟也來了炼鞠?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤轰胁,失蹤者是張志新(化名)和其女友劉穎谒主,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赃阀,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡霎肯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了榛斯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片观游。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖驮俗,靈堂內的尸體忽然破棺而出懂缕,到底是詐尸還是另有隱情,我是刑警寧澤王凑,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布搪柑,位于F島的核電站吮蛹,受9級特大地震影響,放射性物質發(fā)生泄漏拌屏。R本人自食惡果不足惜潮针,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倚喂。 院中可真熱鬧每篷,春花似錦、人聲如沸端圈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舱权。三九已至矗晃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宴倍,已是汗流浹背张症。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸵贬,地道東北人俗他。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像阔逼,于是被迫代替她去往敵國和親兆衅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容