突出显示UIButton实例

时间:2012-12-16 15:29:26

标签: iphone objective-c ios uibutton

我有很多UIButton,保存在UIScrollView中,所有这些都是动态标记的。

我可以通过创建对它的引用来检索按钮的属性,例如其标记,在其创建方法之外。但是,我无法在按钮上设置属性,即更具体地说,我似乎无法设置突出显示。

以下是一个例子:

//UIButton is created elsewhere, i.e. UIButton *createdButton... createdButton.tag = 101
//Trigger method with createdButton as SENDER

- (void)highlightButton:(id)sender {

UIButton *buttonInstance = (UIButton *)sender;
int tag = buttonInstance.tag //use this to perform button-specific code

[buttonInstance setHighlighted:YES]; // <-- Not setting

}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

highlighted通常是暂时状态,用于指示用户正在触摸按钮。因此,在正常的触摸处理事件过程中,UIKit通常会将其重置为NO。在您的情况下,这似乎特别可能,因为该方法是由按钮本身的操作调用的。

如果要持久更改按钮的外观,则应设置selected而不是highlighted。您可以使用与为UIControlStateSelected设置标题,图像等相同的方式为此控件状态(UIControlStateHighlighted)设置标题,图像等。