0

我在一个名为的视图中有 16 个按钮:

@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb1;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb2;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb3;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb4;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb5;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb6;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb7;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb8;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb9;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb10;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb11;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb12;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb13;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb14;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb15;
@property (strong, nonatomic) IBOutlet WKInterfaceButton *bb16;

我想在switch语句中根据不同的条件设置图像的背景。所以我正在做的是我有一个 for 循环

 for (int i=1; i<=16; i++) {
int val = [(NSNumber *)[self.valuesArray objectAtIndex:i] intValue];
    NSString *newString = [NSString stringWithFormat:@"bb%d",i];
    switch (val) {
                case 4:
                    [**self.bb%d** setBackgroundImageNamed:@"s"];
                    break;

                default:
                    break;
            }
    }

val是它当前从 a 中选择的值NSArray,低于 anewString是创建所需字符串的值。里面的文字**是我坚持的东西,当然我把**自己放在突出问题上。我想根据不同的情况更改按钮的背景图像。因此,如果是这种情况,则将其4更改为s以及将其0更改为其他内容。那么我怎样才能实现它。我希望我的问题很清楚。

4

1 回答 1

0

如果您不想对应用程序的结构进行太多更改,则可以这样做。

  1. 尝试将所有 16 个 WKInterfaceButton 对象放入 initWithCoder 方法中的 NSMutableArray 中。(如果需要,请将此数组设为全局)。

    #import "YourClass.h"
    
    @interface YourClass()
    
    @property (nonatomic,strong) NSMutableArray * btnArray;
    
    @end
    
    @implementation YourClass
    
    
    - (instancetype)initWithCoder:(NSCoder *)aDecoder
    {
         if (self = [super initWithCoder:aDecoder]) {
    
           _btnArray = [NSMutableArray array];
           [_btnArray addObject:bb1];
           /*
           .
           .
           .
           Add all 16 buttons like this here */
       }
       return self;
    } 
    
  2. 在您的 switch 语句中的特定情况下,通过索引获取对象,然后将其设置为背景图像。

    for (int i=1; i<=16; i++) {
    int val = [(NSNumber *)[self.valuesArray objectAtIndex:i] intValue];
    NSString *newString = [NSString stringWithFormat:@"bb%d",i];
     switch (val) {
            case 4:
                [((WKInterfaceButton *)[_btnArray objectAtIndex:i-1]) setBackgroundImageNamed:@"s"];
                  break;
    
              default:
                  break;
           }
       }
    
于 2016-03-22T10:40:18.957 回答