【发布时间】:2011-01-03 14:09:45
【问题描述】:
在我的 iPhone 应用程序中,我有一组根据用户选择动态生成的按钮。
如何区分选中的按钮和其他按钮?
我希望当用户选择另一个按钮时,之前选择的按钮的外观应该恢复到正常状态。我无法将之前选择的按钮恢复到正常状态。
【问题讨论】:
标签: iphone cocoa-touch ios4 uibutton
在我的 iPhone 应用程序中,我有一组根据用户选择动态生成的按钮。
如何区分选中的按钮和其他按钮?
我希望当用户选择另一个按钮时,之前选择的按钮的外观应该恢复到正常状态。我无法将之前选择的按钮恢复到正常状态。
【问题讨论】:
标签: iphone cocoa-touch ios4 uibutton
使用标签来识别按钮。 在创建按钮时,您可以将标签作为数字分配给按钮并使用它来识别。
yourButton.tag = intNumber;
【讨论】:
您有一组按钮。你可以遍历你的数组并检查它是否是被点击的那个。
- (IBAction) buttonClicked:(id)sender {
for(int i; i < [array count]; i++){
if((UIButton *)sender == (UIButton *)[array objectAtIndex:i])
//do something
else
//do something else
}
类似的东西。
【讨论】:
尝试为每个按钮设置标签,使用
yourButton.tag=intValue; //intValue>0
你的buttonAction应该如下,
-(IBAction)buttonAction:(id)sender
保存之前选择的标签,并相应地更改值。
【讨论】:
您可以循环浏览您的子视图并设置所有旧样式:
- (void)highlightImgWithID:(int)packID {
[self.view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[UIImageView class]]) {
[(UIImageView*)obj setHighlighted:([obj tag] == IDtoSelectNext)];
}
}];
}
该示例是我目前在我的应用程序中使用UIImageView 实现它的方式,您可以将其更改为使用按钮。
【讨论】: