iOS 3.2 で非常にカスタムなアニメーションを実装する必要があるため、4.0 より前のブロック アニメーションも UIKit アニメーションも使用できません。Core Animation を使ってみました。
これが私のコードです:
[CATransaction begin];
[CATransaction setAnimationDuration: 3.0];
[CATransaction setDisableActions: YES];
someView.frame = CGRectMake(endX, 0, endWidth, height);
// a lot of another property changes
[CATransaction commit];
残念ながら、それは機能しません。アニメーションなしで、ビューのサイズ/不透明度がすぐに変更されます。
これが私の試みです:
- 新しいフレームをビューではなくそのレイヤーに設定しました(someView.layer.frame = ...)-ビューのサブビューのサイズが変更されなかったため、さらに悪化しました。
- アクションの無効化オプションを YES と NO に設定しました。
ソリューション要件:
- iOS 3.2 がサポートされている必要があります (ブロックなし)。
- アニメーションは異なるビューに適用する必要があります (結果として、異なるレイヤーに適用されます)。
- アニメーション カーブは非常に難しいので、定義済みのアニメーション カーブ (または、CA 言語では MediaTimingFunction) を使用できません。