我正在为我的游戏做倒计时钟。我希望数字是动画的,所以它们来自屏幕中间,然后在中间消失。但是当我运行代码时,它们将来自屏幕的右下角而不是我指定的位置(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];
}
}
}];
}
答案 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点置于该位置。这就是为什么你的物体看起来像是在右下方。
我希望这会有所帮助
干杯,吉姆