【发布时间】:2012-09-11 10:23:49
【问题描述】:
我有一个名为SubViewController.h 的小型320x144viewcontroller,其中有一个UITableView,其中包含3 个单元格和一个部分。我已经使 tableView 不可滚动,并且还通过CALayer 的恩典在 tableView 后面放置了一些阴影效果。
在另一个名为 MainViewController.m 的视图控制器中,我已将 SubViewController.h 作为子视图添加到此 MainViewController。使用UIPanGestureRecognizer 我已经成功地将SubViewContoller 拖到我想要的任何地方。
我使用UIBarButtonItem 使这个子视图可见。在子视图的 tableView 中选择一个单元格后,我通过一些动画使它从主视图中消失。
一切正常。
但是当我拖动子视图然后尝试选择一个单元格时,我必须点击该单元格两次。在第一次点击时,除了单元格变为蓝色(就像您在 tableView 中选择一个单元格时通常发生的那样),实际上什么都没有发生,但没有隐藏。如果我再次点击它就会隐藏起来。
无需拖动子视图,我只需轻轻一按即可选择一个单元格,并且视图也会隐藏。
我已经在子视图的didSelectRowAtIndexPath: 方法中编写了隐藏子视图的代码。我已经检查过,当我在拖动子视图后第一次选择时不会调用此方法。在第二次点击或触摸时,它会被调用。如果用户再次移动子视图,也会出现同样的问题。
肯定是子视图的某些属性在拖动后发生了变化,我无法弄清楚。
【问题讨论】:
标签: iphone uitableview uigesturerecognizer