2010-08-20 128 views
3

我正在開發一個iphone應用程序。在下面的圖片中,我希望第一個名字是純字體,而最後一個名字是粗體。我該怎麼做?請給我建議。請檢查該圖片:格式化iPhone中的UITableView單元格

alt text

另一個questio..Now我覺得相反的方式,但這裏的問題是,第一線和第二線,你看到的都是同一個字符串的一部分。我希望第一行是粗體,第二行是純字體。我將它存儲在字典中。所以我的字典有一個鍵,值是一串名字和部門。我無法設置字體。我試圖創建兩個標籤,並嘗試根據索引拆分字符串,並將其分配給我創建的標籤。但是,在這種情況下,索引不斷變化,因爲可能有聯繫人的名字,或者可能沒有任何名字。

在這種情況下應該PRINICIPAL在普通的字體和名稱應該是大膽

請參閱下面的圖片:

alt text

回答

5

由於顯示名稱字符串的標籤定義了格式和樣式,如果您想要使用不同的樣式,則需要針對每種每種樣式都有不同的樣式。具體來說,您將需要一個用於名字的uilabel:firstNameLabel.font = [UIFont systemFontOfSize:12];和一個用於姓氏:lastNameLabel.font = [UIFont boldSystemFontOfSize:12];

第一個名字字符串是firstNameLabel,然後調用[firstNameLabel sizeToFit]以使其中的標籤文本適合。然後使用firstNameLabel的框架將lastNameLabel直接放在它之後。

UILabel * firstNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(10,10,100,25)]; 
firstNameLabel.tag = firstNameLabelTag //This should be a constant probably 
firstNameLabel.font = [UIFont systemFontOfSize:12]; 
firstNameLabel.text = theStringRepresentingTheFirstName; 
[firstNameLabel sizeToFit]; 

UILabel * lastNameLabel = [[UILabel alloc] initWithFrame: 
    CGRectMake(10+firstNameLabel.frame.size.width+2, 10, 100, 25)]; 
lastNameLabel.tag = lastNameLabelTag //This should be a constant probably 
lastNameLabel.font = [UIFont boldSystemFontOfSize:12]; 
lastNameLabel.text = theLastNameString;. 

[cell.contentView addSubview:firstNameLabel]; 
[cell.contentView addSubview:lastNameLabel]; 

至於分裂名稱字符串,你可能相當有限。我會分開第一個空格,並假設第一個字符串是最後一個字符(如在第一張圖片中)。

原理案例是相似的,你需要一個標籤爲你想呈現的每種風格。

7

Starting OS 6.0在UILabel上有一個屬性叫做attributesText,它有NSAttributedString類型(可在iOS 3.2及更高版本中使用)。

這是我如何使用它:

NSDictionary *firstNameAttributes = @{ NSFontAttributeName : [UIFont fontWithName:@"Helvetica" size:18.0], 
              NSStrokeColorAttributeName : [UIColor blackColor]}; 
    NSDictionary *lastNameAttributes = @{NSFontAttributeName : [UIFont fontWithName:@"Helvetica-Bold" size:20.0], 
             NSStrokeColorAttributeName : [UIColor blackColor]}; 
    NSString* first = ... first name ..; 
    NSString* last = [NSString stringWithFormat:@" %@",... last name ....]; 
    NSMutableAttributedString * name = 
    [[NSMutableAttributedString alloc] initWithString:first attributes:firstNameAttributes]; 
    NSMutableAttributedString * lastName = 
    [[NSMutableAttributedString alloc] initWithString:last attributes:lastNameAttributes]; 
    [name appendAttributedString:lastName]; 

    [[cell textLabel] setAttributedText:name]; 

又見Introduction to Attributed String Programming Guide

0
- (IBAction)buttonPressed:(UIButton *)sender { 
    NSString *title = [sender titleForState:UIControlStateNormal]; 
    NSString *plainText = [NSString stringWithFormat:@"%@ button pressed.", title]; 
    NSMutableAttributedString *styledText = [[NSMutableAttributedString alloc] initWithString:plainText]; 
    NSDictionary *attributes = @{ NSFontAttributeName : [UIFont boldSystemFontOfSize:self.statusLabel.font.pointSize]}; 
    NSRange nameRange = [plainText rangeOfString:title]; 
    [styledText setAttributes:attributes range:nameRange]; 
    self.statusLabel.attributedText = styledText; 

}