我在故事板中有一个自定义视图(1),在该视图的初始化中,它创建了另一个视图(2)并将其添加为子视图。 View 2实现了touchesBegan,touchesMoved等。视图控制器已经实现了touchesEnded。当我运行它并进行触摸时,只调用视图控制器的touchesEnded。我不知道为什么视图2没有采取措施。
显示视图2已正确加载,因为显示自定义背景。
我尝试过显式设置userInteractionEnabled。
现在,明白了。如果我重新启动iOS模拟器并运行它,它工作正常!但如果我第二次运行它,那就不行了。当我在真正的ipad上运行时,它永远不会起作用。
我不希望任何人神奇地知道问题是什么,但是如何调试这个问题的任何提示都将非常感激!
修改:视图1的初始化代码...
self.myView2 = [[View2 alloc] initWithFrame:self.bounds];
[self addSubview:self.myView2];
答案 0 :(得分:0)
要实现触控,有4个条件:
检查所有事情是否正常
答案 1 :(得分:0)
我还要检查以确保父视图的框架足够大以容纳子视图。可能会显示子视图,但其触摸区域受父视图框架的约束。
当然,只有在父视图中将setClipsToBounds设置为FALSE时才会出现这种情况。
视图2可能比视图(1)
更大答案 2 :(得分:0)
事实证明,“Autoresize Subviews”复选标记是罪魁祸首。我用纵向设计了我的故事板,并在横向上测试它。似乎在横向模式下,父视图由于旋转而消失,但不知何故儿童视图仍然存在,外观一切都很好。
当我取消选中父视图中的“自动调整子视图”时,它可以正常工作。
为什么轮换会使父视图消失超出我的范围(我在没有子视图的情况下进行了测试,这就是发生的事情)。为什么孩子的观点能够在没有父母的情况下留下来也超出了我。如果有人能够对此有所启发,我很乐意学到一些东西。但是现在我很高兴我不必自己开枪。