Как-то на форуме был вопрос о шрифтах в iOS. Там и родился этот пример. Перед нами простая задача: вывести все шрифты, которые доступны в iOS. Получать список шрифтов и их названия мы будем через класс UIFont. Класс имеет два статических метода для получения семейства шрифтов и названия шрифтов в каждом семействе.
Чтобы вывести список — достаточно создать UITableView, а методы UITableViewDataSource реализовать так:
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { return [[UIFont familyNames] objectAtIndex:section]; }-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [[UIFont fontNamesForFamilyName:[[UIFont familyNames] objectAtIndex:section]] count]; }
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { return [[UIFont familyNames] count]; }
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString* cellID = @"cellID"; UITableViewCell* cell; cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if ( !cell ) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID] autorelease]; cell.textLabel.text = @"Привет, Мир!"; }
NSString* fontName = [[UIFont fontNamesForFamilyName:[[UIFont familyNames] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
cell.textLabel.font = [UIFont fontWithName:fontName size:25.0];
return cell; }
В итоге, мы получим вот что:
С помощью статического метода familyNames в классе UIFont мы получаем названия всех семейств шрифтов, которые доступны в системе. А с помощью статического метода fontNamesForFamilyName: можно получить названия всех шрифтов в семействе.