4
我有UIView
,它有自動佈局限制。我創建它與框架CGRectZero
。所以我不是真正的大小。這將取決於超視圖。當UIView獲得框架時,Autolayout檢測到
但我想知道什麼時候我的觀點得到一個框架,我可以用於我的計算。
我有UIView
,它有自動佈局限制。我創建它與框架CGRectZero
。所以我不是真正的大小。這將取決於超視圖。當UIView獲得框架時,Autolayout檢測到
但我想知道什麼時候我的觀點得到一個框架,我可以用於我的計算。
所以你應該不需要知道任何有關框架。儘管如果您確實需要知道,您可以在視圖中實現-layoutSubviews
,或在視圖控制器級別實現-viewDidLayoutSubviews
。
在調用super
之後,應該將幀設置爲AutoLayout將其解析爲的內容。
也是良好的做法,採取的是以下帖子#7:Forget frame。
我也強烈推薦閱讀關於AutoLayout流程here。
ok我有一個包含另一個視圖的視圖B.而視圖B有圖像。一切都基於自動佈局。那麼似乎我需要繼承UIView B來執行-layouts子視圖?因爲我對作爲視圖B一部分的圖像感興趣,所以我需要通過CALayer將頂角半徑添加到圖像視圖。 – 2015-02-11 23:10:19
如果您只需要爲圖像視圖添加角半徑,則無需擔心幀,只需在視圖A的awakeFromNib或其initWithFrame中執行此操作即可。如果你有一個完整的故事板設置,並且你的視圖都不是自定義的UIView子類,那麼你可以添加一個從視圖B到視圖控制器的插座,並在viewDidLoad中設置圓角半徑。 – Daniel 2015-02-11 23:13:59
雖然如果您忘記了框架,您將如何處理圖層更改?那麼當你處理'CGRect'值時,不一定直接與視圖相關? – BridgeTheGap 2016-06-14 12:21:15