1.某個(gè)控件不顯示
1.frame的尺寸和位置對(duì)不對(duì)
2.hidden是否為YES
3.有沒有添加到父控件中
4.alpha 是否 < 0.01
5.被其他控件擋住了
6.frame在屏幕外面
7.沒有添加到父控件中 (view的層次結(jié)構(gòu)中)
8.控件的顏色和父控件一樣
9.父控件的前面幾種情況
2.autoLayout
1、如果使用autolayout來(lái)約束控件,那frame就失效了,官方也不建議我們?cè)僭O(shè)置frame了.
2、UIImageView,UILabel不需要設(shè)置寬高,會(huì)根據(jù)內(nèi)容的大小自動(dòng)確定寬高。
3、使用autolayout的兩個(gè)前提:
- 給哪個(gè)控件添加約束,就把哪個(gè)控件的autoresizing關(guān)閉。
- 一定要添加到控制器的view的層次結(jié)構(gòu)中。
4、注意:直接把改變約束的代碼,放到動(dòng)畫中是不會(huì)執(zhí)行的。
5、layoutIfNeeded,讓系統(tǒng)去改變控件真實(shí)的frame,讓本控件及其子控件重新布局
6、計(jì)算scrollView內(nèi)部的子控件需要注意它內(nèi)部的子控件有兩個(gè)滾動(dòng)條。