如何以编程方式更改UIButton状态?

时间:2012-12-23 17:13:53

标签: objective-c ios uibutton

.selected.highlighted属性不会删除它,因为由于某种原因,当突出显示和选中的按钮设置为更亮时,按钮看起来更加灰白(非突出显示的图像的颜色较深) YES。

我需要让我的按钮关闭,就好像用户将其关闭一样 我该怎么做?

2 个答案:

答案 0 :(得分:4)

我现在认为我理解你的意思。我在我的UIButton中放了一个图像,并尝试在触摸时改变按钮的状态。

- (IBAction)touchDown:(id)sender {
    [(UIButton *)sender setHighlighted:FALSE];
    [(UIButton *)sender setSelected:FALSE];
}

我注意到在移动手指之前图像不会变暗。如果您将操作连接到“触摸内部拖动”并选中.highlighted,您应该会看到它再次变为TRUE。您可以将其设置为FALSE:

- (IBAction)touchMove:(id)sender 
{ 
    [(UIButton *)sender setSelected:FALSE];
}

然而

如果您只是在寻找一种方法来阻止图像在用户按下时变为灰色,请执行以下操作:

button.adjustsImageWhenHighlighted = FALSE;

UIControlStateHighlighted设置图像也会消除灰色。

UIImage *image = [UIImage imageNamed:@"img"];
[button setImage:image forState:UIControlStateNormal];
[button setImage:image forState:UIControlStateHighlighted];

答案 1 :(得分:0)

如果通过“关闭”表示您要禁用该按钮,则可以使用:

[myButton setEnabled:NO];