2012-03-15 3 views
0

это noob question.i подклассифицировал мою ячейку представления таблицы в построителе интерфейса и создал табличный вид. Я хочу изменить цвет текстовой метки на цвет UITableViewCellStyleValue1 (светлый синий). Поскольку я создал ячейку в .nib file.im, не смог использовать cell.detailtextlabel.text.could, ребята, помогите мне.как изменить цвет textlabel на 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'? –

+0

i ve set label.text как синий цвет. Который дает мне темно-синий цвет. То, что нужно, - это изменить цвет на голубой (цвет аналогичен при установке UITableViewCellStyleValue1 в деталях textlabel). – stephensam

ответ

3

Вы можете получить цвет детали этикетки ячейки для UITableViewCellStyleValue1, выполнив:

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

, которые могут быть разбиты на это RGB значения и альфа, выполнив:

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

Это вверх вам, если вы хотите жестко задавать значения в коде или просто вычислять его каждый раз. Я бы сказал, что hardcode будет лучше.

+0

спасибо, что полностью работал ... – stephensam

0

Трюк получает метку, на которой устанавливается цвет. Если вы развернули свою собственную ячейку, вам нужно сделать ярлык тегом в nib (найдите его вместе с другими свойствами представления вашего ярлыка).

Затем, когда вы настраиваете камеру, получить этикетку, как это:

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]; 

В качестве альтернативы можно подключить выходы из вашего пера к свойствам на пользовательской ячейке, но теги может быть более простым способом начать.

Смежные вопросы