我正在与一位设计师合作为 iOS 构建一个简单的游戏。我们一直在使用故事板来构建菜单场景。
我们有自定义视图对象,它们由多个子视图(多个按钮、标签等)组成,我们希望在关联的视图控制器加载后在屏幕上设置动画/滑动。
如何为这些使用 Storyboard 构建的视图的位置设置动画?我似乎无法弄清楚在 ViewController 生命周期中的哪个位置实现动画,因为情节提要中指定的 x/y 位置似乎总是覆盖我在 viewDidLoad 或 viewDidAppear 等中实现的动画。
在一个完美的世界中,我的设计师将能够将视图放置在故事板中所需的“目标”位置,然后我会在代码中将其重新定位到屏幕外,并在屏幕上将其动画化回目标位置。从工作流程的角度来看,这将是最简单的。
但我们也可以将视图定位在故事板上的屏幕外,然后在页面加载后简单地将其滑动到屏幕上。例如,假设在情节提要上,viewIWantToAnimate的初始帧位置为 (0, -100)。我想把它滑到(0,0)......
有没有一种简单的方法来做类似的事情:
@interface MyGameViewController : UIViewController
{
__weak IBOutlet UIView *viewIWantToAnimate;
}
@implementation MyGameViewController
- (void)viewDidAppear:(BOOL)animated
{
[UIView animateWithDuration:0.1f
animations:^{
CGRect onScreenFrame = CGRectMake(0,0, viewIWantToAnimate.frame.size.width, viewIWantToAnimate.frame.size.height )
viewIwantToAnimate.frame = onScreenFrame;
}];
}
@end