You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
255 lines
8.0 KiB
255 lines
8.0 KiB
// |
|
// AddCourseViewController.m |
|
// tongxin |
|
// |
|
// Created by ecell on 2021/11/25. |
|
// Copyright © 2021 xTT. All rights reserved. |
|
// |
|
|
|
#import "AddCourseViewController.h" |
|
#import "CourseModel.h" |
|
|
|
@interface AddCourseViewController () |
|
|
|
@property (nonatomic, strong)NSMutableArray *weekLabelArr; |
|
@property (nonatomic, strong)NSMutableArray *lessionLabelArr; |
|
@property (nonatomic, assign)NSInteger curWeek; |
|
@property (nonatomic, assign)NSInteger curLession; |
|
|
|
@end |
|
|
|
@implementation AddCourseViewController |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
|
|
if (self.navigationController.viewControllers.count > 1) { |
|
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[myHelper getImageWithName:@"返回"] |
|
style:UIBarButtonItemStylePlain target:self |
|
action:@selector(goBack:)]; |
|
} |
|
|
|
if (_curModel) { |
|
self.title = @"修改课程"; |
|
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"保存" style:UIBarButtonItemStylePlain target:self action:@selector(addCourse:)]; |
|
} else { |
|
self.title = @"添加课程"; |
|
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"添加" style:UIBarButtonItemStylePlain target:self action:@selector(addCourse:)]; |
|
} |
|
|
|
[self setUpUI]; |
|
[self setUpData]; |
|
[self setUpEvent]; |
|
} |
|
|
|
- (void)goBack:(id)sender { |
|
if (self.navigationController.viewControllers.count > 1) { |
|
[self.navigationController popViewControllerAnimated:YES]; |
|
}else{ |
|
[self dismissViewControllerAnimated:YES completion:nil]; |
|
} |
|
} |
|
|
|
- (void)addCourse:(id)sender{ |
|
|
|
if (_tfCourseName.text && _tfCourseName.text.length <= 0) { |
|
[UICommon MessageErrorText:@"课程名不能为空"]; |
|
return; |
|
} |
|
if (_curWeek == -1) { |
|
[UICommon MessageErrorText:@"星期不能为空"]; |
|
return; |
|
} |
|
if (_curLession == -1) { |
|
[UICommon MessageErrorText:@"节次不能为空"]; |
|
return; |
|
} |
|
|
|
CourseModel *model = [CourseModel courseWithName:_tfCourseName.text dayIndex:_curWeek startCourseIndex:_curLession endCourseIndex:_curLession]; |
|
NSString *time = [NSString stringWithFormat:@"%@%@",_tfStartTime.text, _tfEndTime.text]; |
|
time = [time stringByReplacingOccurrencesOfString:@":" withString:@""]; |
|
|
|
if (self.delegate) { |
|
[self.delegate addCourse:self course:model time:time]; |
|
} |
|
|
|
[self goBack:nil]; |
|
} |
|
|
|
- (void)setUpData { |
|
if (_curModel) { |
|
_curWeek = _curModel.dayIndex; |
|
_curLession = _curModel.startCourseIndex; |
|
|
|
UILabel *selectedWeekLab = _weekLabelArr[_curWeek-1]; |
|
selectedWeekLab.backgroundColor = mainColor; |
|
selectedWeekLab.textColor = [UIColor whiteColor]; |
|
selectedWeekLab.layer.borderColor = [UIColor whiteColor].CGColor; |
|
|
|
UILabel *selectedLession = _lessionLabelArr[_curLession-1]; |
|
selectedLession.backgroundColor = mainColor; |
|
selectedLession.textColor = [UIColor whiteColor]; |
|
selectedLession.layer.borderColor = [UIColor whiteColor].CGColor; |
|
|
|
_tfCourseName.text = _curModel.courseName; |
|
|
|
if (_courseTime) { |
|
_tfStartTime.text = [_courseTime componentsSeparatedByString:@"-"][0]; |
|
_tfEndTime.text = [_courseTime componentsSeparatedByString:@"-"][1]; |
|
} |
|
|
|
} else { |
|
_curWeek = -1; |
|
_curLession = -1; |
|
} |
|
} |
|
|
|
- (void)setUpUI { |
|
_weekLabelArr = [NSMutableArray arrayWithArray:@[ |
|
_labMon,_labTues,_labWed,_labThur, |
|
_labFri,_labSat,_labSun |
|
]]; |
|
|
|
_lessionLabelArr = [NSMutableArray arrayWithArray:@[ |
|
_labFirst,_labSecond,_labThird,_labFourth, |
|
_labFifth,_labSixth,_labSeventh,_labEighth |
|
]]; |
|
|
|
for (int i = 0; i < _weekLabelArr.count; i++) { |
|
[self initLabel:_weekLabelArr[i] tag:i+1]; |
|
} |
|
|
|
for (int i = 0; i < _lessionLabelArr.count; i++) { |
|
[self initLabel:_lessionLabelArr[i] tag:i+1]; |
|
} |
|
|
|
[self initStartTime:_tfStartTime]; |
|
[self initEndTime:_tfEndTime]; |
|
} |
|
|
|
- (void)initLabel:(UILabel *)label tag:(NSInteger)tag { |
|
label.userInteractionEnabled = YES; |
|
label.textColor = [UIColor blackColor]; |
|
label.font = [UIFont systemFontOfSize:12]; |
|
label.backgroundColor = [UIColor whiteColor]; |
|
label.layer.backgroundColor = [UIColor whiteColor].CGColor; |
|
label.layer.cornerRadius = 12; |
|
label.layer.borderColor = RGB(240, 240, 240).CGColor; |
|
label.layer.borderWidth = 1; |
|
label.tag = tag; |
|
label.layer.masksToBounds = YES; |
|
} |
|
|
|
- (void)initStartTime:(UITextField *)label { |
|
label.layer.cornerRadius = 15; |
|
label.layer.borderColor = RGB(240, 240, 240).CGColor; |
|
label.layer.borderWidth = 1; |
|
label.layer.masksToBounds = YES; |
|
|
|
UIDatePicker *datePicker = [[UIDatePicker alloc] init]; |
|
datePicker.datePickerMode = UIDatePickerModeTime; |
|
datePicker.date = [NSDate new]; |
|
|
|
if (@available(iOS 13.4, *)) { |
|
datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; |
|
} |
|
|
|
[datePicker addTarget:self |
|
action:@selector(startTimeClick:) |
|
forControlEvents:UIControlEventValueChanged]; |
|
|
|
label.inputView = datePicker; |
|
} |
|
|
|
- (void)initEndTime:(UITextField *)label { |
|
label.layer.cornerRadius = 15; |
|
label.layer.borderColor = RGB(240, 240, 240).CGColor; |
|
label.layer.borderWidth = 1; |
|
label.layer.masksToBounds = YES; |
|
|
|
UIDatePicker *datePicker = [[UIDatePicker alloc] init]; |
|
datePicker.datePickerMode = UIDatePickerModeTime; |
|
datePicker.date = [NSDate new]; |
|
|
|
if (@available(iOS 13.4, *)) { |
|
datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; |
|
} |
|
|
|
[datePicker addTarget:self |
|
action:@selector(endTimeClick:) |
|
forControlEvents:UIControlEventValueChanged]; |
|
|
|
label.inputView = datePicker; |
|
} |
|
|
|
- (void)startTimeClick:(id)sender{ |
|
UIDatePicker * datePic = (UIDatePicker*)sender; |
|
|
|
NSString *text = [myHelper getDateFormatWithStr:@"HH:mm"date:[datePic date]]; |
|
_tfStartTime.text = text; |
|
} |
|
|
|
- (void)endTimeClick:(id)sender{ |
|
UIDatePicker * datePic = (UIDatePicker*)sender; |
|
|
|
NSString *text = [myHelper getDateFormatWithStr:@"HH:mm"date:[datePic date]]; |
|
_tfEndTime.text = text; |
|
} |
|
|
|
- (void)setUpEvent { |
|
|
|
for (UILabel *lab in _weekLabelArr) { |
|
UITapGestureRecognizer *uiTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapWeek:)]; |
|
[lab addGestureRecognizer:uiTap]; |
|
} |
|
|
|
for (UILabel *lab in _lessionLabelArr) { |
|
UITapGestureRecognizer *uiTap2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapLession:)]; |
|
[lab addGestureRecognizer:uiTap2]; |
|
} |
|
|
|
} |
|
|
|
- (void)tapWeek:(UITapGestureRecognizer *)param{ |
|
[self resetWeek]; |
|
UILabel *lab = (UILabel *)param.view; |
|
lab.backgroundColor = mainColor; |
|
lab.textColor = [UIColor whiteColor]; |
|
lab.layer.borderColor = [UIColor whiteColor].CGColor; |
|
_curWeek = lab.tag; |
|
|
|
NSLog(@"week = %zd",_curWeek); |
|
} |
|
|
|
- (void)tapLession:(UITapGestureRecognizer *)param{ |
|
[self resetLession]; |
|
|
|
UILabel *lab = (UILabel *)param.view; |
|
lab.backgroundColor = mainColor; |
|
lab.textColor = [UIColor whiteColor]; |
|
lab.layer.borderColor = [UIColor whiteColor].CGColor; |
|
_curLession = lab.tag; |
|
|
|
NSLog(@"lession = %zd", _curLession); |
|
} |
|
|
|
- (void) resetWeek { |
|
for (UILabel *label in _weekLabelArr) { |
|
label.textColor = [UIColor blackColor]; |
|
label.backgroundColor = [UIColor whiteColor]; |
|
label.layer.backgroundColor = [UIColor whiteColor].CGColor; |
|
label.layer.borderColor = RGB(240, 240, 240).CGColor; |
|
} |
|
} |
|
|
|
- (void) resetLession { |
|
for (UILabel *label in _lessionLabelArr) { |
|
label.textColor = [UIColor blackColor]; |
|
label.backgroundColor = [UIColor whiteColor]; |
|
label.layer.backgroundColor = [UIColor whiteColor].CGColor; |
|
label.layer.borderColor = RGB(240, 240, 240).CGColor; |
|
} |
|
} |
|
|
|
|
|
@end
|
|
|