通过标签迭代

时间:2014-10-11 18:01:54

标签: objective-c

我有一堆从

开始的标签
@property (strong, nonatomic) IBOutlet UILabel *lastNumber0;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber1;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber2;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber3;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber4;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber5;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber6;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber7;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber8;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber9;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber10;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber11;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber12;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber13;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber14;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber15;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber16;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber17;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber18;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber19;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber20;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber21;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber22;
@property (strong, nonatomic) IBOutlet UILabel *lastNumber23;

这些目标是在for循环中以迭代方式传递;

        for (int d = 0; d < [lastNumbers count]; d++) {
            int value = [[lastNumbers objectAtIndex:d] intValue];
            if ([red containsObject:[NSNumber numberWithInteger:value]])
            {
                self.lastNumber0.text = [NSString stringWithFormat:@"%i", value];
                self.lastNumber0.textAlignment = NSTextAlignmentLeft;
                self.lastNumber0.textColor  = [UIColor redColor];
            }
            if ([black containsObject:[NSNumber numberWithInteger:value]])
            {
                self.lastNumber0.text = [NSString stringWithFormat:@"%i", value];
                self.lastNumber0.textAlignment = NSTextAlignmentRight;
                self.lastNumber0.textColor  = [UIColor blackColor];
            }
            if ([green containsObject:[NSNumber numberWithInteger:value]])
            {
                self.lastNumber0.text = [NSString stringWithFormat:@"%i", value];
                self.lastNumber0.textAlignment = NSTextAlignmentCenter;
                self.lastNumber0.textColor  = [UIColor greenColor];
            }
        }
    }

希望这是有道理的,self.lastNumber0.text将替换为编程self.lastNumber[d].text&lt; - 我知道这不会起作用,但这就是我想要实现的目标,我试过这个

   NSString *labelName = [NSString stringWithFormat:@"lastNumber%i", d];

但无法弄清楚如何做self.labelName.text =等等......

感谢阅读,如果您需要更多信息,请询问。谢谢!

ANSWER

int yInc = 310;
for (int i = 0; i < 32; i++) {
    label[i] = [[UILabel alloc] initWithFrame:CGRectMake(460, yInc, 100, 10)];
    label[i].font = [UIFont boldSystemFontOfSize:11];
    label[i].backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3];
    [self.view addSubview:label[i]];
    yInc = yInc - 10;
}

            for (int d = 0; d < 32; d++) {
                int value = [[lastNumbers objectAtIndex:d] intValue];
                if ([red containsObject:[NSNumber numberWithInteger:value]])
                {
                    label[d].text = [NSString stringWithFormat:@"%i", value];
                    label[d].textAlignment = NSTextAlignmentLeft;
                    label[d].textColor = [UIColor redColor];
                }
                if ([black containsObject:[NSNumber numberWithInteger:value]])
                {
                    label[d].text = [NSString stringWithFormat:@"%i", value];
                    label[d].textAlignment = NSTextAlignmentRight;
                    label[d].textColor = [UIColor blackColor];
                }
                if ([green containsObject:[NSNumber numberWithInteger:value]])
                {
                    label[d].text = [NSString stringWithFormat:@"%i", value];
                    label[d].textAlignment = NSTextAlignmentCenter;
                    label[d].textColor = [UIColor greenColor];
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

不是为各个标签制作一堆IBOutlet,而是为所有标签创建一个IBOutletCollection。现在标签是数组的元素,您可以循环遍历该数组。