很多按钮添加相同addTarget(_:action:for :)方法

很多按钮添加相同addTarget(_:action:for :)方法

问题描述:

我正在计算应用程序。 并有大量的按钮,我存储在一个大stackView(在SB中创建和没有出口)。 每个按钮投下一些阴影(也在SB属性中设置)。 当按下按钮时,我想摆脱阴影。 tapGestureRecognizer或目标操作只能影响一个UIButton。 任何方便的方式来acheive很多按钮添加相同addTarget(_:action:for :)方法

PS我的意思是,当按钮.touchupinside或tapGestureRecognizer .END。开始时手指移动按钮还是应该投下的阴影

帮助表示赞赏

+0

您使用SB,但你不使用网点,是一个要求吗?当你点击一个按钮时,你想删除所有按钮的阴影吗? – crom87

+0

您可以简单地为许多按钮添加相同的目标......问题是什么? –

+0

@ crom87可以设置插座只是我不能给每个按钮一个插座〜只是删除触摸的那个 – jin

的UIButton将突出显示的点击,所以检查按键设置更改亮度状态配置标题颜色相同的默认状态或者你可以设置:

[button setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted]; 

如果你想通过代码来控制突出显示,你可以禁用诺玛L请子键突出显示,并禁用touchesBegin:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    if (self.state == UIControlStateHighlighted) { 
     [self setHighlighted:NO]; 
    } 
} 
+0

您是否注意到没有使用过的标签是“物镜-C“,我认为你的答案应该写在斯威夫特:) –

+0

在快速使用为:button.selected = false –

+0

非常感谢..很好的答案..还有一些问题..我设置故事板中的按钮属性不是titleColor,但按钮层的影子..有没有一种方法subclass UIButton实现 – jin

您可以将同一个IBAction为多个按钮,使同样的方法被调用为所有这些

func buttonDidTouch(sender:UIButton) {} 

如果现在你想确定正在调用哪个按钮,可以使用UIButton.tag属性来识别它。标签可以在每个按钮的SB中设置。

+0

tks ..编辑的问题猜不说清楚我的意思是当按钮.touchupinside或点击.start .ended当手指移动按钮仍然应该投影时 – jin

有很多方法可以实现这个目标,但我会在下面讨论。

只要给我的逻辑。 取一个临时可选变量UIButton

Ex。

var myTemButton: UIButton()? 

在按键操作方法

@IBAction func myButtonActionFunc(_ sender: UIButton) { 
    if myTemButton == nil { 
    myTemButton = sender 
    } 
    else { 
    // Use "myTemButton" and write here code for remove shadow Or other stuff that you want. 
    } 

    // use "sender" and write code here for apply shadow of button or other stuff that you want. 
} 
+0

tks ..编辑的问题猜不说清楚我的意思是当按钮.touchupinside或龙头开始摆脱阴影时点击结束然后重新获得阴影... – jin