0

我有很多 UIButtons,保存在 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

}

有任何想法吗?

4

1 回答 1

1

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

如果你想持续改变按钮的外观,你应该设置selected而不是highlighted. 您可以为该控件状态 ( UIControlStateSelected) 设置标题、图像等,方法与为 设置它们的方式相同UIControlStateHighlighted

于 2012-12-16T15:43:12.100 回答