2011-12-17 104 views
0

鑑於以下UITableViewCell代碼,我們如何使myObj.firstName紅色和myObj.lastName綠色?UITableViewCell中的多種顏色

UITableViewCell *cell; 
.... 
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ %@", myObj.firstName, myObj.lastName]; 

回答

0

你將需要UILabel兩個實例來實現這一點,因爲UILabel不支持的NSAttributedString繪製實例。您也可以繼承UITableViewCell,覆蓋drawRect:,並使用NSString上的-drawTextAtPoint:方法手動繪製帶有所需顏色的文本。

+0

顏色需要動態地根據數據集解決了這個。這仍然是可以在一個子類中工作的東西嗎? – jwhat

1

您可以嘗試將cell.textlabel設置爲OHAttributedLabel實例。

OHAttributeLabel @ GitHub

+0

這似乎不適用於ios5。許多錯誤,即使添加了CoreText框架。 – jwhat

0

或許,這可以幫助別人,我已經......

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CustomCell *cell = [tv dequeueReusableCellWithIdentifier:@"Cell"]; 

    ... 

    // Get the size of UILabel firstName. 
    CGSize size = [[cell.firstName text] sizeWithFont:[cell.firstName font]]; 

    // Draw UILabel lastName next to UILabel firstName. 
    // UILabel firstName was initialized in CustomCell.m in -(void)layoutSubviews. 
    cell.lastName.frame = CGRectMake(size.width + 50, 23, 40, 15); 

    // Make lastName green, oh yeah! 
    cell.lastName.textColor = [UIColor colorWithRed:0 green:0.6 blue:0 alpha:1]; 
}