setAnimationBeginsFromCurrentState
ブロックで設定する必要があります。その方法に関するドキュメントや例が見つかりません。
これを変換する必要があります:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES]; //The problem
[UIView setAnimationDuration:kKeyboardAnimationDuration];
[self.view setFrame:viewFrame];
[UIView commitAnimations];
プロパティを設定するだけでなく、ブロックに入れsetAnimationBeginsFromCurrentState
ます。