1
我展開並移動了一個標籤(instructionLabel),然後將其恢復到原始大小,但將其留在新的位置。仿射轉換可防止CGPoint轉移
[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);
我已經休息和NSLog的驗證了CGPointMake和CGRectMake語句達到...他們只是不仿射變換後的工作。有誰知道爲什麼? (我不想在翻譯過程後立即將標籤移回,但如果我不知道爲什麼CGPointMake例程不這樣做)。
感謝您的任何建議。 -Rob