我正在开发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/