以下のコードを使用して、必要に応じてサブレイヤ1 &サブレイヤ2を描画します。アニメーションが発生すると、サブレイヤ1は期待どおりに移動し、サブレイヤ2は最初は左上に移動し、次に右下に移動します。 (2は1内の同じ場所には残りません)サブレイヤが親と一緒に動かない原因を教えてください。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Create a blue sublayer
sublayer1 = [CALayer layer];
sublayer1.backgroundColor = [[UIColor blueColor] CGColor];
sublayer1.frame = CGRectMake(30, 30, 120, 190);
sublayer1.position = CGPointMake(90, 130);
[self.view.layer addSublayer:sublayer1];
// Create a sublayer within blue layer
CALayer *sublayer2 = [CALayer layer];
sublayer2.bounds = CGRectMake(0, 0, 60, 60);
sublayer2.frame = CGRectMake(30, 50, 60, 60);
sublayer2.contents = (id)[[UIImage imageNamed:@"sun.png"] CGImage];
[sublayer1 addSublayer:sublayer2];
[self performSelector:@selector(moveBlueLayer) withObject:nil afterDelay:1.0];
}
- (void)moveBlueLayer
{
// Create a new position for animation to move to
CGPoint endPostition = CGPointMake(190, 285);
[CATransaction setAnimationDuration:4];
sublayer1.bounds = CGRectMake(130, 190, 120, 190);
sublayer1.position = endPostition;
}
一緒に動くはずはありませんか?なぜ彼らはしないすべてのアイデア?私は、今のところ「暗黙の」アニメーションへの解決策に固執しようとしています。
犯人は、下から3行目にあります。 'sublayer1.bounds'は設定しないでください。 – David