2014-11-01 111 views
0

通過設置單個框架的原點和大小,以及在屏幕上完全按照我希望的方式使用舊的方法,我已經使用了很久的舊辦法。現在我正在嘗試使用AutoLayout。但是我有一些麻煩,我似乎找不到確切的答案。在自定義視圖和視圖控制器中使用AutoLayout

我習慣主要使用代碼來創建視圖和視圖控制器。因此,我已經熟悉創建自定義視圖類,它將多個視圖合併到我的喜好中。例如,我有一個自定義的Profile Pin視圖,它將UIImageView和UILabel組合成一個視圖來表示profileImage和用戶名。然後我在不同的地方使用這些自定義視圖作爲其他視圖和視圖控制器的一部分。

在我看來,自動佈局適用於需要在屏幕方向更改時重新調整尺寸或重新調整不同屏幕尺寸子視圖的視圖。

我的問題是,我應該一絲不苟,爲具有靜態位置和大小的自定義視圖使用自動佈局?就像我描述的Profile Profile視圖中的UIImageVIew和UILabel視圖一樣? UIImageView和UILabel視圖的位置不會更改,但Profile Pin視圖(它們的父級)的位置可能會變化。我應該使用Autolayout做什麼?或者這不是AutoLayout的目的?

+0

Autolayout在您希望您的佈局依賴於視圖所在的超級視圖的任何時候都非常有用。例如,如果您始終希望將視圖放置在距離超級視圖邊緣一定距離的位置,或者希望視圖具有與超級視圖相對的邊界。 – rfj001 2014-11-01 06:03:02

回答

1

如果您的自定義視圖具有靜態內容,而其子視圖的大小和位置永遠不會改變,那麼您可以隨意在內部使用手動框架。在這種情況下,Autolayout沒有太大的好處。

應該做什麼,雖然是覆蓋intrinsicContentSize並返回正確的大小。這允許任何父視圖使用Autolay來定位和知道自定義視圖的大小。

許多UIKit組件都使用這種技術 - UISwitch就是一個很好的例子。

+0

啊。這就是我希望聽到的那種。謝謝! – projectnard 2014-11-02 20:42:49

相關問題