1

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

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

3 回答 3

1

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

于 2012-08-28T11:47:05.397 回答
1

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

希望有帮助。

于 2012-08-28T13:09:32.783 回答
0

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

于 2012-08-28T13:05:04.100 回答