mirror of
				https://github.com/SoPat712/YTLitePlus.git
				synced 2025-10-31 12:54:13 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| //
 | |
| //  FLEXTableContentHeaderCell.m
 | |
| //  FLEX
 | |
| //
 | |
| //  Created by Peng Tao on 15/11/26.
 | |
| //  Copyright © 2015年 f. All rights reserved.
 | |
| //
 | |
| 
 | |
| #import "FLEXTableColumnHeader.h"
 | |
| #import "FLEXColor.h"
 | |
| #import "UIFont+FLEX.h"
 | |
| #import "FLEXUtility.h"
 | |
| 
 | |
| static const CGFloat kMargin = 5;
 | |
| static const CGFloat kArrowWidth = 20;
 | |
| 
 | |
| @interface FLEXTableColumnHeader ()
 | |
| @property (nonatomic, readonly) UILabel *arrowLabel;
 | |
| @property (nonatomic, readonly) UIView *lineView;
 | |
| @end
 | |
| 
 | |
| @implementation FLEXTableColumnHeader
 | |
| 
 | |
| - (instancetype)initWithFrame:(CGRect)frame {
 | |
|     self = [super initWithFrame:frame];
 | |
|     if (self) {
 | |
|         self.backgroundColor = FLEXColor.secondaryBackgroundColor;
 | |
|         
 | |
|         _titleLabel = [UILabel new];
 | |
|         _titleLabel.font = UIFont.flex_defaultTableCellFont;
 | |
|         [self addSubview:_titleLabel];
 | |
|         
 | |
|         _arrowLabel = [UILabel new];
 | |
|         _arrowLabel.font = UIFont.flex_defaultTableCellFont;
 | |
|         [self addSubview:_arrowLabel];
 | |
|         
 | |
|         _lineView = [UIView new];
 | |
|         _lineView.backgroundColor = FLEXColor.hairlineColor;
 | |
|         [self addSubview:_lineView];
 | |
|         
 | |
|     }
 | |
|     return self;
 | |
| }
 | |
| 
 | |
| - (void)setSortType:(FLEXTableColumnHeaderSortType)type {
 | |
|     _sortType = type;
 | |
|     
 | |
|     switch (type) {
 | |
|         case FLEXTableColumnHeaderSortTypeNone:
 | |
|             _arrowLabel.text = @"";
 | |
|             break;
 | |
|         case FLEXTableColumnHeaderSortTypeAsc:
 | |
|             _arrowLabel.text = @"⬆️";
 | |
|             break;
 | |
|         case FLEXTableColumnHeaderSortTypeDesc:
 | |
|             _arrowLabel.text = @"⬇️";
 | |
|             break;
 | |
|     }
 | |
| }
 | |
| 
 | |
| - (void)layoutSubviews {
 | |
|     [super layoutSubviews];
 | |
|     
 | |
|     CGSize size = self.frame.size;
 | |
|     
 | |
|     self.titleLabel.frame = CGRectMake(kMargin, 0, size.width - kArrowWidth - kMargin, size.height);
 | |
|     self.arrowLabel.frame = CGRectMake(size.width - kArrowWidth, 0, kArrowWidth, size.height);
 | |
|     self.lineView.frame = CGRectMake(size.width - 1, 2, FLEXPointsToPixels(1), size.height - 4);
 | |
| }
 | |
| 
 | |
| - (CGSize)sizeThatFits:(CGSize)size {
 | |
|     CGFloat margins = kArrowWidth - 2 * kMargin;
 | |
|     size = CGSizeMake(size.width - margins, size.height);
 | |
|     CGFloat width = [_titleLabel sizeThatFits:size].width + margins;
 | |
|     return CGSizeMake(width, size.height);
 | |
| }
 | |
| 
 | |
| @end
 | 
