0

ViewController B 内に ViewControllerA をロードしています。これは、大きなシーン内の小さなアニメーション キャラクターです。

ViewControllerA の内部には、次のような回転アニメーションがあります。

CAKeyframeAnimation *bobble = [CAKeyframeAnimation           animationWithKeyPath:@"transform.rotation"];

NSArray *times = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
                  [NSNumber numberWithFloat:0.25],
                  [NSNumber numberWithFloat:0.5],
                  [NSNumber numberWithFloat:0.75],
                  [NSNumber numberWithFloat:1.0],
                  nil];

[bobble setKeyTimes:times];

NSArray *values = [NSArray arrayWithObjects:
                 [NSNumber numberWithFloat:degreesToRadian(0)],
                 [NSNumber numberWithFloat:degreesToRadian(5)],
                 [NSNumber numberWithFloat:degreesToRadian(0)],
                 [NSNumber numberWithFloat:degreesToRadian(-5)],
                 [NSNumber numberWithFloat:degreesToRadian(0)],
                 nil];

[bobble setValues:values];

bobble.repeatCount = HUGE_VALF;
bobble.autoreverses = YES;
bobble.duration = 5.0;
bobble.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[self.view.layer addAnimation:bobble forKey:@"transform.rotation"];

独自の viewDidLoad と viewDidAppear は次のようになります。

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.view.center = CGPointMake(640, 201);
[self.view setAnchorPointAndReposition:CGPointMake(.7, .7)];


}

- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self bobble];
[NSTimer scheduledTimerWithTimeInterval:3. target:self   selector:@selector(blinkFromTimer:) userInfo:nil repeats:YES];
}

iOS5+ では読み込みとアニメーションは正常に行われ、iOS 4.3 では読み込まれますがアニメーションは表示されません。

洞察はありますか?

4

1 に答える 1

0

iOS 5 の新しい親ビュー コントローラー サポートを使用しない限り、あるビュー コントローラーを別のビュー コントローラー内でホストすることは想定されていません。まったく。UIView のカスタム サブクラスを作成して使用することをお勧めします。

1 つの View Controller を iOS 5 より前の別の内部でホストすることは可能ですが、すべてを機能させるのはあなたの負担であり、OS の設計とあらゆる段階で戦うことになります。私は iPhone SDK の初期の頃 (最初はそう呼ばれていた) にその戦いを戦い、あきらめました。最初から最後まで悪夢です。反対することを強くお勧めします。

私は、Apple がそのアプリをストアから削除すると脅した主要なソフトウェア開発者 (Apple パートナー レベル) を知っています。

于 2012-06-10T00:02:39.747 に答える