2012-03-15 3 views
0

이것은 멍청한 질문입니다 .i 인터페이스 빌더에서 내 테이블보기 셀을 하위 클래스로 만들고 테이블보기를 만들었습니다. 원하는 것은 textlabel의 색상을 UITableViewCellStyleValue1 색상으로 변경하는 것입니다. 파란색) .sin.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

나는 파란색으로 blue.which label.text을 설정했습니다. 파란색을 주면됩니다. 원하는 것은 밝은 파란색으로 색상을 변경하는 것입니다 (색상은 UITableViewCellStyleValue1을 자세하게 설정하면 비슷합니다). – stephensam

답변

3

당신은 수행하여 UITableViewCellStyleValue1에 대한 세부 레이블 셀 색상을 얻을 수 있습니다 :

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

그것은이야 :

그것으로 나눌 수 있습니다
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"resuse"]; 
UIColor *lightBlueColor = cell.detailTextLabel.textColor; 

수행하여 RGB 값과 알파의 때마다 코드의 값을 하드 코드하거나 계산할 때마다 나는 하드 코드가 더 좋을 것이라고 말하고 싶다.

+0

감사합니다 dat 완전히 일했다 ... – stephensam

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

대안은 사용자 정의 셀 속성에 펜촉에서 콘센트를 연결하는 것입니다,하지만 태그에 대한 간단한 방법이 될 수있다 시작하다.

관련 문제