【问题标题】:UIViewController best practice - loadingUIViewController 最佳实践——加载
【发布时间】:2012-08-28 11:43:05
【问题描述】:

我有一个带有一些 UI 接口的简单视图控制器。我正在使用 ARC 我在 viewDidLoad 中进行了其他设置,例如设置标签属性、if 语句以动态调整某些组件的大小等。我的问题是 viewDidLoad 是放置此代码的最佳位置吗?我已经发布了我在该方法中拥有的一些代码的示例。谢谢。

self.messageTitleLabel.numberOfLines = 1;
self.messageTitleLabel.adjustsFontSizeToFitWidth = YES;
self.messageTitleLabel.minimumFontSize = 15.0f;
[self someMethodToReframeLabelHeight];

【问题讨论】:

  • 对于这样的东西,为什么不在界面生成器中这样做呢?

标签: ios uiviewcontroller uikit viewdidload


【解决方案1】:

是的,很棒的地方。回想一下,在 iOS 中,由于内存压力,系统可能会卸载您的视图,因此您稍后可能会再次收到此消息。因此,在那里有代码来调整新加载的视图是完美的。

【讨论】:

    【解决方案2】:

    正如 David 所说,是的,在这里执行额外的设置是完美的。但请注意,在viewDidLoad 中,尚未为其视图设置几何图形。因此,如果您需要在控制器视图中安排子视图的位置,请使用 viewWillAppearviewDidAppear

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      是的。正如 David H 所提到的,viewDidLoad 是出于内存原因的好地方 - 如果您的应用程序收到内存警告,您的视图将在下次加载时再次设置。不过,使用viewDidLoad 的另一个重要原因是,如果您尝试将上述代码放在initinitWithWhatever: 中,您会遇到一些奇怪的问题。原因是在init方法中,视图还没有被创建并从它的.nib中唤醒,从那里访问它会打乱整个视图控制器循环。如果您不使用 .nib,您还可以在 -loadView 中进行一些基本设置。只要确保在您覆盖其中一种方法时调用super

      【讨论】:

        猜你喜欢
        • 2013-11-04
        • 1970-01-01
        • 1970-01-01
        • 2012-01-05
        • 2010-10-03
        • 2011-04-26
        • 1970-01-01
        • 2020-01-21
        • 2010-12-15
        相关资源
        最近更新 更多