Xcode 既然Interface Builder中已经设置了内部大小,为什么要调用内部大小ContentSize函数?

Xcode 既然Interface Builder中已经设置了内部大小,为什么要调用内部大小ContentSize函数?,xcode,swift,uiview,interface-builder,ios-autolayout,Xcode,Swift,Uiview,Interface Builder,Ios Autolayout,在《Apple Swift编程指南》一章中,我首先在Interface Builder中设置自定义视图的固有大小 但是稍后,指南告诉我调用自定义类中的intrinsicContentSize函数: 是否需要实现intrinsicContentSize方法以及在Interface Builder中指定内部大小,或者这是一个冗余步骤,这意味着只要其中一个步骤就足以使接口正常工作?从方法intrinsicContentSize返回的CGSize是自定义视图的实际intrinsicContentS

在《Apple Swift编程指南》一章中,我首先在Interface Builder中设置自定义视图的固有大小


但是稍后,指南告诉我调用自定义类中的
intrinsicContentSize
函数:



是否需要实现
intrinsicContentSize
方法以及在Interface Builder中指定内部大小,或者这是一个冗余步骤,这意味着只要其中一个步骤就足以使接口正常工作?

从方法
intrinsicContentSize
返回的
CGSize
是自定义视图的实际intrinsicContentSize

由于
intrinsicContentSize
函数的返回值仅在运行时确定,因此界面生成器需要一些占位符值来可视化UI。如果不在界面生成器中输入这些占位符值,您可能会收到一些关于缺少约束的警告。但是,无论您输入什么,都将仅用作占位符,从方法
intrinsicContentSize
返回的
CGSize
仍然是应用程序运行时使用的实际值,忽略在界面生成器中输入的值

当您将内部大小更改为占位符时,Xcode(7.3.1)显示如下解释:
从方法
intrinsicContentSize
返回的
CGSize
是自定义视图的实际intrinsicContentSize

由于
intrinsicContentSize
函数的返回值仅在运行时确定,因此界面生成器需要一些占位符值来可视化UI。如果不在界面生成器中输入这些占位符值,您可能会收到一些关于缺少约束的警告。但是,无论您输入什么,都将仅用作占位符,从方法
intrinsicContentSize
返回的
CGSize
仍然是应用程序运行时使用的实际值,忽略在界面生成器中输入的值

当您将内部大小更改为占位符时,Xcode(7.3.1)显示如下解释: