比较文本UILabel并更改背景

时间:2016-12-09 13:30:55

标签: objective-c for-loop uilabel

我创建了一个for循环,其值介于18到30之间。 for循环给我的标签是:

18 20 22 24 26 28 30

一旦返回标签的for循环,我想比较手动输入的数值与for循环返回的数值之间的简单" if语句"

到目前为止,一切正常,我的NSLog根据附加值返回正确答案......

我想要做的是找到目前为止所做的数值,并更改标签的背景颜色或包含比较数字的标签高度......

让我举个例子:

如果我输入数字28并且找到了,我希望在所有标签中,只有包含值28的标签会改变颜色..

我希望他们设法解释得好,如果我不清楚问我,我会尝试解释最好的

你能帮助我吗?

这是我到目前为止的代码

 NSMutableArray *container = [[NSMutableArray alloc] init];

for (_yValue = maxY; _yValue >=minY; _yValue -=2) {
    _yLabel = [[UILabel alloc] init];
    _yLabel.frame = CGRectMake(xPadding, yPadding, 27, 27);
    _yLabel.text = [NSString stringWithFormat:@"%ld", (long)_yValue];
    _yLabel.textColor = [UIColor whiteColor];
    _yLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:10];
    [self addSubview:_yLabel];
    yPadding += _yLabel.frame.size.height;

    [container addObject:[NSNumber numberWithInteger:_yValue]];
}


NSNumber *fetch = [NSNumber numberWithInteger:28];

if ([container containsObject:fetch]) {
    return NSLog(@"YES THIS IS 28");


} else {
    return NSLog(@"NO THIS IS NOT 28");
}

1 个答案:

答案 0 :(得分:1)

使用UILabel的标记

_yLabel.tag = _yValue;

然后

if ([container containsObject:fetch]) {
     UILabel *label = (UILabel *)[self viewWithTag:[fetch integerValue]];
    label.textColor = [UIColor redColor];
    return NSLog(@"YES THIS IS 28");
}