@@ -9,34 +9,32 @@ import UIKit
9
9
import CoreMotion
10
10
import RealmSwift
11
11
12
+
12
13
class StopWatchViewController : UIViewController {
13
14
//MARK: - Properties
14
- let realm = try ! Realm ( )
15
- var saveDate : String = " " {
16
- didSet{ // 날짜가 바뀔 때마다
17
- self . setGoalTime ( ) // 목표시간 Label 재설정
18
- self . reloadProgressBar ( ) // 진행바 재로딩
19
- self . setTimeLabel ( ) // 현재시간 Label 재설정
20
- self . titleView. label. text = CalendarMethod ( ) . convertDate ( date: self . saveDate) // 타이틀 날짜 다시표시
21
- self . toDoTableView. reloadData ( )
22
- self . calendarView. saveDate = self . saveDate
23
- self . calendarView. calendarView. reloadData ( )
24
- }
25
- }
26
-
15
+ //전체 시간, 전체 목표시간 저장 프로퍼티
27
16
var totalTime : TimeInterval = 0
28
17
var totalGoalTime : TimeInterval = 0
18
+
19
+ let realm = try ! Realm ( )
29
20
var motionManager : CMMotionManager ?
21
+
30
22
var concentraionTimerVC : ConcentrationTimeViewController ?
31
- var editListView : EditTodoListView ?
23
+ var editTodoListView : EditTodoListView ?
32
24
var editGoalTimeView : EditGoalTimeView ?
33
25
var chartView : ChartView ?
34
26
var guideLabelView : GuideLabelView ?
35
- var tapGesture : UITapGestureRecognizer ?
36
27
var tapView : UIView ?
28
+
29
+ var tapGesture : UITapGestureRecognizer ?
30
+ var timer : Timer ?
31
+
37
32
var delegate : StopWatchVCDelegate ?
38
33
var saveDateDelegate : SaveDateDetectionDelegate ?
39
- var timer : Timer ?
34
+
35
+ var calendarViewHeight : NSLayoutConstraint !
36
+ var frameViewHeight : NSLayoutConstraint !
37
+
40
38
// true : week, false : month
41
39
var calendarMode = true {
42
40
didSet {
@@ -48,8 +46,17 @@ class StopWatchViewController: UIViewController {
48
46
}
49
47
}
50
48
51
- var calendarViewHeight : NSLayoutConstraint !
52
- var frameViewHeight : NSLayoutConstraint !
49
+ var saveDate : String = " " {
50
+ didSet{ // 날짜가 바뀔 때마다
51
+ self . setGoalTime ( ) // 목표시간 Label 재설정
52
+ self . reloadProgressBar ( ) // 진행바 재로딩
53
+ self . setTimeLabel ( ) // 현재시간 Label 재설정
54
+ self . titleView. label. text = CalendarMethod ( ) . convertDate ( date: self . saveDate) // 타이틀 날짜 다시표시
55
+ self . toDoTableView. reloadData ( )
56
+ self . calendarView. saveDate = self . saveDate
57
+ self . calendarView. calendarView. reloadData ( )
58
+ }
59
+ }
53
60
54
61
let titleView : TitleView = {
55
62
let view = TitleView ( )
@@ -285,7 +292,6 @@ class StopWatchViewController: UIViewController {
285
292
if self . guideLabelView != nil {
286
293
UIView . transition ( with: self . guideLabelView!, duration: 3 , options: [ . repeat , . transitionFlipFromTop] , animations: nil , completion: nil )
287
294
}
288
-
289
295
}
290
296
291
297
func autoScrollCurrentDate( ) {
@@ -472,7 +478,7 @@ class StopWatchViewController: UIViewController {
472
478
self . dDayLabel. text = " It's been \( abs ( dday) ) days. "
473
479
}
474
480
475
-
481
+
476
482
}
477
483
478
484
//MARK: Selector
@@ -498,24 +504,24 @@ class StopWatchViewController: UIViewController {
498
504
self . saveDateDelegate? . detectSaveDate ( date: self . saveDate)
499
505
}
500
506
507
+ //주 <-> 월 달력 변경 버튼 클릭
501
508
@objc func changeCalendarMode( _ sender: UIButton ) {
502
509
UIView . animate ( withDuration: 0.5 ) {
503
510
if self . calendarMode {
504
511
self . calendarView. calendarMode = . month
505
512
self . calendarViewHeight. isActive = false
506
513
self . frameViewHeight. isActive = false
507
-
508
- self . calendarViewHeight = self . calendarView. heightAnchor. constraint ( equalToConstant: 220 )
509
514
self . frameViewHeight = self . frameView. heightAnchor. constraint ( equalTo: self . view. heightAnchor, multiplier: 0.86 )
515
+ self . calendarViewHeight = self . calendarView. heightAnchor. constraint ( equalToConstant: 220 )
516
+
510
517
self . mainTimeLabel. transform = CGAffineTransform ( scaleX: 0.8 , y: 0.8 )
511
518
self . dDayLabel. alpha = 0
512
519
self . changeCalendarMode. setTitle ( " 월▾ " , for: . normal)
513
-
520
+
514
521
self . calendarViewHeight. isActive = true
515
522
self . frameViewHeight. isActive = true
516
- self . frameView. layoutIfNeeded ( )
517
523
self . mainTimeLabel. layoutIfNeeded ( )
518
-
524
+
519
525
self . chartView? . labelConstraint. isActive = false
520
526
self . chartView? . labelConstraint. constant = 0
521
527
self . chartView? . labelConstraint. isActive = true
@@ -524,25 +530,24 @@ class StopWatchViewController: UIViewController {
524
530
self . calendarView. calendarMode = . week
525
531
self . calendarViewHeight. isActive = false
526
532
self . frameViewHeight. isActive = false
527
-
533
+
528
534
self . calendarViewHeight = self . calendarView. heightAnchor. constraint ( equalToConstant: 66 )
529
-
535
+
530
536
self . frameViewHeight = self . frameView. heightAnchor. constraint ( equalTo: self . view. heightAnchor, multiplier: 0.76 )
531
537
self . mainTimeLabel. font = . systemFont( ofSize: 50 , weight: . regular)
532
538
self . mainTimeLabel. transform = CGAffineTransform ( scaleX: 1 , y: 1 )
533
539
self . dDayLabel. alpha = 1
534
540
self . changeCalendarMode. setTitle ( " 주▾ " , for: . normal)
535
-
541
+
536
542
self . calendarViewHeight. isActive = true
537
543
self . frameViewHeight. isActive = true
538
- self . frameView. layoutIfNeeded ( )
539
544
self . mainTimeLabel. layoutIfNeeded ( )
540
-
545
+
541
546
self . chartView? . labelConstraint. isActive = false
542
547
self . chartView? . labelConstraint. constant = 30
543
548
self . chartView? . labelConstraint. isActive = true
544
549
self . chartView? . layoutIfNeeded ( )
545
-
550
+
546
551
}
547
552
self . chartView? . setNeedsDisplay ( ) // 차트 뷰 다시그리기
548
553
self . calendarMode = !self . calendarMode
@@ -905,7 +910,7 @@ extension StopWatchViewController {
905
910
self . calendarViewHeight. isActive = true
906
911
907
912
NSLayoutConstraint . activate ( [
908
- self . toDoTableView. topAnchor. constraint ( equalTo: self . calendarView. bottomAnchor, constant: 0 ) ,
913
+ self . toDoTableView. topAnchor. constraint ( equalTo: self . calendarView. bottomAnchor, constant: 10 ) ,
909
914
self . toDoTableView. bottomAnchor. constraint ( equalTo: self . goalTimeView. topAnchor) ,
910
915
self . toDoTableView. leadingAnchor. constraint ( equalTo: self . view. leadingAnchor, constant: 20 ) ,
911
916
self . toDoTableView. trailingAnchor. constraint ( equalTo: self . view. trailingAnchor, constant: - 20 ) ,
@@ -1041,9 +1046,9 @@ extension StopWatchViewController: UITableViewDelegate,UITableViewDataSource{
1041
1046
}
1042
1047
1043
1048
func tableView( _ tableView: UITableView , didSelectRowAt indexPath: IndexPath ) {
1044
- guard self . editListView == nil else { return }
1049
+ guard self . editTodoListView == nil else { return }
1045
1050
1046
- self . editListView = {
1051
+ self . editTodoListView = {
1047
1052
let view = EditTodoListView ( )
1048
1053
self . setTapGesture ( ) // 외부 탭 하면 닫히는 제스쳐 추가
1049
1054
self . view. addSubview ( view)
@@ -1146,7 +1151,7 @@ extension StopWatchViewController: UITextFieldDelegate {
1146
1151
extension StopWatchViewController {
1147
1152
1148
1153
@objc func editListMethod( _ sender: UIButton ) {
1149
- if let editView = self . editListView {
1154
+ if let editView = self . editTodoListView {
1150
1155
let indexPath = editView. indexPath
1151
1156
let ( section, row) = ( indexPath!. section, indexPath!. row)
1152
1157
guard let segment = self . realm. object ( ofType: DailyData . self, forPrimaryKey: self . saveDate) ? . dailySegment else { return }
@@ -1232,12 +1237,12 @@ extension StopWatchViewController {
1232
1237
}
1233
1238
1234
1239
func closeListEditView( ) {
1235
- if let editView = self . editListView {
1240
+ if let editView = self . editTodoListView {
1236
1241
UIView . animate ( withDuration: 0.3 , animations: {
1237
1242
editView. center = CGPoint ( x: self . view. frame. width / 2 , y: self . view. frame. height + 40 )
1238
1243
} ) { ( _) in
1239
1244
editView. removeFromSuperview ( ) // 슈퍼뷰에서 제거!
1240
- self . editListView = nil
1245
+ self . editTodoListView = nil
1241
1246
self . removeTapView ( )
1242
1247
}
1243
1248
}
0 commit comments