UIView触摸处理的奇怪问题

问题描述:

对于我的iPad应用程序,我使用一个名为SidebarViewController的子类UIViewController在侧边栏中显示一些东西。在边栏中我有一个日历控件。我使用的是来自http://github.com/klazuka/Kal的开源Kal组件。在SidebarViewController-viewDidLoad方法,我创建的KalView一个新实例(日历的主视图),并把它加为SidebarViewController的视图的子视图:UIView触摸处理的奇怪问题

_logic = [[KalLogic alloc] initForDate:[NSDate date]]; 
_calendarView = [[KalView alloc] initWithFrame:CGRectMake(0.0, 62.0, 273.0, 239.0) delegate:self logic:_logic]; 
KalDate *currentDate = [KalDate dateFromNSDate:[NSDate date]]; 
[_calendarView selectDate:currentDate]; 
[self.view insertSubview:_calendarView atIndex:0]; 

日历显示和一切,但有一个问题。日历的主要组成部分是KalGridView,它是KalView的子视图。它显示日期图块等。当应用程序启动时,由于某种原因,KalGridView未收到触摸。触动被SidebarViewController的视线截获。奇怪的是,如果我点击日历顶部的月份更改按钮来更改月份,则KalGridView将再次开始接受接触。

我不明白为什么会发生这种情况,因为SidebarViewController的其他子视图都不会受到同一问题的影响。

在XIB中创建KalView而不是在代码中创建KalView似乎可以解决问题。这绝对看起来像一个bug,但我不知道它可以被复制的情况下,所以我不认为我可以提交它。

+0

同样的问题在这里....你是如何修复它? – 2013-12-28 09:26:03

+0

解决方案http://*.com/questions/17011579/add-a-child-view-controllers-view-to-a-subview-of-the-parent-view-controller – 2013-12-28 09:36:38