NewsBlur/clients/ios/Classes/FontListViewController.m
David Sinclair 535a66615b iOS: added #791 (separate fonts list)
Sorry for the delay getting to this.  I've implemented the separate
list of fonts, listing the sample one you provided.  Once you get the
others, they can be added to the fonts folder in the resources, and
listed in the -[FontSettingsViewController viewWillAppear:] method (I
can do that if you like).
2015-10-31 16:35:32 -07:00

93 lines
2.7 KiB
Objective-C

//
// FontListViewController.m
// NewsBlur
//
// Created by David Sinclair on 2015-10-30.
// Copyright © 2015 NewsBlur. All rights reserved.
//
#import "FontListViewController.h"
#import "FontTableViewCell.h"
#import "NewsBlurAppDelegate.h"
#import "StoryPageControl.h"
@interface FontListViewController ()
@property (nonatomic, strong) NSIndexPath *selectedIndexPath;
@end
@implementation FontListViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.fontTableView.backgroundColor = UIColorFromRGB(0xECEEEA);
self.fontTableView.separatorColor = UIColorFromRGB(0x909090);
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.title = @"Font";
self.preferredContentSize = CGSizeMake(240.0, 38.0 * self.fonts.count);
}
#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.fonts.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIndentifier = @"FontCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIndentifier];
NSDictionary *font = self.fonts[indexPath.row];
if (!cell) {
cell = [[FontTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIndentifier];
}
cell.textLabel.attributedText = font[@"name"];
NSString *fontStyle = [[NSUserDefaults standardUserDefaults] stringForKey:@"fontStyle"];
if (!fontStyle) {
fontStyle = @"NB-helvetica";
}
if ([font[@"html"] isEqualToString:fontStyle]) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.selectedIndexPath = indexPath;
}
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 38.0;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NewsBlurAppDelegate *appDelegate = [NewsBlurAppDelegate sharedAppDelegate];
NSDictionary *font = self.fonts[indexPath.row];
NSString *style = font[@"style"];
if (self.selectedIndexPath) {
FontTableViewCell *cell = [self.fontTableView cellForRowAtIndexPath:self.selectedIndexPath];
cell.accessoryType = UITableViewCellAccessoryNone;
}
FontTableViewCell *cell = [self.fontTableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.selectedIndexPath = indexPath;
[appDelegate.storyPageControl setFontStyle:style];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@end