我正在开发iPhone应用程序,但我一时陷入困境,

我想做的是,我有UITableView,并且在UITableViewCell中我想要显示这样的文本:

印度在Country23
澳大利亚在Country2中
美国在Country22
AMERI在Country26
法国在Country12
意大利在Country20
西印度群岛在Country42
肯尼亚
南非
新西兰
in之前的文本在一个数组中,而in之后的文本(在粗体中)在另一个数组中,我也想更改in之后的粗体文本的文本颜色

注意:有些单元格包含粗体文本,有些则没有

如何在UITableVIew中显示这样的数据?

,请帮助并提前致谢。

最佳答案

这是一个完整的例子

@implementation MyTableViewController
{
    NSArray *_countryNames;
    NSArray *_countryNumbers;
}

- (void)viewDidLoad
{
    _countryNames = @[@"India", @"Australia", @"USA"];
    _countryNumbers = @[@"Country23", @"Country2", @"Country22"];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return MIN(_countryNames.count, _countryNumbers.count);
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    static NSString *identifier = @"reuseIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: identifier];
    }
    NSString *text1 = _countryNames[indexPath.row];
    NSString *text2 = _countryNumbers[indexPath.row];
    NSString *completeText = [[text1 stringByAppendingString:@" " ] stringByAppendingString:text2];

    const CGFloat fontSize = 13;
    UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];
    UIFont *regularFont = [UIFont systemFontOfSize:fontSize];

    NSDictionary *attrs = @{NSFontAttributeName : regularFont};

    NSDictionary *subAttrs = @{NSFontAttributeName : boldFont};
    NSRange range = NSMakeRange(text1.length + 1, text2.length);

    NSMutableAttributedString *attributedText =
    [[NSMutableAttributedString alloc] initWithString:completeText
                                           attributes:attrs];
    [attributedText setAttributes:subAttrs range:range];

    [cell.textLabel setAttributedText:attributedText];
    return cell;
}

@end

关于ios - 在UITableViewCell中追加UILabel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24525299/

10-10 00:45