添加homeheadView
This commit is contained in:
61
keyBoard/Class/Home/V/KBTopImageButton.m
Normal file
61
keyBoard/Class/Home/V/KBTopImageButton.m
Normal file
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// KBTopImageButton.m
|
||||
// keyBoard
|
||||
//
|
||||
// 上图下文按钮:图片在上、文字在下,内部简单布局,适合图标型功能入口
|
||||
//
|
||||
|
||||
#import "KBTopImageButton.h"
|
||||
#import "UIColor+Extension.h"
|
||||
|
||||
@interface KBTopImageButton()
|
||||
@property (nonatomic, strong) UIImageView *iconView;
|
||||
@property (nonatomic, strong) UILabel *textLabel;
|
||||
@end
|
||||
|
||||
@implementation KBTopImageButton
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
_spacing = 6;
|
||||
_iconSize = CGSizeMake(44, 44);
|
||||
|
||||
_iconView = [[UIImageView alloc] init];
|
||||
_iconView.contentMode = UIViewContentModeScaleAspectFit;
|
||||
[self addSubview:_iconView];
|
||||
|
||||
_textLabel = [[UILabel alloc] init];
|
||||
_textLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightSemibold];
|
||||
_textLabel.textColor = [UIColor colorWithHex:0x2B2B2B];
|
||||
_textLabel.textAlignment = NSTextAlignmentCenter;
|
||||
_textLabel.numberOfLines = 2;
|
||||
[self addSubview:_textLabel];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (CGSize)intrinsicContentSize {
|
||||
CGFloat width = MAX(_iconSize.width, 60);
|
||||
return CGSizeMake(width, _iconSize.height + _spacing + 34);
|
||||
}
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
CGFloat W = CGRectGetWidth(self.bounds);
|
||||
CGFloat H = CGRectGetHeight(self.bounds);
|
||||
CGSize iconS = self.iconSize;
|
||||
CGFloat ix = (W - iconS.width) * 0.5;
|
||||
self.iconView.frame = CGRectMake(ix, 0, iconS.width, iconS.height);
|
||||
|
||||
CGFloat labelTop = CGRectGetMaxY(self.iconView.frame) + self.spacing;
|
||||
CGFloat lh = MAX(0, H - labelTop);
|
||||
self.textLabel.frame = CGRectMake(0, labelTop, W, lh);
|
||||
}
|
||||
|
||||
- (void)setHighlighted:(BOOL)highlighted {
|
||||
[super setHighlighted:highlighted];
|
||||
self.alpha = highlighted ? 0.6 : 1.0;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user