动画不是源于我想要的地方吗?为什么?

时间:2014-04-20 09:12:43

标签: ios objective-c

我正在为我的游戏做倒计时钟。我希望数字是动画的,所以它们来自屏幕中间,然后在中间消失。但是当我运行代码时,它们将来自屏幕的右下角而不是我指定的位置(160,284)。问题是什么?

} else if (startgameEveryInt == 3) {
    UIImageView *Object = [[UIImageView alloc] initWithFrame:CGRectMake(160,284,280 ,280)];
    [Object setImage:[UIImage imageNamed:@"1.png"]];
      [self.view addSubview:Object];
    [UIView animateWithDuration:1
                     animations:^{
                         Object.alpha = 0;
                         Object.frame = CGRectMake(160, 284, 50, 50);
                     }
                     completion:^(BOOL finished){
                         startgameEveryInt = 0;
                         [startgametimer invalidate];
                         startgametimer = nil;
                         [self startit];
                         for (UIView *view in self.view.subviews) {
                             if (view.tag > 10) {
                                 [view removeFromSuperview];
                             }
                         }
                     }];
}

1 个答案:

答案 0 :(得分:0)

如果在动画之前将CGRect设置更改为for -

CGRectMake((self.view.frame.size.width-160)/2, (self.view.frame.size.height-284)/2, 160, 284)

然后像之前一样改变对象的大小

CGRectMake((self.view.frame.size.width-50)/2, (self.view.frame.size.height-50)/2, 50, 50)

这应该适合您在屏幕中间。 CGRect的X,Y位置会将对象的顶部LHS点置于该位置。这就是为什么你的物体看起来像是在右下方。

我希望这会有所帮助

干杯,吉姆