消息以关闭迅速传递。

大家好,希望大家一切都好。 今天,我将向您展示如何使用闭包进行消息传递。 基本上,我将向您展示如何通过Protocols实现执行自定义行为的替代方法。 我不知道您对闭包有多熟悉,下次我将尝试使用闭包。 现在,对闭包不太熟悉的人可以将其作为更简单的方法或将消息传递作为黑手。

我将尝试使用带有自定义单元格的表格视图示例进行说明。

您可以在下方看到我们要实现的目标。 该视图控制器具有一个表视图,该表视图具有一些名称以及它们前面的一个按钮。 表格视图下方也有一个空白区域。 每次按下按钮,我们都会在此区域执行一项活动。 如您在下面看到的,我们在单击按钮时对名称进行了动画处理。

通常,我们在委托和协议的帮助下执行此操作。 为此,我们必须使用按钮操作方法定义协议。

这样,无需创建自定义协议和委托。 我们需要一个类型为闭包变量。 你们都在想我在说什么😅。 是的,我们需要一个在其中包含闭包的变量。 见下文

这个名为buttonAction的变量将持有一个不带参数的闭包,并返回void。 我们将其作为可选变量,这样,如果任何一个单元格都没有动作,我们也将能够处理这种情况。

与往常一样,我们将在自定义单元格中为按钮创建IBAction 。 见下文

在表视图的类中,我们将闭包分配给每个单元格的闭包类型对象。 见下文

现在我们已经准备就绪,可以执行了。 但是在此之前,让我解释一下我们实际上在做什么。

在这里,我们正在做一个非常简单的活动来完成我们的任务。

我们正在定义一个变量,它将像通常定义的那样保留一个闭包 。 UILable,UIImage等

我们将为tableView_cellFOrRowAt_IndexPath中的每个单元格在此变量中传递一个可执行的闭包 同样,我们设置textLabeldetailTextLabel值。

在单元格类中,我们将发现buttonAction是否分配了闭包。 如果它有一个闭包,那么我们只需要执行那个。 我们已经做到了。

伙计们,这是我在关闭时传递的消息。 就像我一直说的那样,我还在学习,我相信学习与分享 。 您也可以从此链接下载演示项目 。 希望对您有所帮助。 我随时欢迎您提出建议,请至少放下其中一个。

非常感谢。