我有一系列 UIButtons 用于更新几个 UILabel 并启动对象从屏幕外到屏幕上的动画。进展是这样的。按钮 1 和 2 是可见的,当用户按下按钮时,UILabel 会更新,并且新的 UIImageView 会在屏幕上显示动画。这在第一次迭代中运行良好,在第二轮中,隐藏的按钮 3 和 4 变得可见。一旦用户选择按钮 3 或 4,另一个 UIImageView 应该动画到屏幕上(在其他图像的顶部......“堆叠”它们)。正在发生的是 UIImageView 在用户按下按钮 1 或 2 后动画,消失,并且没有动画。仅当 UILabel 必须根据按钮选择进行更新时才会发生这种情况。在 UILabel 中不需要更新,动画效果很好。
相关代码:
-(IBAction)didTapSizeButton:(id) sender {
if ([sender tag] == 1) {
sizeLabel.text = @"12 oz";
}
else if ([sender tag] == 2) {
sizeLabel.text = @"24 oz";
}
if (coasterTwo.center.x != 150) {
[UIView animateWithDuration:0.35
delay:0
options:(UIViewAnimationOptionCurveEaseOut)
animations:^{
coasterTwo.center = CGPointMake(150, 220);
} completion:^(BOOL finished) {
}];
}
containerOne.hidden = NO;
containerTwo.hidden = NO;
}
-(IBAction)didTapContainerButton:(id)sender {
if ([sender tag] == 3) {
containerLabel.text = @"Bottle";
}
else if ([sender tag] == 4) {
containerLabel.text = @"Can";
}
if (coasterTwo.center.x == 150 && coasterThree.center.x != 150) {
[UIView animateWithDuration:0.35
delay:0
options:(UIViewAnimationOptionCurveEaseOut)
animations:^{
CGPoint center = coasterThree.center;
center.x += 305;
coasterThree.center = center;
}
completion:^(BOOL finished){
}];
}
}
一旦我返回更新 UILabel,UIImageViews 显然会重置到它们的起始位置......我只是不知道如何防止这种情况。