fix 个人信息
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
//
|
||||
// LYSDatePickerItem.m
|
||||
// LYSDatePickerController
|
||||
//
|
||||
// Created by HENAN on 2018/5/4.
|
||||
// Copyright © 2018年 liyangshuai. All rights reserved.
|
||||
//
|
||||
|
||||
#import "LYSDatePickerItem.h"
|
||||
|
||||
@interface LYSDatePickerItem ()
|
||||
|
||||
@property (nonatomic,strong)NSInvocation *invocation;
|
||||
@property (nonatomic,strong,readwrite)UIView *itemView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation LYSDatePickerItem
|
||||
|
||||
@synthesize textColor = _textColor;
|
||||
@synthesize itemFont = _itemFont;
|
||||
@synthesize title = _title;
|
||||
|
||||
+ (instancetype)btnWithTitle:(NSString *)title target:(id)target action:(SEL)action
|
||||
{
|
||||
return [[LYSDatePickerItem alloc] initBtnWithTitle:title target:target action:action];
|
||||
}
|
||||
|
||||
+ (instancetype)labelWithTitle:(NSString *)title
|
||||
{
|
||||
return [[LYSDatePickerItem alloc] initLabelWithTitle:title];
|
||||
}
|
||||
|
||||
- (instancetype)initBtnWithTitle:(NSString *)title target:(id)target action:(SEL)action
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
UIButton *btn = [[UIButton alloc] init];
|
||||
btn.titleLabel.font = [UIFont systemFontOfSize:16];
|
||||
[btn setTitle:title forState:(UIControlStateNormal)];
|
||||
[btn setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];
|
||||
[btn addTarget:self action:@selector(btnAction) forControlEvents:(UIControlEventTouchUpInside)];
|
||||
self.invocation = [NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:action]];
|
||||
[self.invocation setSelector:action];
|
||||
[self.invocation setTarget:target];
|
||||
// 从2开始是因为前两个参数已经被selector和target占用
|
||||
[self.invocation setArgument:&self atIndex:2];
|
||||
self.itemView = btn;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initLabelWithTitle:(NSString *)title
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
UILabel *label = [[UILabel alloc] init];
|
||||
label.textColor = [UIColor blackColor];
|
||||
label.font = [UIFont systemFontOfSize:16];
|
||||
label.text = title;
|
||||
self.itemView = label;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)btnAction {
|
||||
[_invocation invoke];
|
||||
}
|
||||
|
||||
- (void)updateSize
|
||||
{
|
||||
CGRect frame = self.itemView.frame;
|
||||
frame.size = [self sizeWithTitle:self.title font:self.itemFont];
|
||||
self.itemView.frame = frame;
|
||||
}
|
||||
|
||||
- (CGSize)sizeWithTitle:(NSString *)title font:(UIFont *)font {
|
||||
return [title boundingRectWithSize:CGSizeMake([UIScreen mainScreen].bounds.size.width, 100) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName: font} context:nil].size;
|
||||
}
|
||||
|
||||
- (UIColor *)textColor {
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
return [itemView titleColorForState:(UIControlStateNormal)];
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
return itemView.textColor;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (UIFont *)itemFont {
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
return itemView.titleLabel.font;
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
return itemView.font;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *)title {
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
return [itemView titleForState:(UIControlStateNormal)];
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
return itemView.text;
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)setTextColor:(UIColor *)textColor {
|
||||
_textColor = textColor;
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
[itemView setTitleColor:_textColor forState:(UIControlStateNormal)];
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
itemView.textColor = _textColor;
|
||||
}
|
||||
}
|
||||
- (void)setItemFont:(UIFont *)itemFont {
|
||||
_itemFont = itemFont;
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
itemView.titleLabel.font = _itemFont;
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
itemView.font = _itemFont;
|
||||
}
|
||||
}
|
||||
- (void)setTitle:(NSString *)title {
|
||||
_title = title;
|
||||
if ([self.itemView isKindOfClass:[UIButton class]]) {
|
||||
UIButton *itemView = (UIButton *)self.itemView;
|
||||
[itemView setTitle:_title forState:(UIControlStateNormal)];
|
||||
}
|
||||
if ([self.itemView isKindOfClass:[UILabel class]]) {
|
||||
UILabel *itemView = (UILabel *)self.itemView;
|
||||
itemView.text = _title;
|
||||
}
|
||||
}
|
||||
@end
|
||||
Reference in New Issue
Block a user