UIView(UIViewHierarchy)

在app上看得見的摸得著的都是UIView以及它的子類對(duì)象傍药。
UIWindow UILabel UIPickerView UIProgressView UIActivityIndicatorView UIImageView UITabBar UIToolbar UINavigationBar UITableViewCell UIActionSheet UIAlertView UIScrollView UISearchBar UIWebView UIControl這些類的父類都是UIView焕窝,UIView的方法和屬性這些子類都可以使用扑毡,所以UIView在iOS開發(fā)中非常重要戳葵。

  1. view的父視圖
    @property(nonatomic,readonly) UIView *superview;
  2. view的所有子視圖筋量。這是個(gè)數(shù)組植袍,當(dāng)需要view上的某個(gè)子視圖時(shí)根據(jù)數(shù)組下標(biāo)取或遍歷出來
    @property(nonatomic,readonly,copy) NSArray *subviews;
  3. view的窗口
    @property(nonatomic,readonly) UIWindow *window;
  4. 從父視圖上移除
    - (void)removeFromSuperview;
  5. 插入一個(gè)子視圖,并指定索引位置
    - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
  6. 交換兩個(gè)位置的子視圖
    - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;
  7. 添加一個(gè)子視圖
    - (void)addSubview:(UIView *)view;
  8. 插入一個(gè)子視圖在某個(gè)子視圖的下面
    - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
  9. 插入一個(gè)子視圖在某個(gè)子視圖的上面
    - (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
  10. 將一個(gè)子視圖移到前面
    - (void)bringSubviewToFront:(UIView *)view;
  11. 將一個(gè)子視圖移到后面
    - (void)sendSubviewToBack:(UIView *)view;
    回調(diào)的方法

  1. view已經(jīng)添加子視圖
    - (void)didAddSubview:(UIView *)subview;
  2. view將要移除子視圖
    - (void)willRemoveSubview:(UIView *)subview;
  3. view將要移動(dòng)到新的父視圖
    - (void)willMoveToSuperview:(UIView *)newSuperview;
  4. view已經(jīng)移動(dòng)到父視圖
    - (void)didMoveToSuperview;
  5. view將要移動(dòng)到新的window
    - (void)willMoveToWindow:(UIWindow *)newWindow;
  6. view已經(jīng)移動(dòng)到window
    - (void)didMoveToWindow;

  1. 是否是指定view的子視圖打颤。返回YESNO
    - (BOOL)isDescendantOfView:(UIView *)view;
  2. 根據(jù)tag值取出這個(gè)view
    - (UIView *)viewWithTag:(NSInteger)tag;
  3. 下面三個(gè)方法和布局相關(guān)暴拄,感興趣的朋友可以深入研究漓滔。
    UIViewsetNeedsDisplaysetNeedsLayout方法。首先兩個(gè)方法都是異步執(zhí)行的乖篷。而setNeedsDisplay會(huì)自動(dòng)調(diào)用drawRect方法响驴,這樣可以拿到UIGraphicsGetCurrentContext,就可以畫畫了撕蔼。而setNeedsLayout會(huì)默認(rèn)調(diào)用layoutSubViews豁鲤,就可以處理子視圖中的一些數(shù)據(jù)。
    綜上所訴鲸沮,setNeedsDisplay方便繪圖琳骡,而layoutSubViews方便出來數(shù)據(jù)。
    - (void)setNeedsLayout;
  4. 如果需要進(jìn)行布局
    - (void)layoutIfNeeded;
  5. 可以在自己定制的視圖中重載這個(gè)方法诉探,用來調(diào)整子視圖的尺寸和位置日熬。自動(dòng)調(diào)用layoutIfNeeded方法棍厌。
    layoutSubviews在以下情況下會(huì)被調(diào)用:
    1.init初始化不會(huì)觸發(fā)layoutSubviews肾胯,但是是用initWithFrame進(jìn)行初始化時(shí),當(dāng)rect的值不為CGRectZero時(shí),也會(huì)觸發(fā)
    2.addSubview會(huì)觸發(fā)layoutSubviews
    3.設(shè)置viewframe會(huì)觸發(fā)layoutSubviews耘纱,當(dāng)然前提是frame的值設(shè)置前后發(fā)生了變化
    4.滾動(dòng)一個(gè)UIScrollView會(huì)觸發(fā)layoutSubviews
    5.旋轉(zhuǎn)screen會(huì)觸發(fā)父UIView上的layoutSubviews事件
    6.改變一個(gè)UIView大小的時(shí)候也會(huì)觸發(fā)父UIView上的layoutSubviews事件
    - (void)layoutSubviews;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末敬肚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子束析,更是在濱河造成了極大的恐慌艳馒,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件员寇,死亡現(xiàn)場離奇詭異弄慰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蝶锋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門陆爽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扳缕,你說我怎么就攤上這事慌闭。” “怎么了躯舔?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵驴剔,是天一觀的道長。 經(jīng)常有香客問我粥庄,道長丧失,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任惜互,我火速辦了婚禮布讹,結(jié)果婚禮上科侈,老公的妹妹穿的比我還像新娘。我一直安慰自己炒事,他們只是感情好臀栈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挠乳,像睡著了一般权薯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睡扬,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天盟蚣,我揣著相機(jī)與錄音,去河邊找鬼卖怜。 笑死屎开,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的马靠。 我是一名探鬼主播奄抽,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼甩鳄!你這毒婦竟也來了逞度?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤妙啃,失蹤者是張志新(化名)和其女友劉穎档泽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揖赴,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡馆匿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了燥滑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渐北。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖突倍,靈堂內(nèi)的尸體忽然破棺而出腔稀,到底是詐尸還是另有隱情,我是刑警寧澤羽历,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布焊虏,位于F島的核電站,受9級(jí)特大地震影響秕磷,放射性物質(zhì)發(fā)生泄漏诵闭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望疏尿。 院中可真熱鬧瘟芝,春花似錦、人聲如沸褥琐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敌呈。三九已至贸宏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磕洪,已是汗流浹背吭练。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留析显,地道東北人鲫咽。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像谷异,于是被迫代替她去往敵國和親分尸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容