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,但我不知道它可以被复制的情况下,所以我不认为我可以提交它。
同样的问题在这里....你是如何修复它? – 2013-12-28 09:26:03
解决方案http://*.com/questions/17011579/add-a-child-view-controllers-view-to-a-subview-of-the-parent-view-controller – 2013-12-28 09:36:38