1、任何原因引起view的尺寸被改變
2、呼叫viewcontroller的「viewwilllayoutsubviews」方法
3、未啟用autolayout情況,呼叫「layoutsubviews」
4、啟用autolayout情況,呼叫viewcontroller的"updateviewconstraints"方法。在這個方法裡,會呼叫所有subview的「updateconstraints」方法。
5、當介面被重新整理後,呼叫viewcontroller的「viewdidlayoutsubviews」
第二種:
另外一種:
當我們使用
autolayout
做適配時,可能會有這樣的需求,就是在想在適配完成前就取得子控制項的真實
frame
,來做一些操作。比如我們想把乙個正方形的uiimageview剪成乙個圓形,這時候就需要這麼做
[objc]view plain
copy
self
.imageview
.layer
.cornerradius
= self
.imageview
.frame
.size
.width/ 2
; self
.imageview
.clipstobounds
= yes
之前我們只要把上面兩句放在
layoutsubviews: 方法中設定即可,因為在layoutsubviews: 方法中,我們可以設定子控制項的frame。但是一旦我們使用的autolayout適配後,在這個方法中就不能獲得子控制項的真實frame,因為在此時,autolayout的適配並沒有完成。那麼這時我們就必須這麼做了:
[objc]view plain
copy
- (void
)layoutsubviews
實際上,autolayout的適配是在呼叫n次(子控制項個數)控制器的viewdidlayoutsubviews:方法後才完成的,在stackoverflow上也有人建議在此方法中做操作。但是如果像是自定義的cell這麼去做,肯定不方便,再者關鍵是viewdidlayoutsubviews:會呼叫多次,會影響使用者體驗和效能。
Zookeeper如何正確設定和獲取watcher
watcher 設定是開發中最常見的,需要搞清楚watcher的一些基本特徵,對於exists getdata getchild對於節點的不同操作會收到不同的 watcher資訊 state 112 會話超時狀態 state 113 認證失敗狀態 state 1 連線建立中 state 2 暫時不清...
php中如何獲取檔案的正確路徑
以上面的為例子 我們這裡需要使用到 file echo print r files echo server document root 獲取檔案伺服器的根目錄。echo dirname file 獲取當前檔案的目錄 echo file 獲取當前檔案的目錄和檔名。echo basename file ...
如何正確處理中病毒後的電腦
如何正確處理中病毒後的電腦 常在河邊走,哪能不濕鞋呢?網際網路上各種病毒在不停的流竄,作為連線在網路上的電腦,儘管我們已經做了各種防範,但還是不能避免,稍不留神就會中招。而現在我們學到的多是如何防範電腦中毒的知識,但是對於已經中毒的電腦如何處理卻知之甚少。下面我們就向大家介紹中毒後一些緊急處理措施。...