0

因为我是新手,所以我很困惑为什么这是不可能的。我创建了一个数组:NSMutableArray *labels并向其中添加了一些UILabel对象。我这样做是因为我想轻松更改所有标签的文本颜色,而不必单独进行,但是当我打电话时

_labels.textColor = [UIColor colorWithRed:137.0f/255.0f green:200.0f/255.0f blue:255.0f/255.0f alpha:1.0f];    

它给了我一个错误,即 textColor 不能与 MutableArray 一起使用。还有另一种方法吗?谢谢!

4

2 回答 2

1

您需要遍历数组中的项目并在每个标签上调用该方法:

for (UILabel *label in _labels) {
    label.textColor = [UIColor colorWithRed:137.0f/255.0f green:200.0f/255.0f blue:255.0f/255.0f alpha:1.0f];    
}

该阵列不会为您发送消息,除非您要求它:

[_labels makeObjectsPerformSelector:@selector(setTextColor:) withObject:[UIColor colorWithRed:137.0f/255.0f green:200.0f/255.0f blue:255.0f/255.0f alpha:1.0f]];    
于 2013-06-20T10:46:07.270 回答
1

在您当前的尝试中,您将更改数组的文本颜色(如果有的话)。UILabel您必须在数组中的 each上调用该方法。对数组中的所有项目执行某些操作,您可以使用enumerateObjectsUsingBlock:

[_labels enumerateObjectsUsingBlock:^(UILabel *label, NSUInteger idx, BOOL *stop){
    label.textColor =  [UIColor colorWithRed:137.0f/255.0f green:200.0f/255.0f blue:255.0f/255.0f alpha:1.0f]; 
}];

有关数组的更多信息,请查看苹果文档NSMutableArrayhttps ://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

于 2013-06-20T10:49:59.910 回答