gpt4 book ai didi

objective-c - 为什么不调用 -layoutSubviews?

转载 作者:可可西里 更新时间:2023-11-01 06:23:37 25 4
gpt4 key购买 nike

我正在尝试为某些 subview 创建自定义布局。我的文件是一个 ViewController,因此我必须将其 View 称为 self.view。 subview 是 self.view 的 subview 。

当我在 viewDidLoad 中显式调用 [self layoutSubviews]; 时,它将毫无问题地执行 -layoutSubviews 中的代码。

但是,我读到我不应该显式调用 -layoutSubviews,或者在 self 上调用它,因为那是一个 UIViewController。我尝试通过这样调用它来实现 -setNeedsLayout:[self.view setNeedsLayout]viewDidLoad 中,并取出 的显式调用>-layoutSubviews 但保留其声明。但这似乎没有用。

我链接到 an article about when layoutSubviews is called当我添加 subview 时似乎应该调用它,但这似乎并没有发生在这里。

如果我想安全起见,并按照 UIView 及其方法的类引用中建议的方式做事,我应该如何才能同时使用这两种方法?

最佳答案

没有 -[UIViewController layoutSubviews]-[UIViewController setNeedsLayout] 这样的东西。这些是 UIView 方法。

如果你想使用 layoutSubviews 系统,你需要继承你的顶级 UIView 并在那里实现它。默认情况下,它什么都不做。如果你想使用 View Controller 来布局你的 View ,那么我会给这些方法命名其他的东西(比如 layout,因为 View Controller 没有“ subview ”)以避免与 混淆UIView.

关于objective-c - 为什么不调用 -layoutSubviews?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com