kba*_*man 140 cocoa-touch uibutton uikit uicontrol ios
我有一个UIButton,当被选中时,触摸时不应改变状态.默认行为是它在触摸时处于UIControlStateHighlighted,这让我很生气.
建议?
Hay*_*ydn 299
您的按钮必须buttonType设置为自定义.
在IB中,您可以取消选中"突出显示调整图像".
以编程方式,您可以使用 theButton.adjustsImageWhenHighlighted = NO;
类似的选项也适用于"禁用"状态.
Man*_*uja 34
这对你有用:
[button setBackgroundImage:[UIImage imageNamed:@"button_image"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected];
[button setBackgroundImage:[UIImage imageNamed:@"button_image_selected"] forState:UIControlStateSelected | UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
第3行就是这里的诀窍......
这对于设置image/backgroundImage也是一样的
小智 23
button.adjustsImageWhenDisabled = NO;
Run Code Online (Sandbox Code Playgroud)
对于拥有自己的禁用按钮外观同样有用.
根据按钮从默认状态到突出显示状态的变化,您可以调用几个方法来将它们设置为您需要的状态。因此,如果图像发生变化,您可以这样做
[myButton setImage:[myButton imageForState:UIControlStateNormal] forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
如果文本更改,您可以执行
[myButton setTitle:[myButton titleForState:UIControlStateNormal] forState:UIControlStateHighlighted];
Run Code Online (Sandbox Code Playgroud)
其他类似功能:
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state
- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state
对于 Swifty 开发人员 -
yourButton.adjustsImageWhenHighlighted = false
Run Code Online (Sandbox Code Playgroud)