boxLayer にコア アニメーション イメージがあり、それを複製して、2 番目 (boxLayer2) のアクションを変更し、位置をシフトして、誰かが 2 から選択できるようにします。
ユーザーが boxLayer の画像をタップできるようにしたいのですが、boxLayer2 画像は boxLayer の動き (タッチを受け取る以外のアニメーション コードは含めませんでした) とその逆以外は何もしません。
if ステートメントが機能しません。私は複数のバリエーションを試しました self.layer == boxLayer または CALayer == boxlayer ... sublayer は配列なので、それはアウトです。何かが欠けていることがわかっているので、助けや説明をいただければ幸いです。
ありがとう!
UIView *BounceView は VC で宣言されています
BounceView では、2 つの CALayers が宣言されています: boxlayer と boxlayer2
BounceView.m
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setBackgroundColor:[UIColor clearColor]];
// Create the new layer object
boxLayer = [[CALayer alloc] init];
boxLayer2 = [[CALayer alloc] init];
// Give it a size
[boxLayer setBounds:CGRectMake(0.0, 0.0, 185.0, 85.0)];
[boxLayer2 setBounds:CGRectMake(0.0, 0.0, 185.0, 85.0)];
// Give it a location
[boxLayer setPosition:CGPointMake(150.0, 140.0)];
[boxLayer2 setPosition:CGPointMake(150.0, 540.0)];
// Create a UIImage
UIImage *layerImage = [UIImage imageNamed:@"error-label.png"];
UIImage *layerImage2 = [UIImage imageNamed:@"error-label.png"];
// Get the underlying CGImage
CGImageRef image = [layerImage CGImage];
CGImageRef image2 = [layerImage2 CGImage];
// Put the CGImage on the layer
[boxLayer setContents:(__bridge id)image];
[boxLayer2 setContents:(__bridge id)image2];
// Let the image resize (without changing the aspect ratio)
// to fill the contentRect
[boxLayer setContentsGravity:kCAGravityResizeAspect];
[boxLayer2 setContentsGravity:kCAGravityResizeAspect];
// Make it a sublayer of the view's layer
[[self layer] addSublayer:boxLayer];
[[self layer] addSublayer:boxLayer2];
}
return self;
}
- (void)touchesBegan:(NSSet *)touches
withEvent:(UIEvent *)event
{
if (CAlayer == boxLayer)
{
// do something
}
else
{
// do something else
}
}