【问题标题】:How to distinguish dynamically generated button on selection using iPhone SDK?如何使用 iPhone SDK 区分动态生成的选择按钮?
【发布时间】:2011-01-03 14:09:45
【问题描述】:

在我的 iPhone 应用程序中,我有一组根据用户选择动态生成的按钮。

如何区分选中的按钮和其他按钮?

我希望当用户选择另一个按钮时,之前选择的按钮的外观应该恢复到正常状态。我无法将之前选择的按钮恢复到正常状态。

【问题讨论】:

    标签: iphone cocoa-touch ios4 uibutton


    【解决方案1】:

    使用标签来识别按钮。 在创建按钮时,您可以将标签作为数字分配给按钮并使用它来识别。

    yourButton.tag = intNumber;

    【讨论】:

      【解决方案2】:

      您有一组按钮。你可以遍历你的数组并检查它是否是被点击的那个。

      - (IBAction) buttonClicked:(id)sender {
        for(int i; i < [array count]; i++){
           if((UIButton *)sender == (UIButton *)[array objectAtIndex:i])
              //do something
           else
              //do something else
      }
      

      类似的东西。

      【讨论】:

        【解决方案3】:

        尝试为每个按钮设置标签,使用

        yourButton.tag=intValue; //intValue>0
        

        你的buttonAction应该如下,

        -(IBAction)buttonAction:(id)sender
        

        保存之前选择的标签,并相应地更改值。

        【讨论】:

          【解决方案4】:

          您可以循环浏览您的子视图并设置所有旧样式:

          - (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 实现它的方式,您可以将其更改为使用按钮。

          【讨论】:

          • 忘了说我在别处使用了这个标签,所以我不能用这个标签作为选择了哪个标签
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-15
          • 1970-01-01
          • 1970-01-01
          • 2022-12-31
          • 2023-03-11
          • 2017-10-17
          • 2013-08-13
          相关资源
          最近更新 更多