mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-10-29 12:00:47 -04:00
84 lines
2.6 KiB
Objective-C
84 lines
2.6 KiB
Objective-C
//
|
|
// FLEXTableView.m
|
|
// FLEX
|
|
//
|
|
// Created by Tanner on 4/17/19.
|
|
// Copyright © 2020 FLEX Team. All rights reserved.
|
|
//
|
|
|
|
#import "FLEXTableView.h"
|
|
#import "FLEXUtility.h"
|
|
#import "FLEXSubtitleTableViewCell.h"
|
|
#import "FLEXMultilineTableViewCell.h"
|
|
#import "FLEXKeyValueTableViewCell.h"
|
|
#import "FLEXCodeFontCell.h"
|
|
|
|
FLEXTableViewCellReuseIdentifier const kFLEXDefaultCell = @"kFLEXDefaultCell";
|
|
FLEXTableViewCellReuseIdentifier const kFLEXDetailCell = @"kFLEXDetailCell";
|
|
FLEXTableViewCellReuseIdentifier const kFLEXMultilineCell = @"kFLEXMultilineCell";
|
|
FLEXTableViewCellReuseIdentifier const kFLEXMultilineDetailCell = @"kFLEXMultilineDetailCell";
|
|
FLEXTableViewCellReuseIdentifier const kFLEXKeyValueCell = @"kFLEXKeyValueCell";
|
|
FLEXTableViewCellReuseIdentifier const kFLEXCodeFontCell = @"kFLEXCodeFontCell";
|
|
|
|
#pragma mark Private
|
|
|
|
@interface UITableView (Private)
|
|
- (CGFloat)_heightForHeaderInSection:(NSInteger)section;
|
|
- (NSString *)_titleForHeaderInSection:(NSInteger)section;
|
|
@end
|
|
|
|
@implementation FLEXTableView
|
|
|
|
+ (instancetype)flexDefaultTableView {
|
|
if (@available(iOS 13.0, *)) {
|
|
return [[self alloc] initWithFrame:CGRectZero style:UITableViewStyleInsetGrouped];
|
|
} else {
|
|
return [[self alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
|
|
}
|
|
}
|
|
|
|
#pragma mark - Initialization
|
|
|
|
+ (id)groupedTableView {
|
|
if (@available(iOS 13.0, *)) {
|
|
return [[self alloc] initWithFrame:CGRectZero style:UITableViewStyleInsetGrouped];
|
|
} else {
|
|
return [[self alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
|
|
}
|
|
}
|
|
|
|
+ (id)plainTableView {
|
|
return [[self alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
|
|
}
|
|
|
|
+ (id)style:(UITableViewStyle)style {
|
|
return [[self alloc] initWithFrame:CGRectZero style:style];
|
|
}
|
|
|
|
- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style {
|
|
self = [super initWithFrame:frame style:style];
|
|
if (self) {
|
|
[self registerCells:@{
|
|
kFLEXDefaultCell : [FLEXTableViewCell class],
|
|
kFLEXDetailCell : [FLEXSubtitleTableViewCell class],
|
|
kFLEXMultilineCell : [FLEXMultilineTableViewCell class],
|
|
kFLEXMultilineDetailCell : [FLEXMultilineDetailTableViewCell class],
|
|
kFLEXKeyValueCell : [FLEXKeyValueTableViewCell class],
|
|
kFLEXCodeFontCell : [FLEXCodeFontCell class],
|
|
}];
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
|
|
#pragma mark - Public
|
|
|
|
- (void)registerCells:(NSDictionary<NSString*, Class> *)registrationMapping {
|
|
[registrationMapping enumerateKeysAndObjectsUsingBlock:^(NSString *identifier, Class cellClass, BOOL *stop) {
|
|
[self registerClass:cellClass forCellReuseIdentifier:identifier];
|
|
}];
|
|
}
|
|
|
|
@end
|