带和不带自动布局的自定义控件

Custom control with and without autolayout

我将创建一个自定义控件(基于 UIView)。

有没有一种方法既可以与使用自动布局的 UIViewController 一起工作,也可以与不使用自动布局的 UIViewController 一起工作?

该控件在这两种情况下都应该有效。不同之处在于,在一种情况下,您将使用约束对其进行布局,而在另一种情况下,您将以编程方式设置框架。

如果您的控件包含其他子视图,那么如何配置它们很重要。例如,如果您在 initWithFrame: 中设置子视图并使用给定的框架对其进行布局(意味着静态框架,而不是约束),在自动布局 viewControllers 中,框架将不会得到更新。

但是,使用约束布局子视图对非自动布局没有影响viewControllers。在自定义控件的给定静态框架中,子视图将根据您的约束进行布局。

这是一个笼统的解释,因为我对您的特定控制器了解不多。希望这是有道理的,你会发现有帮助。