// // YMMineUserInfoDateView.m // YUMI // // Created by YUMI on 2021/9/23. // #import "XPMineUserInfoDateView.h" ///Third #import ///Tool #import "DJDKMIMOMColor.h" @interface XPMineUserInfoDateView () /// @property (nonatomic,strong) UIButton *cancleButton; /// @property (nonatomic,strong) UIButton *sureButton; /// @property (nonatomic, strong) UIDatePicker *datePicker; ///样式 @property (nonatomic, strong) NSDateFormatter *dateFormatter; @end @implementation XPMineUserInfoDateView - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self initSubViews]; [self initSubViewConstraints]; } return self; } #pragma mark - Private Method - (void)initSubViews { self.backgroundColor = [UIColor whiteColor]; [self addSubview:self.cancleButton]; [self addSubview:self.sureButton]; [self addSubview:self.datePicker]; } - (void)initSubViewConstraints { [self.datePicker mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.mas_equalTo(self); make.bottom.mas_equalTo(self); make.top.mas_equalTo(self.cancleButton.mas_bottom); }]; [self.cancleButton mas_makeConstraints:^(MASConstraintMaker *make) { make.left.top.mas_equalTo(self); make.height.mas_equalTo(30); make.width.mas_equalTo(50); }]; [self.sureButton mas_makeConstraints:^(MASConstraintMaker *make) { make.right.mas_equalTo(self); make.width.height.centerY.mas_equalTo(self.cancleButton); }]; } #pragma mark - Event - (void)onClickCancelButton:(UIButton *)sender { if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoDateView:didClickCancleButton:)]) { [self.delegate xPMineUserInfoDateView:self didClickCancleButton:sender]; } } - (void)onClickSureButton:(UIButton *)sender { NSDate * date = self.datePicker.date; if (self.delegate && [self.delegate respondsToSelector:@selector(xPMineUserInfoDateView:didClickSureButton:)]) { NSTimeZone *timeZone= [NSTimeZone systemTimeZone]; NSInteger seconds= [timeZone secondsFromGMTForDate:date]; NSDate *newDate= [date dateByAddingTimeInterval:seconds]; NSString *dateStr = [self.dateFormatter stringFromDate:newDate]; [self.delegate xPMineUserInfoDateView:self didClickSureButton:dateStr]; } } #pragma mark - Getters And Setters - (void)setTime:(NSTimeInterval)time { _time = time; NSDate *date = [NSDate dateWithTimeIntervalSince1970:time]; self.datePicker.date = date; } - (UIButton *)cancleButton { if (!_cancleButton) { _cancleButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_cancleButton setTitle:YMLocalizedString(@"XPMineUserInfoDateView0") forState:UIControlStateNormal]; [_cancleButton addTarget:self action:@selector(onClickCancelButton:) forControlEvents:UIControlEventTouchUpInside]; _cancleButton.titleLabel.font = [UIFont systemFontOfSize:14]; [_cancleButton setTitleColor:[DJDKMIMOMColor secondTextColor] forState:UIControlStateNormal]; } return _cancleButton; } - (UIButton *)sureButton { if (!_sureButton) { _sureButton = [UIButton buttonWithType:UIButtonTypeCustom]; [_sureButton setTitle:YMLocalizedString(@"XPMineUserInfoDateView1") forState:UIControlStateNormal]; [_sureButton addTarget:self action:@selector(onClickSureButton:) forControlEvents:UIControlEventTouchUpInside]; _sureButton.titleLabel.font = [UIFont systemFontOfSize:14]; [_sureButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; } return _sureButton; } - (NSDateFormatter *)dateFormatter { if (!_dateFormatter) { _dateFormatter = [[NSDateFormatter alloc] init]; _dateFormatter.dateFormat = @"yyyy-MM-dd"; } return _dateFormatter; } - (UIDatePicker *)datePicker { if (!_datePicker){ _datePicker = [[UIDatePicker alloc] init]; _datePicker.datePickerMode = UIDatePickerModeDate; NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]; _datePicker.locale = locale; _datePicker.layer.cornerRadius = 5; _datePicker.layer.masksToBounds = YES; if (@available(iOS 13.4, *)) { _datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; } NSDate *date = [self.dateFormatter dateFromString:@"2000-07-01"]; _datePicker.date = date; _datePicker.backgroundColor = [UIColor whiteColor]; } return _datePicker; } @end