134 lines
4.2 KiB
Objective-C
134 lines
4.2 KiB
Objective-C
//
|
|
// YMMineUserInfoDateView.m
|
|
// YUMI
|
|
//
|
|
// Created by YUMI on 2021/9/23.
|
|
//
|
|
|
|
#import "XPMineUserInfoDateView.h"
|
|
///Third
|
|
#import <Masonry/Masonry.h>
|
|
///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
|