我在 boxLayer 上有一个核心动画图像,我正在复制它,改变第二个(boxLayer2)的动作和位置,以便有人可以在 2 个之间进行选择。
我希望用户能够点击 boxLayer 的图像,而 boxLayer2 图像除了 boxLayer 移动之外什么都不做(除了接收触摸之外,我没有包含我的动画代码),反之亦然。
我无法让 if 语句起作用。我尝试了多种变体 self.layer == boxLayer 或 CALayer == boxlayer ... sublayer 是一个数组,所以它已经出来了。我知道我遗漏了一些东西的任何帮助/解释将不胜感激。
谢谢!
UIView *BounceView 在VC中声明
在 BounceView 中,我声明了 2 个 CALayers:boxlayer 和 boxlayer2
弹跳视图.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
}
}