在Swift中单击UITableView获取按钮

时间:2016-04-19 06:57:57

标签: ios iphone swift uitableview

我有一个简单的表视图,看起来像这样 enter image description here

每个按钮都会将某些部分溢出到下一个单元格(需求的一部分)。

我想要溢出按钮的点击事件。怎么做到的?

默认情况下,如果我点击那个溢出的部分,它会将其视为单击鼠标而非按钮单击。

我创建了一个dummy code,可以在点击时更改按钮颜色,因此有人可以轻松尝试。相同的布局。

谢谢

修改

下面是原始图片,我正在尝试做什么,为了简单起见我将其缩小为一个按钮 让我们假设req无法改变高度并且无法在桌面视图分隔符周围进行游戏

enter image description here

3 个答案:

答案 0 :(得分:1)

子类UITableView并覆盖hitTest:withEvent:并确定point是否在其中一个按钮的框架内。如果该点在框架内,则返回按钮,否则返回[super hitTest:point withEvent:event]

您可以使用CGRectContainsPoint[UIView convertRect/Point:to/fromView:]来简化计算。

hitTest:withEvent:是系统询问最外层视图的方式,该视图将在给定位置接收事件。

答案 1 :(得分:1)

你必须实现'tableView:heightForRowAtIndexpath:`方法并返回比现在更大的值。您的单元格没有足够的高度来完全显示按钮,因此按钮的某些部分隐藏在下一个单元格的后面。通过在界面构建器中选中Cell Prototype的“剪辑子视图”复选框,您可以轻松确信,并且您将看到将剪切按钮。

修改

请检查:https://github.com/arturdev/test

enter image description here

答案 2 :(得分:1)

将UITableView分隔符设为无。在单元格中绘制带有黑色背景颜色的1或2像素高度标签。

在cellForRowAtIndex中使单元格选择样式为无。

from win32com.client import gencache
import pythoncom

clsid = "Word.Application"
clsid = pythoncom.CoCreateInstanceEx(clsid, None, pythoncom.CLSCTX_SERVER,
                                     None, (pythoncom.IID_IDispatch,))[0]
if gencache.is_readonly:
    #fix for "freezed" app: py2exe.org/index.cgi/UsingEnsureDispatch
    gencache.is_readonly = False
    gencache.Rebuild()
olApp = gencache.EnsureDispatch(clsid)

管理正确的自动布局或自动调整遮罩。

尝试使用您的代码。

IEEE Std 1800-2012下载

图像

link