Files
peko-ios/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoDateView.m
2023-07-14 18:50:55 +08:00

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