Ios 是否可以从我的for循环中更改一个UILabel的文本颜色?

Ios 是否可以从我的for循环中更改一个UILabel的文本颜色?,ios,objective-c,for-loop,uilabel,Ios,Objective C,For Loop,Uilabel,我有一个for循环,可以在UIStack视图中获得7个UILabel 一切都很完美(所以我的问题似乎很可笑),但我想找到一种方法,将UILabel的颜色更改为我的for循环 我只需要更改第二个标签的颜色,而不是所有标签的颜色 -(void)setupView { UIStackView *stack = UIStackView.new; stack.axis = UILayoutConstraintAxisHorizontal; stack.spacing = 1;

我有一个
for
循环,可以在UIStack视图中获得7个UILabel

一切都很完美(所以我的问题似乎很可笑),但我想找到一种方法,将UILabel的颜色更改为我的
for
循环

我只需要更改第二个标签的颜色,而不是所有标签的颜色

-(void)setupView {

    UIStackView *stack = UIStackView.new;
    stack.axis = UILayoutConstraintAxisHorizontal;
    stack.spacing = 1;
    stack.distribution = UIStackViewDistributionFillEqually;
    stack.alignment = UIStackViewAlignmentFill;
    stack.translatesAutoresizingMaskIntoConstraints = NO;
    [self addSubview:stack];

    [stack.topAnchor constraintEqualToAnchor:self.topAnchor].active = YES;
    [stack.leadingAnchor constraintEqualToAnchor:self.leadingAnchor].active = YES;
    [stack.trailingAnchor constraintEqualToAnchor:self.trailingAnchor].active = YES;
    [stack.heightAnchor constraintEqualToConstant:60].active = YES;

    for (NSInteger v = 0; v <= 30; v++) {
        UIView *container = UIView.new;
        container.backgroundColor = UIColor.clearColor;
        container.translatesAutoresizingMaskIntoConstraints = NO;

        [self valueLbl];

        _valueLbl.text = [NSString stringWithFormat:@"%ld", (long) v];
        _valueLbl.tag = v;
        [container addSubview:_valueLbl];
        [_valueLbl.centerYAnchor constraintEqualToAnchor:container.centerYAnchor]
        [_valueLbl.centerXAnchor constraintEqualToAnchor:container.centerXAnchor].active = YES;

        [stack addArrangedSubview:container];
    }

}

-(void)changeValueLabelColor {
    // Change color of UILabel number 1 of 7

    if (_valueLbl.tag == 1) _valueLbl.textColor = UIColor.redColor;
    else _valueLbl.textColor = UIColor.blackColor;
}
-(无效)设置视图{
UIStackView*stack=UIStackView.new;
stack.axis=ui布局约束TaxisShorizontal;
堆栈间距=1;
stack.distribution=UIStackViewDistributionAllegally;
stack.alignment=UIStackViewAlignmentFill;
stack.translatesAutoresizingMaskIntoConstraints=否;
[自添加子视图:堆栈];
[stack.topAnchor constraintEqualToAnchor:self.topAnchor].active=YES;
[stack.leadingAnchor constraintEqualToAnchor:self.leadingAnchor].active=YES;
[stack.trailingAnchor constraintEqualToAnchor:self.trailingAnchor].active=YES;
[stack.heightAnchor constraintEqualToConstant:60]。活动=是;

对于(NSInteger v=0;v只需存储一个引用(分配一个属性)添加到您需要的标签,并在需要时更改其文本颜色。但是,您可以通过
UIStackView
arrangedSubviews
属性访问标签。可能我误解了自己。抱歉…我将更改我的问题。我只需要更改第二个标签的颜色,而不是所有标签的颜色them@kAiN而不是正确的方法要存储对than label的引用(通过private@property)或使用[stack.arrangedSubviews objectAtIndex:1]访问它,我已经有一个uilabel属性(\u valueLbl)我在for循环中使用的…但在另一种方法中,它只是不断更改for循环创建的最后一个标签..我不明白为什么需要引用变量来更改其属性。我只需要更改一个标签的颜色…我编辑了我的问题…抱歉
if(v==1)
.@matt不在循环中?在另一种方法中?显示您实际尝试的内容。并明确定义“不起作用”。它到底以什么方式不起作用?什么是
[self valueLbl]
在做什么?您为什么在循环中重复使用
\u valueLbl