2012-12-16 45 views
0

我有很多很多UIButtons,保存在UIScrollView中,所有这些都是动态标记的。突出显示设置UIButton实例

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

下面是一个例子:

//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

'[button setHighlighted:YES]''中的'button'来自哪里?你的意思是'buttonInstance'? – dasblinkenlight

+0

你在哪里使用buttonInstance? –

+0

是的,对不起!刚刚更新了Q – Sarreph

回答

1

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

如果你想持久地改变按钮的外观,你应该设置selected而不是highlighted。您可以像设置UIControlStateHighlighted一样为此控制状态设置标题,图像等(UIControlStateSelected)。

+0

完美,感谢您的解释;现在工作:) – Sarreph

相关问题