0

我不知道,为什么它不起作用。

我要做的就是在 viewDidLoad 中创建一个简单的 UIView 动画。

这是我的代码:

[UIView animateWithDuration:3.0f animations:^{
    [self.headline setCenter:CGPointMake(0.0, 200.0)];
}];

什么都没发生。当我测试在该特定对象上调用动画方法的一般方法时,如下所示:

[UIView animateWithDuration:3.0f animations:^{
    [self.headline setAlpha:0.0];
}];

有用!!!为什么我无法在屏幕上移动视图?我正在使用最新的 Xcode 4.5。

感谢您的任何建议!

更新:

当我在代码中手动添加视图时,它可以工作。但是对于我在 Interface Builder 中创建为 Outlets 的 UIView,它不起作用。

UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 200.0, 100.0)];
testLabel.backgroundColor = [UIColor redColor];

[self.view addSubview:testLabel];

[UIView animateWithDuration:3.0 animations:^{
    testLabel.center = CGPointMake(0.0, 200);
}];

所以很明显我在 .xib 文件中做错了什么

4

2 回答 2

2

不要在 viewDidLoad 中这样做。那个时候还没有这个观点。在 viewDidAppear 中尝试一下。

于 2012-10-04T10:23:09.747 回答
0

好吧,我认为缺少动画的原因是我从视图控制器中调用了一个不同的推送导航动画,它在屏幕上推送实际视图:

- (IBAction)goForSelection:(id)sender
{
    SelectionViewController *selectionViewController = [[SelectionViewController alloc] initWithNibName:@"SelectionViewController" bundle:nil];

    //[self.navigationController pushViewController:selectionViewController animated:YES];

    [UIView transitionWithView:self.navigationController.view duration:1.0 options:UIViewAnimationOptionTransitionFlipFromRight animations:^{
        [self.navigationController pushViewController:selectionViewController animated:NO];
    } completion:^(BOOL finished) {
        [selectionViewController startIntroAnimation];
    }];
}

首先,我检查了使用默认导航控制器 segue 时会发生什么。令我惊讶的是,动画确实开始了。然后我将调用插入[selectionViewController startIntroAnimation]到完成块中,这也可以。

于 2012-10-04T16:04:09.090 回答