2017-05-01 61 views
0

有人知道translatesAutoresizingMaskIntoConstraints設置爲false,爲所有子視圖的含義是什麼?設置translatesAutoresizingMaskIntoConstraints所有子視圖

考慮以下情況:根據我的測試,一切正常

extension UIView { 
    public func setAutoresizingMaskIntoConstraintsForAllSubviews() { 
     for v in self.subviews { 
      v.translatesAutoresizingMaskIntoConstraints = false 
     } 
    } 
} 
... 
let cell = UITableViewCell() 
cell.setAutoresizingMaskIntoConstraintsForAllSubviews() //or 
cell.contentView.setAutoresizingMaskIntoConstraintsForAllSubviews() 

。我沒有看到任何UIKit組件的約束衝突。

每蘋果的文檔:

默認情況下,該屬性設置爲true,您 編程創建任何觀點。如果您在Interface Builder中添加視圖,該 系統自動將此屬性設置爲false。

https://developer.apple.com/reference/uikit/uiview/1622572-translatesautoresizingmaskintoco

回答

2

雖然可能沒有什麼本質上與...

首先,不會打子視圖的子視圖,除非你把它遞歸。

第二,如果你讓它遞歸,你最終會設置的東西像滾動視圖滾動指標,按鈕背景圖像視圖屬性等

第三,因爲你這樣做,因爲你是創建視圖編程,你爲什麼不明確地設置在該代碼的價值?

而且,在一般情況下,只是一味的東西扔一個「包羅萬象」的代碼,因爲你不知道發生了什麼事情是一個非常糟糕的主意。

+0

唐本次討論中我們會談的一個上前嘗試從我們的觀點清理樣板代碼。我們沒有討論你說除了我沒有考慮你相同的原因遞歸選項的一切。謝謝! –

相關問題