在自定义视图和视图控制器中使用AutoLayout

时间:2014-11-01 05:31:06

标签: ios objective-c iphone uiimageview autolayout

我一直在使用旧的做事方式,通过在各个帧上设置原点和大小,并在屏幕上准确显示我想要的内容。现在我正在尝试使用AutoLayout。但我有点麻烦,我似乎无法找到一个确切的答案。

我习惯主要使用代码创建视图和查看控制器。因此,我熟悉创建自定义视图类,它结合了我喜欢的多个视图。例如,我有一个自定义的Profile Pin视图,它将UIImageView和UILabel组合成一个视图来表示profileImage和username。然后,我将这些自定义视图用作其他视图和视图控制器的一部分。

在我看来,自动布局适用于需要在屏幕方向更改时重新调整大小调整的视图,或者用于重新调整不同屏幕大小的子视图。

我的问题是,我是否应该一丝不苟,并使用autolayout进行具有静态展示位置和尺寸的自定义视图?就像我描述的Profile Pin视图中的UIImageVIew和UILabel视图一样? UIImageView和UILabel视图的位置不会改变,但Profile Pin视图(它们的父级)的位置可能会改变。我应该将Autolayout用于一切吗?或者这不是AutoLayout的用途吗?

1 个答案:

答案 0 :(得分:1)

如果您的自定义视图包含静态内容,其中子视图的大小和位置永远不会更改,则可以随意在内部使用手动框架。在这种情况下,Autolayout并没有太大的好处。

这允许任何父视图使用Autolayout来定位和了解自定义视图的大小。

许多UIKit组件都使用这种技术 - intrinsicContentSize是一个很好的例子。