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
?