Как-то на форуме был вопрос о шрифтах в 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: можно получить названия всех шрифтов в семействе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *