Я расширил и переместил метку (instructionLabel), затем вернул ее к исходному размеру, но оставил в новом положении.
[UIView animateWithDuration:0.5
animations:^{
CGAffineTransform scale = CGAffineTransformMakeScale(2.0, 2.0);
CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, -70.0); // up 70
self.instructionsLabel.transform = CGAffineTransformConcat(scale,translate);
}
completion:^(BOOL finished) {
[UIView animateWithDuration:0.25
animations:^{
CGAffineTransform scale = CGAffineTransformMakeScale(1.0,1.0);
CGAffineTransform translate = CGAffineTransformMakeTranslation(0,-70.0); //left in place up 70
self.instructionsLabel.transform = CGAffineTransformConcat(scale, translate);
}
completion:^(BOOL finished) {}
];
Позже я явно использую CGPointMake, чтобы вернуть метку на исходное место, но она остается в переведенной позиции (на 70 пунктов выше исходного места).
instructionsLabel.frame = CGRectMake(384, 601, 655, 40);
//Adding this doesn't make any difference, in or out.
instructionsLabel.center=CGPointMake(384, 601);
С помощью Breaks и NSLog я подтвердил, что операторы CGPointMake и CGRectMake выполняются... они просто не работают после этого аффинного преобразования. Кто-нибудь знает, почему? (Я не хочу возвращать метку обратно сразу после процедуры преобразования, но мне, возможно, придется это сделать, если я не могу понять, почему процедура CGPointMake этого не делает.)
Спасибо за любые предложения. -Роб