0

我的 ViewController 中有一个 TableView。在选定状态下,其单元格的子视图会增加宽度并超出其边界。

当我点击这个子视图时,触摸将转到视图控制器的 touchesBegan 实现,该实现正在使用取消选择单元格。

现在这个子视图没有被剪裁并被允许出去,所以理想情况下,落在它上面的触摸应该去它,但为什么它们要去具有 tableview 的 ViewController ?

  • TableView 作为侧边栏位于 iPad 屏幕(视图控制器)的左侧。
  • 选定的单元格像抽屉一样出来,如下所示。
  • 在点击屏幕上的其他任何地方时,抽屉(选定的单元格)会重新进入。

问题是所选单元格中的区域超出了 tableview 的范围,如果单击,则会对 ViewController 中的 touchesBegan 方法进行触摸。

因此它最终回到了原点。

=================================================
======                                           =
======                                           =
======                                           =
=============                                    =
=============                                    =
======                                           =
======                                           =
======                                           =
======                                           =
======                                           =
======                                           =
======                                           =
======                                           =
==================================================
4

2 回答 2

1

是的,这会发生,因为更新的单元格现在超出了 tableview 的宽度,所以现在显然触摸将转到 tableview 的超级视图。如果您想禁止该触摸,则还需要增加 tableview 的宽度,因此单元格视图将位于 table 下方,然后您将收到 tableview 上的触摸。

实际上,UIView 有一个属性称为“clipsToBounds”,默认情况下它的值为“No”,因此这不会剪切 UIView 之外的区域,这就是为什么您看到单元格视图但没有得到触摸的原因,这将适用于所有类型的视图。

希望对你有帮助 :)

于 2013-06-26T12:34:22.523 回答
0

我认为与其采用视图控制器,不如尝试为表格视图创建自定义视图,另一个是您的视图,它将像抽屉一样显示。为 tableview 创建自定义委托。应用了动画的功能,如推送和弹出视图控制器。我认为这可以很好地帮助你。将 tableviewcell 选择样式属性设置为无。

于 2013-06-26T12:25:39.370 回答