我正在使用CATransformLayer来创建一堆图层并使用3D透视图为它们设置动画来制作一个立方体(类似这样)
将UIButton添加到此多维数据集的一侧的最佳方法是什么?我希望能够从IBOutlet接收事件并访问该按钮。
我尝试使用里面的按钮创建一个UIView进入我的XIB并将其图层插入到CATransformLayer中,它显示但按钮不可点击。我有一种感觉,这是因为UIKit处理触摸/事件方面的事情,图层只是在那里进行绘图。
(顺便说一下,我见过this question,但觉得这个案子不同,足以保证一个新帖子)
答案 0 :(得分:1)
托管所有图层的根视图将获得图层树的所有触摸
在那里你必须做
CALayer *touchedLayer = [self.rootLayer hitTest:touches.anyObject.locationInWindow];
评论中的:如果你想在动画期间检查你的表现层:
CALayer *touchedLayer = [self.rootLayer.presentationLayer hitTest:touches.anyObject.locationInWindow];
答案 1 :(得分:0)
感谢Daij提示,这是我的解决方案 - 感谢任何评论/改进
- (IBAction)viewTapped:(UITapGestureRecognizer *)sender
{
CGPoint location = [sender locationInView:sender.view];
CALayer *layer = [sender.view.layer hitTest:location];
BOOL contains = [self.btnPlay.layer.sublayers containsObject:layer];
if(contains)
{
[self.btnPlay sendActionsForControlEvents:UIControlEventTouchUpInside];
}
}