Hello Guys实际上我有很多UIView自定义类对象作为UIVcrollView内的UIViewController类视图的子视图。我想检查UIView自定义类对象的颜色。我使用的代码如下: -
- (void) RectColorCheck:(id)sender
{
NSArray *subViews = [[NSArray alloc] init];
subViews = [self.scrollView subviews];
NSLog(@"array----%@",subViews);
for (viewCG in subViews)
{
if ([viewCG.backgroundColor isEqual: [UIColor darkGrayColor]])
{
[viewCG setBackgroundColor:[UIColor orangeColor]];
}
}
}
但它不起作用viewCG的子视图数组为null。 以下代码在viewCG子视图中添加了自定义类(UIView)对象: -
for (int i=0; i<[mapDataArr count]; i++)
{
X = [[[mapDataArr objectAtIndex:i] valueForKey:@"X"] intValue];
Y = [[[mapDataArr objectAtIndex:i] valueForKey:@"Y"] intValue];
W = [[[mapDataArr objectAtIndex:i] valueForKey:@"W"] intValue];
H = [[[mapDataArr objectAtIndex:i] valueForKey:@"H"] intValue];
circleVwObj = [[CircleView alloc] init];
circleVwObj.frame = CGRectMake(X,Y, W, H);
circleVwObj.tag = i;
circleVwObj.lbl.frame = CGRectMake(2,2, circleVwObj.frame.size.width, circleVwObj.frame.size.height/2);
circleVwObj.lbl.text = [[mapDataArr objectAtIndex:i] valueForKey:@"standId"];
NSLog(@"lbl text---%@", circleVwObj.lbl.text);
circleVwObj.lbl.font = [UIFont boldSystemFontOfSize:11];
circleVwObj.lbl.backgroundColor = [UIColor clearColor];
circleVwObj.lbl.textColor = [UIColor whiteColor];
circleVwObj.lbl.textAlignment = UITextAlignmentCenter;
circleVwObj.lbl.minimumFontSize = 11;
circleVwObj.lbl.adjustsFontSizeToFitWidth = YES;
circleVwObj.lbl.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[self.viewCG addSubview:circleVwObj];
}
答案 0 :(得分:1)
如果subviews
数组为nil
,则self.viewCG
很可能也是nil
,并且尚未初始化。
此外,您应该使用isEqual:
来比较颜色。 ==
运算符只是比较指针标识(在这种特殊情况下可能会实际给出预期结果,但它可能会中断)。