2012-03-15 190 views
0

这是一个noob question.i在界面构建器中对我的表视图单元格进行了子类化,并创建了一个表视图。我想要的是将文本标签的颜色更改为UITableViewCellStyleValue1颜色(light蓝)。因为我在.nib file.im中创建了单元格,所以无法使用cell.detailtextlabel.text.could你们帮我。如何将文本标签的颜色更改为UITableViewCellStyleValue1颜色

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[NSBundle mainBundle] loadNibNamed:@"CCell" owner:self options:nil] objectAtIndex:0]; 

} 
UILabel *lbl=(UILabel*)[cell viewWithTag:1]; 
UIImageView *imgV = (UIImageView*)[cell viewWithTag:2]; 
UILabel *label=(UILabel*)[cell viewWithTag:3]; 

NSDictionary *dToAccess = [self.listOfItems objectAtIndex:indexPath.row]; 
[lbl setText:[dToAccess valueForKey:@"title"]]; 
NSUInteger intVal = [[dToAccess valueForKey:@"rating"] integerValue]; 
switch (intVal) { 
    case 0: 
     [imgV setImage:[UIImage imageNamed:@"0star.png"]]; 
     [label setText:@"Snitt 0"]; 
     label.textColor=[UIColor blueColor]; 
     break; 
    case 1: 
     [imgV setImage:[UIImage imageNamed:@"1star.png"]]; 
     [label setText:@"Snitt 1"]; 
     break; 
    case 2: 
     [imgV setImage:[UIImage imageNamed:@"2star.png"]]; 
     [label setText:@"Snitt 2"]; 
     break; 
    case 3: 
     [imgV setImage:[UIImage imageNamed:@"3star.png"]]; 
     [label setText:@"Snitt 3"]; 
     break; 
    case 4: 
     [imgV setImage:[UIImage imageNamed:@"4star.png"]]; 
     [label setText:@"Snitt 4"]; 
     break; 
    case 5: 
     [imgV setImage:[UIImage imageNamed:@"5star.png"]]; 
     [label setText:@"Snitt 5"]; 
     break; 
    default: 
     break; 
} 
CGSize size = [lbl.text sizeWithFont:[UIFont boldSystemFontOfSize:16] forWidth:205 lineBreakMode:UILineBreakModeCharacterWrap]; 
[lbl setFrame:CGRectMake(5, 0, size.width, 43)]; 

[imgV setFrame:CGRectMake(5+size.width+5, 4, 118, 36)]; 

return cell; 
} 
+0

你能否澄清你的问题。你想改变'label.text'的颜色吗? “UITableViewCellStyleValue1”的颜色是什么意思? – 2012-03-15 04:53:58

+0

我已经将label.text设置为蓝色。它给了我一个藏青色。想要的是将颜色更改为浅蓝色(设置UITableViewCellStyleValue1时的颜色类似于详细的文本标签)。 – stephensam 2012-03-15 04:57:28

回答

3

您可以通过执行获得UITableViewCellStyleValue1细节标签单元格颜色:

const float* colors = CGColorGetComponents(lightBlueColor.CGColor); 

这取决于:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"resuse"]; 
UIColor *lightBlueColor = cell.detailTextLabel.textColor; 

可细分为它做的RGB值和Alpha如果你想要在代码中硬编码值或者每次只计算一次,你就可以使用它。我会说硬编码会更好。

+0

谢谢dat完全工作... – stephensam 2012-03-15 05:31:36

0

诀窍是抓住设置颜色的标签。如果您已经推出了自己的单元格,快速要做的就是为您的标签在笔尖上添加标签值(与标签的其他视图属性一起查找)。

然后,当你正在配置的电池,得到这样的标签:

UILabel *label = (UILabel *)[cell viewWithTag:16]; // 16 is a unique in the view, non-zero int that you make up yourself 
label.textColor = [UIColor redColor]; 

另一种方法是从网点您榫连接性能上的自定义单元格,但标签可能是一个更简单的方法开始。