我有很多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
}
有什么想法吗?
答案 0 :(得分:1)
highlighted
通常是暂时状态,用于指示用户正在触摸按钮。因此,在正常的触摸处理事件过程中,UIKit通常会将其重置为NO
。在您的情况下,这似乎特别可能,因为该方法是由按钮本身的操作调用的。
如果要持久更改按钮的外观,则应设置selected
而不是highlighted
。您可以使用与为UIControlStateSelected
设置标题,图像等相同的方式为此控件状态(UIControlStateHighlighted
)设置标题,图像等。