我可以在同一个 tableViewCell 中使用 IBOutlet 和 IBAction 吗?

Can I use IBOutlet and IBAction in the same tableViewCell?

tableviewcell 中使用同一个按钮的 IBOutletIBAction 是好习惯吗?

什么时候人们在单元格中有 IBOutlets 而在 viewcontroller 中有 IBAction

谢谢!

我可以在同一个 tableViewCell 中使用 IBOutlet 和 IBAction 吗?

是的,你可以使用。

在 tableviewcell 中使用同一个按钮的 IBOutlet 和 IBAction 是好习惯吗?

根据我的意见,如果你在 UIViewController 中使用 IBAction,那将比 UITableViewCell 更好,因为如果你想对数据事件(在 [=12= 中定义的)执行某些操作]) 在这种情况下,您可以轻松执行,不需要全局管理该数据,但是如果您想在单元格中的事件上执行某些操作,在这种情况下,您需要全局或使用委托管理该数据。

如果您使用 .h 和 .m 文件为自定义单元格使用了 uitableviewcell 的子 class,那么您应该在 .h 文件中定义 IBOutlet,当您想要定义它的操作时,您可以在cellForRowAtIndexPath: 方法,并手动定义其目标方法。 如果您将在 uiviewcontroller 中定义此方法,那么它将对所有按钮操作执行相同的操作。

首先,您需要了解IBOutlet和IBAction的使用。它们用于完全不同的原因。我们使用 IBOutlet 帮助界面构建器识别 UI 元素的引用变量,我们使用 IBAction 帮助界面构建器识别 events/actions。因此,您没有理由不在同一个 class 或单独的 class 中指定按钮的 IBOutlet 和该按钮的 IBAction,例如 TableViewCell [中的 IBOutlet class 和正在加载单元格的视图控制器中的 IBAction。

根据我的经验,我会说,如果您的 Table 视图单元格中有一个按钮,并且您想要根据该按钮的点击触发一个事件,那么拥有操作方法实际上是件好事在你的 CustomTableViewCellclass 中。例如,假设您想在单击时更改按钮图像。在这种情况下,在您的 didSelectRowAtIndexpath 方法中,您可以更改按钮的 select 状态,同时您可以在视图 class 中的 IBAction 方法中检查按钮的 select 状态并设置图片。

另一方面,如果有基于按钮点击的控制流,比方说,基于按钮点击,您将转到不同的视图控制器,那么您可能想在控制器中设置 IBAction class 因为您需要访问导航控制器或视图控制器。

因此,这取决于您的 IBAction 方法的目的是什么以及执行操作需要什么样的访问权限。