在渲染屏幕之前,我如何制作/操纵使用Storyboard布置的UIViews的位置?

时间:2013-09-18 12:37:17

标签: ios animation uiviewcontroller xcode-storyboard

我正在与设计师合作为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

0 个答案:

没有答案