最佳实践:将视图动画显示到iPhone上

时间:2008-12-26 22:45:16

标签: iphone cocoa cocoa-touch core-animation

如果我想使用Core Animation来淡出显示内外的视图 - 将UIView放在与被绘制的视图相同的NIB中是一种好习惯吗?我应该在另一个NIB文件中构建视图并从那里加载它吗?我希望在用户操作时同时将三个小视图动画显示。我想在IB中构建视图。在这里寻找最佳实践类型的回应。

3 个答案:

答案 0 :(得分:3)

您可以将三个视图作为单个XIB中的单独UIViews,或者在一个视图中布置三个视图(否则,您必须将它们放在代码中)。将它们的初始alpha值设置为0.0,然后淡入它们就像:

[UIView beginAnimations:@"fade" context:nil];
[UIView setAnimationDuration:1.0];
myViewOne.alpha = 1.0;
myViewTwo.alpha = 1.0;
myViewThree.alpha = 1.0;
[UIView commitAnimations];

如果您计划将它们全部显示在一起,我不会将三个视图中的每一个放在单独的XIB中。如果它们是单独的“屏幕”的一部分,我通常只会破坏它们的东西,它们永远不会一起显示。

答案 1 :(得分:1)

Apple建议每个UIViewController / UIView组合使用一个XIB。这是因为如果您在同一个XIB中放置多个ViewCOntrollers和Views,它们将同时加载并占用内存用于XIB的所有元素,即使屏幕上只有一个。

推荐的方法是使用MainWindow.xib为您计划加载的每个xib(UIViewController / UIView组合)提供代理。

如果您只是加载子视图,如上所述,您可以在同一个xib中构建它们,或者在viewDidLoad或viewWillAppear中以编程方式构建它们(在xib加载“基本”视图后将调用它们。

答案 2 :(得分:0)

我认为应该尽可能多地使用界面构建器...所以我建议每个视图都是它自己的xib文件...记住你可以构建一个从UIViewController扩展的类层次结构,如果有很多重叠的话视图之间的功能。