我只想写一两行关于按钮点击的代码,就像
print("Button Clicked")
为此,我不想创建一个单独的函数,并通过选择器调用
action: #selector(BtnKlkFnc(_:))
我想简化为
action: { action in print("Button Clicked")}
我也试过
# selector({print("Button Clicked")})
有人能帮我简化一下吗
我是新的stackoverflow和没有足够的声誉还没有,所以请投票给我的问题了,所以我可以投票给你的ans
1条答案
按热度按时间zzlelutf1#
简短回答:你不能这么做。按钮动作是可可/Cocoa touch内置的目标/动作机制的一部分。它基于选择器,你必须创建一个命名的方法并使用它的选择器。你不能使用Swift闭包作为按钮动作。
编辑:
请注意,可以创建一个UIButton的自定义子类,该子类具有一个闭包属性,并在点击按钮时调用该闭包。您要做的是使按钮的init方法将其自身设置为touchUpInside事件的目标,并调用按钮的一个方法,该方法反过来调用您的闭包(在确保闭包属性不为空之后)。
编辑#2:
请注意,创建一个
UIButton
的自定义子类非常简单,它将自身设置为按钮按下的目标并保持闭包。下面是一个示例实现:
在视图控制器中: