Commit 67297da30689add2e6f6eab4d6d4b9c96c980a78

Authored by nvtu11790@gmail.com
1 parent cc8cf48927
Exists in master

update icons in all app, add background, fix UI in iphoneX

Showing 80 changed files with 901 additions and 620 deletions Inline Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
1 // !$*UTF8*$! 1 // !$*UTF8*$!
2 { 2 {
3 archiveVersion = 1; 3 archiveVersion = 1;
4 classes = { 4 classes = {
5 }; 5 };
6 objectVersion = 46; 6 objectVersion = 46;
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; }; 10 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */; };
11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; }; 11 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED11F2E39DB0029891F /* LoginViewController.m */; };
12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; }; 12 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E18CED21F2E39DB0029891F /* LoginViewController.xib */; };
13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; }; 13 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CED71F2E3C840029891F /* ServerAPI.m */; };
14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; }; 14 6E18CEDC1F2E40F50029891F /* User.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E18CEDB1F2E40F50029891F /* User.m */; };
15 6E27A74A1F9E41B400C390B3 /* HomeObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27A7491F9E41B400C390B3 /* HomeObject.m */; }; 15 6E27A74A1F9E41B400C390B3 /* HomeObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27A7491F9E41B400C390B3 /* HomeObject.m */; };
16 6E27A74D1F9E432900C390B3 /* NoticeInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */; }; 16 6E27A74D1F9E432900C390B3 /* NoticeInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */; };
17 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; }; 17 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */; };
18 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; }; 18 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */; };
19 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; }; 19 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */; };
20 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; }; 20 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */; };
21 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; }; 21 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */; };
22 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; }; 22 6E84E3761F27A701001EB88E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3751F27A701001EB88E /* main.m */; };
23 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; }; 23 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3781F27A701001EB88E /* AppDelegate.m */; };
24 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; }; 24 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3801F27A701001EB88E /* Assets.xcassets */; };
25 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; }; 25 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */; };
26 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; }; 26 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E38E1F27A703001EB88E /* LifeLogTests.m */; };
27 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; }; 27 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3991F27A703001EB88E /* LifeLogUITests.m */; };
28 6E84E3B01F27A975001EB88E /* HomeViewConb troller.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewConb troller.m */; }; 28 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3AE1F27A975001EB88E /* HomeViewController.m */; };
29 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; }; 29 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */; };
30 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; }; 30 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */; };
31 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; }; 31 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */; };
32 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; }; 32 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */; };
33 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; }; 33 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */; };
34 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; }; 34 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */; };
35 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; }; 35 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */; };
36 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; }; 36 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E84E3C31F27ACAE001EB88E /* MapViewController.m */; };
37 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; }; 37 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */; };
38 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; }; 38 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */; };
39 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; }; 39 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */; };
40 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */; }; 40 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */; };
41 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */; }; 41 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */; };
42 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF301F40BB7A00F52CFE /* TopObject.m */; }; 42 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA4AF301F40BB7A00F52CFE /* TopObject.m */; };
43 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; }; 43 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */; };
44 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; }; 44 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BED1F2C2FB800765ACC /* Utilities.m */; };
45 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; }; 45 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */; };
46 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; }; 46 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6EF163091F29069300DA306C /* Localizable.strings */; };
47 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; }; 47 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */; };
48 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; }; 48 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */; };
49 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; }; 49 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
50 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; }; 50 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
51 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; }; 51 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
52 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; }; 52 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */; };
53 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; }; 53 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */; };
54 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; }; 54 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */; };
55 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; }; 55 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */; };
56 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; }; 56 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6731F3E0E4E002926F5 /* GroupObject.m */; };
57 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; }; 57 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E933E6771F40513C002926F5 /* GroupDetailViewController.m */; };
58 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; }; 58 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E933E6781F40513C002926F5 /* GroupDetailViewController.xib */; };
59 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; }; 59 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E461F3596940059355A /* AutoTransLabel.m */; };
60 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; }; 60 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E491F35AA180059355A /* HistoryObject.m */; };
61 E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9497FD41F46EC1100E6AF8D /* MemberObject.m */; }; 61 E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9497FD41F46EC1100E6AF8D /* MemberObject.m */; };
62 E95F4CED1F475C6A00D27E80 /* CreateGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */; }; 62 E95F4CED1F475C6A00D27E80 /* CreateGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */; };
63 E95F4CEE1F475C6A00D27E80 /* CreateGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */; }; 63 E95F4CEE1F475C6A00D27E80 /* CreateGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */; };
64 E95F4CF31F48B39200D27E80 /* MyGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */; }; 64 E95F4CF31F48B39200D27E80 /* MyGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */; };
65 E95F4CF41F48B39200D27E80 /* MyGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */; }; 65 E95F4CF41F48B39200D27E80 /* MyGroupViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */; };
66 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; }; 66 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
67 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; }; 67 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
68 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; }; 68 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
69 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; }; 69 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
70 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; }; 70 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
71 E97588FC1F513BAD00782484 /* RankingObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E97588FB1F513BAD00782484 /* RankingObject.m */; }; 71 E97588FC1F513BAD00782484 /* RankingObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E97588FB1F513BAD00782484 /* RankingObject.m */; };
72 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; }; 72 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
73 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; }; 73 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
74 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; }; 74 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
75 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; }; 75 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
76 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; }; 76 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
77 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; }; 77 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909201F3D559D004CF99F /* TweetObject.m */; };
78 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; }; 78 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */; };
79 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; }; 79 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
80 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; }; 80 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
81 /* End PBXBuildFile section */ 81 /* End PBXBuildFile section */
82 82
83 /* Begin PBXContainerItemProxy section */ 83 /* Begin PBXContainerItemProxy section */
84 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = { 84 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */ = {
85 isa = PBXContainerItemProxy; 85 isa = PBXContainerItemProxy;
86 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 86 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
87 proxyType = 1; 87 proxyType = 1;
88 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 88 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
89 remoteInfo = LifeLog; 89 remoteInfo = LifeLog;
90 }; 90 };
91 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = { 91 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */ = {
92 isa = PBXContainerItemProxy; 92 isa = PBXContainerItemProxy;
93 containerPortal = 6E84E3691F27A700001EB88E /* Project object */; 93 containerPortal = 6E84E3691F27A700001EB88E /* Project object */;
94 proxyType = 1; 94 proxyType = 1;
95 remoteGlobalIDString = 6E84E3701F27A700001EB88E; 95 remoteGlobalIDString = 6E84E3701F27A700001EB88E;
96 remoteInfo = LifeLog; 96 remoteInfo = LifeLog;
97 }; 97 };
98 /* End PBXContainerItemProxy section */ 98 /* End PBXContainerItemProxy section */
99 99
100 /* Begin PBXFileReference section */ 100 /* Begin PBXFileReference section */
101 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; }; 101 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.debug.xcconfig"; sourceTree = "<group>"; };
102 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 102 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LifeLog.framework; sourceTree = BUILT_PRODUCTS_DIR; };
103 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; }; 103 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LifeLog.release.xcconfig"; path = "Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog.release.xcconfig"; sourceTree = "<group>"; };
104 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; }; 104 6E18CED01F2E39DB0029891F /* LoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoginViewController.h; sourceTree = "<group>"; };
105 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; }; 105 6E18CED11F2E39DB0029891F /* LoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginViewController.m; sourceTree = "<group>"; };
106 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; }; 106 6E18CED21F2E39DB0029891F /* LoginViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LoginViewController.xib; sourceTree = "<group>"; };
107 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; }; 107 6E18CED61F2E3C840029891F /* ServerAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerAPI.h; sourceTree = "<group>"; };
108 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; }; 108 6E18CED71F2E3C840029891F /* ServerAPI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerAPI.m; sourceTree = "<group>"; };
109 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; }; 109 6E18CEDA1F2E40F50029891F /* User.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = User.h; sourceTree = "<group>"; };
110 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; }; 110 6E18CEDB1F2E40F50029891F /* User.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = User.m; sourceTree = "<group>"; };
111 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; }; 111 6E18CEDD1F2E46570029891F /* Entities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Entities.h; sourceTree = "<group>"; };
112 6E27A7481F9E41B300C390B3 /* HomeObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeObject.h; sourceTree = "<group>"; }; 112 6E27A7481F9E41B300C390B3 /* HomeObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HomeObject.h; sourceTree = "<group>"; };
113 6E27A7491F9E41B400C390B3 /* HomeObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeObject.m; sourceTree = "<group>"; }; 113 6E27A7491F9E41B400C390B3 /* HomeObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HomeObject.m; sourceTree = "<group>"; };
114 6E27A74B1F9E432900C390B3 /* NoticeInfor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoticeInfor.h; sourceTree = "<group>"; }; 114 6E27A74B1F9E432900C390B3 /* NoticeInfor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoticeInfor.h; sourceTree = "<group>"; };
115 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoticeInfor.m; sourceTree = "<group>"; }; 115 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoticeInfor.m; sourceTree = "<group>"; };
116 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; }; 116 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomTextField.h; sourceTree = "<group>"; };
117 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; }; 117 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomTextField.m; sourceTree = "<group>"; };
118 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; }; 118 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingCollectionView.h; sourceTree = "<group>"; };
119 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; }; 119 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingCollectionView.m; sourceTree = "<group>"; };
120 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; }; 120 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingScrollView.h; sourceTree = "<group>"; };
121 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; }; 121 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingScrollView.m; sourceTree = "<group>"; };
122 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; }; 122 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPKeyboardAvoidingTableView.h; sourceTree = "<group>"; };
123 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; }; 123 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPKeyboardAvoidingTableView.m; sourceTree = "<group>"; };
124 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; }; 124 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+TPKeyboardAvoidingAdditions.h"; sourceTree = "<group>"; };
125 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; }; 125 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+TPKeyboardAvoidingAdditions.m"; sourceTree = "<group>"; };
126 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; }; 126 6E84E3711F27A700001EB88E /* LifeLog.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LifeLog.app; sourceTree = BUILT_PRODUCTS_DIR; };
127 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 127 6E84E3751F27A701001EB88E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
128 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 128 6E84E3771F27A701001EB88E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
129 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; 129 6E84E3781F27A701001EB88E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
130 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 130 6E84E3801F27A701001EB88E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
131 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 131 6E84E3831F27A701001EB88E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
132 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 132 6E84E3851F27A701001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
133 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 133 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
134 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; }; 134 6E84E38E1F27A703001EB88E /* LifeLogTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogTests.m; sourceTree = "<group>"; };
135 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 135 6E84E3901F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
136 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 136 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LifeLogUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
137 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; }; 137 6E84E3991F27A703001EB88E /* LifeLogUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LifeLogUITests.m; sourceTree = "<group>"; };
138 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 138 6E84E39B1F27A703001EB88E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
139 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; }; 139 6E84E3AD1F27A975001EB88E /* HomeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeViewController.h; sourceTree = "<group>"; };
140 6E84E3AE1F27A975001EB88E /* HomeViewConb troller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "HomeViewConb troller.m"; sourceTree = "<group>"; }; 140 6E84E3AE1F27A975001EB88E /* HomeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeViewController.m; sourceTree = "<group>"; };
141 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; }; 141 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HomeViewController.xib; sourceTree = "<group>"; };
142 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; }; 142 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryViewController.h; sourceTree = "<group>"; };
143 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; }; 143 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryViewController.m; sourceTree = "<group>"; };
144 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; }; 144 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryViewController.xib; sourceTree = "<group>"; };
145 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; }; 145 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingViewController.h; sourceTree = "<group>"; };
146 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; }; 146 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingViewController.m; sourceTree = "<group>"; };
147 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; }; 147 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingViewController.xib; sourceTree = "<group>"; };
148 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; }; 148 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSViewController.h; sourceTree = "<group>"; };
149 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; }; 149 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSViewController.m; sourceTree = "<group>"; };
150 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; }; 150 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSViewController.xib; sourceTree = "<group>"; };
151 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; }; 151 6E84E3C21F27ACAE001EB88E /* MapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MapViewController.h; sourceTree = "<group>"; };
152 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; }; 152 6E84E3C31F27ACAE001EB88E /* MapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MapViewController.m; sourceTree = "<group>"; };
153 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; }; 153 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MapViewController.xib; sourceTree = "<group>"; };
154 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; }; 154 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TodayViewController.h; sourceTree = "<group>"; };
155 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; }; 155 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TodayViewController.m; sourceTree = "<group>"; };
156 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; }; 156 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TodayViewController.xib; sourceTree = "<group>"; };
157 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepObject.h; sourceTree = "<group>"; }; 157 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StepObject.h; sourceTree = "<group>"; };
158 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepObject.m; sourceTree = "<group>"; }; 158 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StepObject.m; sourceTree = "<group>"; };
159 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInfor.h; sourceTree = "<group>"; }; 159 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TargetInfor.h; sourceTree = "<group>"; };
160 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TargetInfor.m; sourceTree = "<group>"; }; 160 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TargetInfor.m; sourceTree = "<group>"; };
161 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopObject.h; sourceTree = "<group>"; }; 161 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TopObject.h; sourceTree = "<group>"; };
162 6EA4AF301F40BB7A00F52CFE /* TopObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopObject.m; sourceTree = "<group>"; }; 162 6EA4AF301F40BB7A00F52CFE /* TopObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TopObject.m; sourceTree = "<group>"; };
163 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; }; 163 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+helper.h"; sourceTree = "<group>"; };
164 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; }; 164 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+helper.m"; sourceTree = "<group>"; };
165 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; }; 165 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
166 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; }; 166 6EDC8BED1F2C2FB800765ACC /* Utilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Utilities.m; sourceTree = "<group>"; };
167 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; }; 167 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CMMotionActivityExtra.h; sourceTree = "<group>"; };
168 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; }; 168 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CMMotionActivityExtra.m; sourceTree = "<group>"; };
169 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; }; 169 6EF163091F29069300DA306C /* Localizable.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Localizable.strings; sourceTree = "<group>"; };
170 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; }; 170 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfirmForgetPassViewController.h; sourceTree = "<group>"; };
171 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; }; 171 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfirmForgetPassViewController.m; sourceTree = "<group>"; };
172 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; }; 172 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConfirmForgetPassViewController.xib; sourceTree = "<group>"; };
173 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; }; 173 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewController.h; sourceTree = "<group>"; };
174 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; }; 174 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewController.m; sourceTree = "<group>"; };
175 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; }; 175 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
176 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; }; 176 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
177 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; }; 177 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
178 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; }; 178 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupViewController.h; sourceTree = "<group>"; };
179 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; }; 179 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupViewController.m; sourceTree = "<group>"; };
180 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; }; 180 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupViewController.xib; sourceTree = "<group>"; };
181 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; }; 181 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SearchGroupTableViewCell.h; sourceTree = "<group>"; };
182 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; }; 182 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SearchGroupTableViewCell.m; sourceTree = "<group>"; };
183 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; }; 183 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SearchGroupTableViewCell.xib; sourceTree = "<group>"; };
184 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; }; 184 E933E6721F3E0E4E002926F5 /* GroupObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupObject.h; sourceTree = "<group>"; };
185 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; }; 185 E933E6731F3E0E4E002926F5 /* GroupObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupObject.m; sourceTree = "<group>"; };
186 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; }; 186 E933E6761F40513C002926F5 /* GroupDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GroupDetailViewController.h; sourceTree = "<group>"; };
187 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; }; 187 E933E6771F40513C002926F5 /* GroupDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GroupDetailViewController.m; sourceTree = "<group>"; };
188 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; }; 188 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GroupDetailViewController.xib; sourceTree = "<group>"; };
189 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; }; 189 E9373E451F3596940059355A /* AutoTransLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransLabel.h; sourceTree = "<group>"; };
190 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; }; 190 E9373E461F3596940059355A /* AutoTransLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransLabel.m; sourceTree = "<group>"; };
191 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; }; 191 E9373E481F35AA180059355A /* HistoryObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryObject.h; sourceTree = "<group>"; };
192 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; }; 192 E9373E491F35AA180059355A /* HistoryObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryObject.m; sourceTree = "<group>"; };
193 E9497FD31F46EC1100E6AF8D /* MemberObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemberObject.h; sourceTree = "<group>"; }; 193 E9497FD31F46EC1100E6AF8D /* MemberObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemberObject.h; sourceTree = "<group>"; };
194 E9497FD41F46EC1100E6AF8D /* MemberObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MemberObject.m; sourceTree = "<group>"; }; 194 E9497FD41F46EC1100E6AF8D /* MemberObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MemberObject.m; sourceTree = "<group>"; };
195 E95F4CEA1F475C6A00D27E80 /* CreateGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreateGroupViewController.h; sourceTree = "<group>"; }; 195 E95F4CEA1F475C6A00D27E80 /* CreateGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CreateGroupViewController.h; sourceTree = "<group>"; };
196 E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CreateGroupViewController.m; sourceTree = "<group>"; }; 196 E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CreateGroupViewController.m; sourceTree = "<group>"; };
197 E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CreateGroupViewController.xib; sourceTree = "<group>"; }; 197 E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CreateGroupViewController.xib; sourceTree = "<group>"; };
198 E95F4CF01F48B39200D27E80 /* MyGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyGroupViewController.h; sourceTree = "<group>"; }; 198 E95F4CF01F48B39200D27E80 /* MyGroupViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyGroupViewController.h; sourceTree = "<group>"; };
199 E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyGroupViewController.m; sourceTree = "<group>"; }; 199 E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyGroupViewController.m; sourceTree = "<group>"; };
200 E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MyGroupViewController.xib; sourceTree = "<group>"; }; 200 E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MyGroupViewController.xib; sourceTree = "<group>"; };
201 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; }; 201 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
202 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; }; 202 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
203 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; }; 203 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
204 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; }; 204 E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
205 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; }; 205 E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
206 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; }; 206 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
207 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; }; 207 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
208 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; }; 208 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
209 E97588FA1F513BAD00782484 /* RankingObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingObject.h; sourceTree = "<group>"; }; 209 E97588FA1F513BAD00782484 /* RankingObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingObject.h; sourceTree = "<group>"; };
210 E97588FB1F513BAD00782484 /* RankingObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingObject.m; sourceTree = "<group>"; }; 210 E97588FB1F513BAD00782484 /* RankingObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingObject.m; sourceTree = "<group>"; };
211 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 211 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
212 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; }; 212 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
213 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; }; 213 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
214 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; }; 214 E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
215 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; }; 215 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
216 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; }; 216 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
217 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; }; 217 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
218 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; }; 218 E9D9091F1F3D559D004CF99F /* TweetObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TweetObject.h; sourceTree = "<group>"; };
219 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; }; 219 E9D909201F3D559D004CF99F /* TweetObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TweetObject.m; sourceTree = "<group>"; };
220 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; }; 220 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseTableViewController.h; sourceTree = "<group>"; };
221 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; }; 221 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseTableViewController.m; sourceTree = "<group>"; };
222 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; }; 222 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
223 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; }; 223 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
224 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; }; 224 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
225 /* End PBXFileReference section */ 225 /* End PBXFileReference section */
226 226
227 /* Begin PBXFrameworksBuildPhase section */ 227 /* Begin PBXFrameworksBuildPhase section */
228 6E84E36E1F27A700001EB88E /* Frameworks */ = { 228 6E84E36E1F27A700001EB88E /* Frameworks */ = {
229 isa = PBXFrameworksBuildPhase; 229 isa = PBXFrameworksBuildPhase;
230 buildActionMask = 2147483647; 230 buildActionMask = 2147483647;
231 files = ( 231 files = (
232 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */, 232 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */,
233 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */, 233 011799F0F2B47D80472673CE /* Pods_LifeLog.framework in Frameworks */,
234 ); 234 );
235 runOnlyForDeploymentPostprocessing = 0; 235 runOnlyForDeploymentPostprocessing = 0;
236 }; 236 };
237 6E84E3871F27A703001EB88E /* Frameworks */ = { 237 6E84E3871F27A703001EB88E /* Frameworks */ = {
238 isa = PBXFrameworksBuildPhase; 238 isa = PBXFrameworksBuildPhase;
239 buildActionMask = 2147483647; 239 buildActionMask = 2147483647;
240 files = ( 240 files = (
241 ); 241 );
242 runOnlyForDeploymentPostprocessing = 0; 242 runOnlyForDeploymentPostprocessing = 0;
243 }; 243 };
244 6E84E3921F27A703001EB88E /* Frameworks */ = { 244 6E84E3921F27A703001EB88E /* Frameworks */ = {
245 isa = PBXFrameworksBuildPhase; 245 isa = PBXFrameworksBuildPhase;
246 buildActionMask = 2147483647; 246 buildActionMask = 2147483647;
247 files = ( 247 files = (
248 ); 248 );
249 runOnlyForDeploymentPostprocessing = 0; 249 runOnlyForDeploymentPostprocessing = 0;
250 }; 250 };
251 /* End PBXFrameworksBuildPhase section */ 251 /* End PBXFrameworksBuildPhase section */
252 252
253 /* Begin PBXGroup section */ 253 /* Begin PBXGroup section */
254 020C1721B642EF36F31E1BB4 /* Frameworks */ = { 254 020C1721B642EF36F31E1BB4 /* Frameworks */ = {
255 isa = PBXGroup; 255 isa = PBXGroup;
256 children = ( 256 children = (
257 E997E0251F3AB66500709FB1 /* Social.framework */, 257 E997E0251F3AB66500709FB1 /* Social.framework */,
258 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */, 258 2D9F4ED6F06C8F252B9EAF48 /* Pods_LifeLog.framework */,
259 ); 259 );
260 name = Frameworks; 260 name = Frameworks;
261 sourceTree = "<group>"; 261 sourceTree = "<group>";
262 }; 262 };
263 6E18CECF1F2E398C0029891F /* Login */ = { 263 6E18CECF1F2E398C0029891F /* Login */ = {
264 isa = PBXGroup; 264 isa = PBXGroup;
265 children = ( 265 children = (
266 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */, 266 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */,
267 6E18CED01F2E39DB0029891F /* LoginViewController.h */, 267 6E18CED01F2E39DB0029891F /* LoginViewController.h */,
268 6E18CED11F2E39DB0029891F /* LoginViewController.m */, 268 6E18CED11F2E39DB0029891F /* LoginViewController.m */,
269 6E18CED21F2E39DB0029891F /* LoginViewController.xib */, 269 6E18CED21F2E39DB0029891F /* LoginViewController.xib */,
270 ); 270 );
271 name = Login; 271 name = Login;
272 sourceTree = "<group>"; 272 sourceTree = "<group>";
273 }; 273 };
274 6E18CED51F2E3C0E0029891F /* ServerAPI */ = { 274 6E18CED51F2E3C0E0029891F /* ServerAPI */ = {
275 isa = PBXGroup; 275 isa = PBXGroup;
276 children = ( 276 children = (
277 6E18CED61F2E3C840029891F /* ServerAPI.h */, 277 6E18CED61F2E3C840029891F /* ServerAPI.h */,
278 6E18CED71F2E3C840029891F /* ServerAPI.m */, 278 6E18CED71F2E3C840029891F /* ServerAPI.m */,
279 ); 279 );
280 name = ServerAPI; 280 name = ServerAPI;
281 sourceTree = "<group>"; 281 sourceTree = "<group>";
282 }; 282 };
283 6E18CED91F2E40AE0029891F /* Model */ = { 283 6E18CED91F2E40AE0029891F /* Model */ = {
284 isa = PBXGroup; 284 isa = PBXGroup;
285 children = ( 285 children = (
286 6E18CEDD1F2E46570029891F /* Entities.h */, 286 6E18CEDD1F2E46570029891F /* Entities.h */,
287 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */, 287 6EA4AF2B1F40BB7A00F52CFE /* StepObject.h */,
288 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */, 288 6EA4AF2C1F40BB7A00F52CFE /* StepObject.m */,
289 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */, 289 6EA4AF2D1F40BB7A00F52CFE /* TargetInfor.h */,
290 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */, 290 6EA4AF2E1F40BB7A00F52CFE /* TargetInfor.m */,
291 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */, 291 6EA4AF2F1F40BB7A00F52CFE /* TopObject.h */,
292 6EA4AF301F40BB7A00F52CFE /* TopObject.m */, 292 6EA4AF301F40BB7A00F52CFE /* TopObject.m */,
293 6E18CEDA1F2E40F50029891F /* User.h */, 293 6E18CEDA1F2E40F50029891F /* User.h */,
294 6E18CEDB1F2E40F50029891F /* User.m */, 294 6E18CEDB1F2E40F50029891F /* User.m */,
295 E9373E481F35AA180059355A /* HistoryObject.h */, 295 E9373E481F35AA180059355A /* HistoryObject.h */,
296 E9373E491F35AA180059355A /* HistoryObject.m */, 296 E9373E491F35AA180059355A /* HistoryObject.m */,
297 E9D9091F1F3D559D004CF99F /* TweetObject.h */, 297 E9D9091F1F3D559D004CF99F /* TweetObject.h */,
298 E9D909201F3D559D004CF99F /* TweetObject.m */, 298 E9D909201F3D559D004CF99F /* TweetObject.m */,
299 E933E6721F3E0E4E002926F5 /* GroupObject.h */, 299 E933E6721F3E0E4E002926F5 /* GroupObject.h */,
300 E933E6731F3E0E4E002926F5 /* GroupObject.m */, 300 E933E6731F3E0E4E002926F5 /* GroupObject.m */,
301 E9497FD31F46EC1100E6AF8D /* MemberObject.h */, 301 E9497FD31F46EC1100E6AF8D /* MemberObject.h */,
302 E9497FD41F46EC1100E6AF8D /* MemberObject.m */, 302 E9497FD41F46EC1100E6AF8D /* MemberObject.m */,
303 E97588FA1F513BAD00782484 /* RankingObject.h */, 303 E97588FA1F513BAD00782484 /* RankingObject.h */,
304 E97588FB1F513BAD00782484 /* RankingObject.m */, 304 E97588FB1F513BAD00782484 /* RankingObject.m */,
305 6E27A7481F9E41B300C390B3 /* HomeObject.h */, 305 6E27A7481F9E41B300C390B3 /* HomeObject.h */,
306 6E27A7491F9E41B400C390B3 /* HomeObject.m */, 306 6E27A7491F9E41B400C390B3 /* HomeObject.m */,
307 6E27A74B1F9E432900C390B3 /* NoticeInfor.h */, 307 6E27A74B1F9E432900C390B3 /* NoticeInfor.h */,
308 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */, 308 6E27A74C1F9E432900C390B3 /* NoticeInfor.m */,
309 ); 309 );
310 name = Model; 310 name = Model;
311 sourceTree = "<group>"; 311 sourceTree = "<group>";
312 }; 312 };
313 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = { 313 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */ = {
314 isa = PBXGroup; 314 isa = PBXGroup;
315 children = ( 315 children = (
316 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */, 316 6E7F933A1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.h */,
317 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */, 317 6E7F933B1F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m */,
318 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */, 318 6E7F933C1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.h */,
319 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */, 319 6E7F933D1F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m */,
320 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */, 320 6E7F933E1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.h */,
321 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */, 321 6E7F933F1F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m */,
322 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */, 322 6E7F93401F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.h */,
323 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */, 323 6E7F93411F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m */,
324 ); 324 );
325 name = TPKeyboardAvoiding; 325 name = TPKeyboardAvoiding;
326 sourceTree = "<group>"; 326 sourceTree = "<group>";
327 }; 327 };
328 6E84E3681F27A700001EB88E = { 328 6E84E3681F27A700001EB88E = {
329 isa = PBXGroup; 329 isa = PBXGroup;
330 children = ( 330 children = (
331 6E84E3731F27A700001EB88E /* LifeLog */, 331 6E84E3731F27A700001EB88E /* LifeLog */,
332 6E84E38D1F27A703001EB88E /* LifeLogTests */, 332 6E84E38D1F27A703001EB88E /* LifeLogTests */,
333 6E84E3981F27A703001EB88E /* LifeLogUITests */, 333 6E84E3981F27A703001EB88E /* LifeLogUITests */,
334 DE8269E957EA47CD771BAB33 /* Pods */, 334 DE8269E957EA47CD771BAB33 /* Pods */,
335 020C1721B642EF36F31E1BB4 /* Frameworks */, 335 020C1721B642EF36F31E1BB4 /* Frameworks */,
336 783929CF869F5081762B3DCA /* Products */, 336 783929CF869F5081762B3DCA /* Products */,
337 ); 337 );
338 sourceTree = "<group>"; 338 sourceTree = "<group>";
339 }; 339 };
340 6E84E3721F27A700001EB88E /* Products */ = { 340 6E84E3721F27A700001EB88E /* Products */ = {
341 isa = PBXGroup; 341 isa = PBXGroup;
342 children = ( 342 children = (
343 6E84E3711F27A700001EB88E /* LifeLog.app */, 343 6E84E3711F27A700001EB88E /* LifeLog.app */,
344 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */, 344 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */,
345 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */, 345 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */,
346 ); 346 );
347 name = Products; 347 name = Products;
348 sourceTree = "<group>"; 348 sourceTree = "<group>";
349 }; 349 };
350 6E84E3731F27A700001EB88E /* LifeLog */ = { 350 6E84E3731F27A700001EB88E /* LifeLog */ = {
351 isa = PBXGroup; 351 isa = PBXGroup;
352 children = ( 352 children = (
353 6E18CED91F2E40AE0029891F /* Model */, 353 6E18CED91F2E40AE0029891F /* Model */,
354 6E18CED51F2E3C0E0029891F /* ServerAPI */, 354 6E18CED51F2E3C0E0029891F /* ServerAPI */,
355 6EDC8BEB1F2C2F3300765ACC /* Common */, 355 6EDC8BEB1F2C2F3300765ACC /* Common */,
356 6ECC406D1F2A5FA500AAEB97 /* Library */, 356 6ECC406D1F2A5FA500AAEB97 /* Library */,
357 E99E13A71F336F0C00C78787 /* CustomView */, 357 E99E13A71F336F0C00C78787 /* CustomView */,
358 6E84E3A81F27A8A9001EB88E /* ViewControllers */, 358 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
359 6E84E3A71F27A887001EB88E /* AppDelegate */, 359 6E84E3A71F27A887001EB88E /* AppDelegate */,
360 6E84E3801F27A701001EB88E /* Assets.xcassets */, 360 6E84E3801F27A701001EB88E /* Assets.xcassets */,
361 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */, 361 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */,
362 6E84E3851F27A701001EB88E /* Info.plist */, 362 6E84E3851F27A701001EB88E /* Info.plist */,
363 6E84E3741F27A701001EB88E /* Supporting Files */, 363 6E84E3741F27A701001EB88E /* Supporting Files */,
364 ); 364 );
365 path = LifeLog; 365 path = LifeLog;
366 sourceTree = "<group>"; 366 sourceTree = "<group>";
367 }; 367 };
368 6E84E3741F27A701001EB88E /* Supporting Files */ = { 368 6E84E3741F27A701001EB88E /* Supporting Files */ = {
369 isa = PBXGroup; 369 isa = PBXGroup;
370 children = ( 370 children = (
371 6E84E3751F27A701001EB88E /* main.m */, 371 6E84E3751F27A701001EB88E /* main.m */,
372 6EF163091F29069300DA306C /* Localizable.strings */, 372 6EF163091F29069300DA306C /* Localizable.strings */,
373 ); 373 );
374 name = "Supporting Files"; 374 name = "Supporting Files";
375 sourceTree = "<group>"; 375 sourceTree = "<group>";
376 }; 376 };
377 6E84E38D1F27A703001EB88E /* LifeLogTests */ = { 377 6E84E38D1F27A703001EB88E /* LifeLogTests */ = {
378 isa = PBXGroup; 378 isa = PBXGroup;
379 children = ( 379 children = (
380 6E84E38E1F27A703001EB88E /* LifeLogTests.m */, 380 6E84E38E1F27A703001EB88E /* LifeLogTests.m */,
381 6E84E3901F27A703001EB88E /* Info.plist */, 381 6E84E3901F27A703001EB88E /* Info.plist */,
382 ); 382 );
383 path = LifeLogTests; 383 path = LifeLogTests;
384 sourceTree = "<group>"; 384 sourceTree = "<group>";
385 }; 385 };
386 6E84E3981F27A703001EB88E /* LifeLogUITests */ = { 386 6E84E3981F27A703001EB88E /* LifeLogUITests */ = {
387 isa = PBXGroup; 387 isa = PBXGroup;
388 children = ( 388 children = (
389 6E84E3991F27A703001EB88E /* LifeLogUITests.m */, 389 6E84E3991F27A703001EB88E /* LifeLogUITests.m */,
390 6E84E39B1F27A703001EB88E /* Info.plist */, 390 6E84E39B1F27A703001EB88E /* Info.plist */,
391 ); 391 );
392 path = LifeLogUITests; 392 path = LifeLogUITests;
393 sourceTree = "<group>"; 393 sourceTree = "<group>";
394 }; 394 };
395 6E84E3A71F27A887001EB88E /* AppDelegate */ = { 395 6E84E3A71F27A887001EB88E /* AppDelegate */ = {
396 isa = PBXGroup; 396 isa = PBXGroup;
397 children = ( 397 children = (
398 6E84E3771F27A701001EB88E /* AppDelegate.h */, 398 6E84E3771F27A701001EB88E /* AppDelegate.h */,
399 6E84E3781F27A701001EB88E /* AppDelegate.m */, 399 6E84E3781F27A701001EB88E /* AppDelegate.m */,
400 ); 400 );
401 name = AppDelegate; 401 name = AppDelegate;
402 sourceTree = "<group>"; 402 sourceTree = "<group>";
403 }; 403 };
404 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = { 404 6E84E3A81F27A8A9001EB88E /* ViewControllers */ = {
405 isa = PBXGroup; 405 isa = PBXGroup;
406 children = ( 406 children = (
407 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */, 407 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */,
408 9CBDA0FB1F2F03490055DED1 /* Register */, 408 9CBDA0FB1F2F03490055DED1 /* Register */,
409 6E18CECF1F2E398C0029891F /* Login */, 409 6E18CECF1F2E398C0029891F /* Login */,
410 6E84E3AC1F27A954001EB88E /* SNS */, 410 6E84E3AC1F27A954001EB88E /* SNS */,
411 6E84E3C11F27AC89001EB88E /* Map */, 411 6E84E3C11F27AC89001EB88E /* Map */,
412 6E84E3AB1F27A946001EB88E /* Ranking */, 412 6E84E3AB1F27A946001EB88E /* Ranking */,
413 6E84E3AA1F27A924001EB88E /* History */, 413 6E84E3AA1F27A924001EB88E /* History */,
414 6E84E3A91F27A915001EB88E /* Home */, 414 6E84E3A91F27A915001EB88E /* Home */,
415 ); 415 );
416 name = ViewControllers; 416 name = ViewControllers;
417 sourceTree = "<group>"; 417 sourceTree = "<group>";
418 }; 418 };
419 6E84E3A91F27A915001EB88E /* Home */ = { 419 6E84E3A91F27A915001EB88E /* Home */ = {
420 isa = PBXGroup; 420 isa = PBXGroup;
421 children = ( 421 children = (
422 6E8DA0F31F2BAC0800CCE941 /* Today */, 422 6E8DA0F31F2BAC0800CCE941 /* Today */,
423 6E84E3AD1F27A975001EB88E /* HomeViewController.h */, 423 6E84E3AD1F27A975001EB88E /* HomeViewController.h */,
424 6E84E3AE1F27A975001EB88E /* HomeViewConb troller.m */, 424 6E84E3AE1F27A975001EB88E /* HomeViewController.m */,
425 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */, 425 6E84E3AF1F27A975001EB88E /* HomeViewController.xib */,
426 ); 426 );
427 name = Home; 427 name = Home;
428 sourceTree = "<group>"; 428 sourceTree = "<group>";
429 }; 429 };
430 6E84E3AA1F27A924001EB88E /* History */ = { 430 6E84E3AA1F27A924001EB88E /* History */ = {
431 isa = PBXGroup; 431 isa = PBXGroup;
432 children = ( 432 children = (
433 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */, 433 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
434 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */, 434 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
435 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */, 435 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
436 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */, 436 E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
437 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */, 437 E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
438 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */, 438 E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
439 ); 439 );
440 name = History; 440 name = History;
441 sourceTree = "<group>"; 441 sourceTree = "<group>";
442 }; 442 };
443 6E84E3AB1F27A946001EB88E /* Ranking */ = { 443 6E84E3AB1F27A946001EB88E /* Ranking */ = {
444 isa = PBXGroup; 444 isa = PBXGroup;
445 children = ( 445 children = (
446 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */, 446 6E84E3B71F27A9A0001EB88E /* RankingViewController.h */,
447 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */, 447 6E84E3B81F27A9A0001EB88E /* RankingViewController.m */,
448 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */, 448 6E84E3B91F27A9A0001EB88E /* RankingViewController.xib */,
449 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */, 449 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */,
450 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */, 450 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */,
451 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */, 451 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */,
452 ); 452 );
453 name = Ranking; 453 name = Ranking;
454 sourceTree = "<group>"; 454 sourceTree = "<group>";
455 }; 455 };
456 6E84E3AC1F27A954001EB88E /* SNS */ = { 456 6E84E3AC1F27A954001EB88E /* SNS */ = {
457 isa = PBXGroup; 457 isa = PBXGroup;
458 children = ( 458 children = (
459 E95F4CEF1F48B37100D27E80 /* MyGroup */, 459 E95F4CEF1F48B37100D27E80 /* MyGroup */,
460 E95F4CE91F475C4B00D27E80 /* CreateGroup */, 460 E95F4CE91F475C4B00D27E80 /* CreateGroup */,
461 E933E6751F4050E6002926F5 /* GroupDetail */, 461 E933E6751F4050E6002926F5 /* GroupDetail */,
462 E933E6671F3E0479002926F5 /* SeachGroup */, 462 E933E6671F3E0479002926F5 /* SeachGroup */,
463 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */, 463 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
464 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */, 464 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
465 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */, 465 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
466 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */, 466 E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
467 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */, 467 E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
468 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */, 468 E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
469 ); 469 );
470 name = SNS; 470 name = SNS;
471 sourceTree = "<group>"; 471 sourceTree = "<group>";
472 }; 472 };
473 6E84E3C11F27AC89001EB88E /* Map */ = { 473 6E84E3C11F27AC89001EB88E /* Map */ = {
474 isa = PBXGroup; 474 isa = PBXGroup;
475 children = ( 475 children = (
476 6E84E3C21F27ACAE001EB88E /* MapViewController.h */, 476 6E84E3C21F27ACAE001EB88E /* MapViewController.h */,
477 6E84E3C31F27ACAE001EB88E /* MapViewController.m */, 477 6E84E3C31F27ACAE001EB88E /* MapViewController.m */,
478 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */, 478 6E84E3C41F27ACAE001EB88E /* MapViewController.xib */,
479 ); 479 );
480 name = Map; 480 name = Map;
481 sourceTree = "<group>"; 481 sourceTree = "<group>";
482 }; 482 };
483 6E8DA0F31F2BAC0800CCE941 /* Today */ = { 483 6E8DA0F31F2BAC0800CCE941 /* Today */ = {
484 isa = PBXGroup; 484 isa = PBXGroup;
485 children = ( 485 children = (
486 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */, 486 6E8DA0F41F2BAC3400CCE941 /* TodayViewController.h */,
487 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */, 487 6E8DA0F51F2BAC3400CCE941 /* TodayViewController.m */,
488 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */, 488 6E8DA0F61F2BAC3400CCE941 /* TodayViewController.xib */,
489 ); 489 );
490 name = Today; 490 name = Today;
491 sourceTree = "<group>"; 491 sourceTree = "<group>";
492 }; 492 };
493 6ECC406D1F2A5FA500AAEB97 /* Library */ = { 493 6ECC406D1F2A5FA500AAEB97 /* Library */ = {
494 isa = PBXGroup; 494 isa = PBXGroup;
495 children = ( 495 children = (
496 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */, 496 6E7F93391F35870F00EFBC71 /* TPKeyboardAvoiding */,
497 6ECC406E1F2A5FB200AAEB97 /* Category */, 497 6ECC406E1F2A5FB200AAEB97 /* Category */,
498 ); 498 );
499 name = Library; 499 name = Library;
500 sourceTree = "<group>"; 500 sourceTree = "<group>";
501 }; 501 };
502 6ECC406E1F2A5FB200AAEB97 /* Category */ = { 502 6ECC406E1F2A5FB200AAEB97 /* Category */ = {
503 isa = PBXGroup; 503 isa = PBXGroup;
504 children = ( 504 children = (
505 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */, 505 6ECC406F1F2A5FEB00AAEB97 /* NSDate+helper.h */,
506 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */, 506 6ECC40701F2A5FEB00AAEB97 /* NSDate+helper.m */,
507 ); 507 );
508 name = Category; 508 name = Category;
509 sourceTree = "<group>"; 509 sourceTree = "<group>";
510 }; 510 };
511 6EDC8BEB1F2C2F3300765ACC /* Common */ = { 511 6EDC8BEB1F2C2F3300765ACC /* Common */ = {
512 isa = PBXGroup; 512 isa = PBXGroup;
513 children = ( 513 children = (
514 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */, 514 6EDC8BEC1F2C2FB800765ACC /* Utilities.h */,
515 6EDC8BED1F2C2FB800765ACC /* Utilities.m */, 515 6EDC8BED1F2C2FB800765ACC /* Utilities.m */,
516 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */, 516 6EDC8BF21F2C68D700765ACC /* CMMotionActivityExtra.h */,
517 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */, 517 6EDC8BF31F2C68D700765ACC /* CMMotionActivityExtra.m */,
518 ); 518 );
519 name = Common; 519 name = Common;
520 sourceTree = "<group>"; 520 sourceTree = "<group>";
521 }; 521 };
522 783929CF869F5081762B3DCA /* Products */ = { 522 783929CF869F5081762B3DCA /* Products */ = {
523 isa = PBXGroup; 523 isa = PBXGroup;
524 children = ( 524 children = (
525 ); 525 );
526 name = Products; 526 name = Products;
527 sourceTree = "<group>"; 527 sourceTree = "<group>";
528 }; 528 };
529 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = { 529 9CA8AEE61F31BB1200C5FC74 /* ConfirmForgetPass */ = {
530 isa = PBXGroup; 530 isa = PBXGroup;
531 children = ( 531 children = (
532 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */, 532 9CA8AEE71F31BB4600C5FC74 /* ConfirmForgetPassViewController.h */,
533 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */, 533 9CA8AEE81F31BB4600C5FC74 /* ConfirmForgetPassViewController.m */,
534 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */, 534 9CA8AEE91F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib */,
535 ); 535 );
536 name = ConfirmForgetPass; 536 name = ConfirmForgetPass;
537 sourceTree = "<group>"; 537 sourceTree = "<group>";
538 }; 538 };
539 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = { 539 9CBDA0F71F2ECDFD0055DED1 /* BaseViewController */ = {
540 isa = PBXGroup; 540 isa = PBXGroup;
541 children = ( 541 children = (
542 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */, 542 9CBDA0F81F2ECE2C0055DED1 /* BaseViewController.h */,
543 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */, 543 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */,
544 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */, 544 6E48AF0B1F2F9D3200C1D184 /* CustomTextField.h */,
545 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */, 545 6E48AF0C1F2F9D3200C1D184 /* CustomTextField.m */,
546 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */, 546 E9D909221F3D6E8C004CF99F /* BaseTableViewController.h */,
547 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */, 547 E9D909231F3D6E8C004CF99F /* BaseTableViewController.m */,
548 ); 548 );
549 name = BaseViewController; 549 name = BaseViewController;
550 sourceTree = "<group>"; 550 sourceTree = "<group>";
551 }; 551 };
552 9CBDA0FB1F2F03490055DED1 /* Register */ = { 552 9CBDA0FB1F2F03490055DED1 /* Register */ = {
553 isa = PBXGroup; 553 isa = PBXGroup;
554 children = ( 554 children = (
555 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */, 555 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */,
556 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */, 556 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */,
557 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */, 557 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */,
558 ); 558 );
559 name = Register; 559 name = Register;
560 sourceTree = "<group>"; 560 sourceTree = "<group>";
561 }; 561 };
562 DE8269E957EA47CD771BAB33 /* Pods */ = { 562 DE8269E957EA47CD771BAB33 /* Pods */ = {
563 isa = PBXGroup; 563 isa = PBXGroup;
564 children = ( 564 children = (
565 6E84E3721F27A700001EB88E /* Products */, 565 6E84E3721F27A700001EB88E /* Products */,
566 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */, 566 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */,
567 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */, 567 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */,
568 ); 568 );
569 name = Pods; 569 name = Pods;
570 sourceTree = "<group>"; 570 sourceTree = "<group>";
571 }; 571 };
572 E933E6671F3E0479002926F5 /* SeachGroup */ = { 572 E933E6671F3E0479002926F5 /* SeachGroup */ = {
573 isa = PBXGroup; 573 isa = PBXGroup;
574 children = ( 574 children = (
575 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */, 575 E933E6681F3E04A6002926F5 /* SearchGroupViewController.h */,
576 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */, 576 E933E6691F3E04A6002926F5 /* SearchGroupViewController.m */,
577 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */, 577 E933E66A1F3E04A6002926F5 /* SearchGroupViewController.xib */,
578 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */, 578 E933E66D1F3E09B6002926F5 /* SearchGroupTableViewCell.h */,
579 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */, 579 E933E66E1F3E09B6002926F5 /* SearchGroupTableViewCell.m */,
580 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */, 580 E933E66F1F3E09B6002926F5 /* SearchGroupTableViewCell.xib */,
581 ); 581 );
582 name = SeachGroup; 582 name = SeachGroup;
583 sourceTree = "<group>"; 583 sourceTree = "<group>";
584 }; 584 };
585 E933E6751F4050E6002926F5 /* GroupDetail */ = { 585 E933E6751F4050E6002926F5 /* GroupDetail */ = {
586 isa = PBXGroup; 586 isa = PBXGroup;
587 children = ( 587 children = (
588 E933E6761F40513C002926F5 /* GroupDetailViewController.h */, 588 E933E6761F40513C002926F5 /* GroupDetailViewController.h */,
589 E933E6771F40513C002926F5 /* GroupDetailViewController.m */, 589 E933E6771F40513C002926F5 /* GroupDetailViewController.m */,
590 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */, 590 E933E6781F40513C002926F5 /* GroupDetailViewController.xib */,
591 ); 591 );
592 name = GroupDetail; 592 name = GroupDetail;
593 sourceTree = "<group>"; 593 sourceTree = "<group>";
594 }; 594 };
595 E9373E441F35966D0059355A /* AutoTranslateView */ = { 595 E9373E441F35966D0059355A /* AutoTranslateView */ = {
596 isa = PBXGroup; 596 isa = PBXGroup;
597 children = ( 597 children = (
598 E9373E451F3596940059355A /* AutoTransLabel.h */, 598 E9373E451F3596940059355A /* AutoTransLabel.h */,
599 E9373E461F3596940059355A /* AutoTransLabel.m */, 599 E9373E461F3596940059355A /* AutoTransLabel.m */,
600 E96855081F3C444900317CEF /* AutoTransButton.h */, 600 E96855081F3C444900317CEF /* AutoTransButton.h */,
601 E96855091F3C444900317CEF /* AutoTransButton.m */, 601 E96855091F3C444900317CEF /* AutoTransButton.m */,
602 ); 602 );
603 name = AutoTranslateView; 603 name = AutoTranslateView;
604 sourceTree = "<group>"; 604 sourceTree = "<group>";
605 }; 605 };
606 E95F4CE91F475C4B00D27E80 /* CreateGroup */ = { 606 E95F4CE91F475C4B00D27E80 /* CreateGroup */ = {
607 isa = PBXGroup; 607 isa = PBXGroup;
608 children = ( 608 children = (
609 E95F4CEA1F475C6A00D27E80 /* CreateGroupViewController.h */, 609 E95F4CEA1F475C6A00D27E80 /* CreateGroupViewController.h */,
610 E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */, 610 E95F4CEB1F475C6A00D27E80 /* CreateGroupViewController.m */,
611 E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */, 611 E95F4CEC1F475C6A00D27E80 /* CreateGroupViewController.xib */,
612 ); 612 );
613 name = CreateGroup; 613 name = CreateGroup;
614 sourceTree = "<group>"; 614 sourceTree = "<group>";
615 }; 615 };
616 E95F4CEF1F48B37100D27E80 /* MyGroup */ = { 616 E95F4CEF1F48B37100D27E80 /* MyGroup */ = {
617 isa = PBXGroup; 617 isa = PBXGroup;
618 children = ( 618 children = (
619 E95F4CF01F48B39200D27E80 /* MyGroupViewController.h */, 619 E95F4CF01F48B39200D27E80 /* MyGroupViewController.h */,
620 E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */, 620 E95F4CF11F48B39200D27E80 /* MyGroupViewController.m */,
621 E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */, 621 E95F4CF21F48B39200D27E80 /* MyGroupViewController.xib */,
622 ); 622 );
623 name = MyGroup; 623 name = MyGroup;
624 sourceTree = "<group>"; 624 sourceTree = "<group>";
625 }; 625 };
626 E99E13A71F336F0C00C78787 /* CustomView */ = { 626 E99E13A71F336F0C00C78787 /* CustomView */ = {
627 isa = PBXGroup; 627 isa = PBXGroup;
628 children = ( 628 children = (
629 E9373E441F35966D0059355A /* AutoTranslateView */, 629 E9373E441F35966D0059355A /* AutoTranslateView */,
630 E99E13A81F336F1700C78787 /* CollectionView */, 630 E99E13A81F336F1700C78787 /* CollectionView */,
631 ); 631 );
632 name = CustomView; 632 name = CustomView;
633 sourceTree = "<group>"; 633 sourceTree = "<group>";
634 }; 634 };
635 E99E13A81F336F1700C78787 /* CollectionView */ = { 635 E99E13A81F336F1700C78787 /* CollectionView */ = {
636 isa = PBXGroup; 636 isa = PBXGroup;
637 children = ( 637 children = (
638 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */, 638 E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
639 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */, 639 E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
640 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */, 640 E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
641 E99E13A91F336F3600C78787 /* CollectionView.h */, 641 E99E13A91F336F3600C78787 /* CollectionView.h */,
642 E99E13AA1F336F3600C78787 /* CollectionView.m */, 642 E99E13AA1F336F3600C78787 /* CollectionView.m */,
643 E99E13AC1F336F4500C78787 /* CollectionView.xib */, 643 E99E13AC1F336F4500C78787 /* CollectionView.xib */,
644 ); 644 );
645 name = CollectionView; 645 name = CollectionView;
646 sourceTree = "<group>"; 646 sourceTree = "<group>";
647 }; 647 };
648 /* End PBXGroup section */ 648 /* End PBXGroup section */
649 649
650 /* Begin PBXNativeTarget section */ 650 /* Begin PBXNativeTarget section */
651 6E84E3701F27A700001EB88E /* LifeLog */ = { 651 6E84E3701F27A700001EB88E /* LifeLog */ = {
652 isa = PBXNativeTarget; 652 isa = PBXNativeTarget;
653 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */; 653 buildConfigurationList = 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */;
654 buildPhases = ( 654 buildPhases = (
655 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */, 655 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */,
656 6E84E36D1F27A700001EB88E /* Sources */, 656 6E84E36D1F27A700001EB88E /* Sources */,
657 6E84E36E1F27A700001EB88E /* Frameworks */, 657 6E84E36E1F27A700001EB88E /* Frameworks */,
658 6E84E36F1F27A700001EB88E /* Resources */, 658 6E84E36F1F27A700001EB88E /* Resources */,
659 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */, 659 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */,
660 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */, 660 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */,
661 ); 661 );
662 buildRules = ( 662 buildRules = (
663 ); 663 );
664 dependencies = ( 664 dependencies = (
665 ); 665 );
666 name = LifeLog; 666 name = LifeLog;
667 productName = LifeLog; 667 productName = LifeLog;
668 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */; 668 productReference = 6E84E3711F27A700001EB88E /* LifeLog.app */;
669 productType = "com.apple.product-type.application"; 669 productType = "com.apple.product-type.application";
670 }; 670 };
671 6E84E3891F27A703001EB88E /* LifeLogTests */ = { 671 6E84E3891F27A703001EB88E /* LifeLogTests */ = {
672 isa = PBXNativeTarget; 672 isa = PBXNativeTarget;
673 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */; 673 buildConfigurationList = 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */;
674 buildPhases = ( 674 buildPhases = (
675 6E84E3861F27A703001EB88E /* Sources */, 675 6E84E3861F27A703001EB88E /* Sources */,
676 6E84E3871F27A703001EB88E /* Frameworks */, 676 6E84E3871F27A703001EB88E /* Frameworks */,
677 6E84E3881F27A703001EB88E /* Resources */, 677 6E84E3881F27A703001EB88E /* Resources */,
678 ); 678 );
679 buildRules = ( 679 buildRules = (
680 ); 680 );
681 dependencies = ( 681 dependencies = (
682 6E84E38C1F27A703001EB88E /* PBXTargetDependency */, 682 6E84E38C1F27A703001EB88E /* PBXTargetDependency */,
683 ); 683 );
684 name = LifeLogTests; 684 name = LifeLogTests;
685 productName = LifeLogTests; 685 productName = LifeLogTests;
686 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */; 686 productReference = 6E84E38A1F27A703001EB88E /* LifeLogTests.xctest */;
687 productType = "com.apple.product-type.bundle.unit-test"; 687 productType = "com.apple.product-type.bundle.unit-test";
688 }; 688 };
689 6E84E3941F27A703001EB88E /* LifeLogUITests */ = { 689 6E84E3941F27A703001EB88E /* LifeLogUITests */ = {
690 isa = PBXNativeTarget; 690 isa = PBXNativeTarget;
691 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */; 691 buildConfigurationList = 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */;
692 buildPhases = ( 692 buildPhases = (
693 6E84E3911F27A703001EB88E /* Sources */, 693 6E84E3911F27A703001EB88E /* Sources */,
694 6E84E3921F27A703001EB88E /* Frameworks */, 694 6E84E3921F27A703001EB88E /* Frameworks */,
695 6E84E3931F27A703001EB88E /* Resources */, 695 6E84E3931F27A703001EB88E /* Resources */,
696 ); 696 );
697 buildRules = ( 697 buildRules = (
698 ); 698 );
699 dependencies = ( 699 dependencies = (
700 6E84E3971F27A703001EB88E /* PBXTargetDependency */, 700 6E84E3971F27A703001EB88E /* PBXTargetDependency */,
701 ); 701 );
702 name = LifeLogUITests; 702 name = LifeLogUITests;
703 productName = LifeLogUITests; 703 productName = LifeLogUITests;
704 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */; 704 productReference = 6E84E3951F27A703001EB88E /* LifeLogUITests.xctest */;
705 productType = "com.apple.product-type.bundle.ui-testing"; 705 productType = "com.apple.product-type.bundle.ui-testing";
706 }; 706 };
707 /* End PBXNativeTarget section */ 707 /* End PBXNativeTarget section */
708 708
709 /* Begin PBXProject section */ 709 /* Begin PBXProject section */
710 6E84E3691F27A700001EB88E /* Project object */ = { 710 6E84E3691F27A700001EB88E /* Project object */ = {
711 isa = PBXProject; 711 isa = PBXProject;
712 attributes = { 712 attributes = {
713 LastUpgradeCheck = 0830; 713 LastUpgradeCheck = 0830;
714 ORGANIZATIONNAME = PhongNV; 714 ORGANIZATIONNAME = PhongNV;
715 TargetAttributes = { 715 TargetAttributes = {
716 6E84E3701F27A700001EB88E = { 716 6E84E3701F27A700001EB88E = {
717 CreatedOnToolsVersion = 8.3.3; 717 CreatedOnToolsVersion = 8.3.3;
718 DevelopmentTeam = UXU4V3VUN4; 718 DevelopmentTeam = UXU4V3VUN4;
719 ProvisioningStyle = Automatic; 719 ProvisioningStyle = Automatic;
720 }; 720 };
721 6E84E3891F27A703001EB88E = { 721 6E84E3891F27A703001EB88E = {
722 CreatedOnToolsVersion = 8.3.3; 722 CreatedOnToolsVersion = 8.3.3;
723 ProvisioningStyle = Automatic; 723 ProvisioningStyle = Automatic;
724 TestTargetID = 6E84E3701F27A700001EB88E; 724 TestTargetID = 6E84E3701F27A700001EB88E;
725 }; 725 };
726 6E84E3941F27A703001EB88E = { 726 6E84E3941F27A703001EB88E = {
727 CreatedOnToolsVersion = 8.3.3; 727 CreatedOnToolsVersion = 8.3.3;
728 ProvisioningStyle = Automatic; 728 ProvisioningStyle = Automatic;
729 TestTargetID = 6E84E3701F27A700001EB88E; 729 TestTargetID = 6E84E3701F27A700001EB88E;
730 }; 730 };
731 }; 731 };
732 }; 732 };
733 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */; 733 buildConfigurationList = 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */;
734 compatibilityVersion = "Xcode 3.2"; 734 compatibilityVersion = "Xcode 3.2";
735 developmentRegion = English; 735 developmentRegion = English;
736 hasScannedForEncodings = 0; 736 hasScannedForEncodings = 0;
737 knownRegions = ( 737 knownRegions = (
738 en, 738 en,
739 Base, 739 Base,
740 ); 740 );
741 mainGroup = 6E84E3681F27A700001EB88E; 741 mainGroup = 6E84E3681F27A700001EB88E;
742 productRefGroup = 783929CF869F5081762B3DCA /* Products */; 742 productRefGroup = 783929CF869F5081762B3DCA /* Products */;
743 projectDirPath = ""; 743 projectDirPath = "";
744 projectRoot = ""; 744 projectRoot = "";
745 targets = ( 745 targets = (
746 6E84E3701F27A700001EB88E /* LifeLog */, 746 6E84E3701F27A700001EB88E /* LifeLog */,
747 6E84E3891F27A703001EB88E /* LifeLogTests */, 747 6E84E3891F27A703001EB88E /* LifeLogTests */,
748 6E84E3941F27A703001EB88E /* LifeLogUITests */, 748 6E84E3941F27A703001EB88E /* LifeLogUITests */,
749 ); 749 );
750 }; 750 };
751 /* End PBXProject section */ 751 /* End PBXProject section */
752 752
753 /* Begin PBXResourcesBuildPhase section */ 753 /* Begin PBXResourcesBuildPhase section */
754 6E84E36F1F27A700001EB88E /* Resources */ = { 754 6E84E36F1F27A700001EB88E /* Resources */ = {
755 isa = PBXResourcesBuildPhase; 755 isa = PBXResourcesBuildPhase;
756 buildActionMask = 2147483647; 756 buildActionMask = 2147483647;
757 files = ( 757 files = (
758 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */, 758 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
759 E95F4CEE1F475C6A00D27E80 /* CreateGroupViewController.xib in Resources */, 759 E95F4CEE1F475C6A00D27E80 /* CreateGroupViewController.xib in Resources */,
760 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */, 760 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
761 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */, 761 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
762 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */, 762 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
763 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */, 763 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
764 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */, 764 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
765 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */, 765 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */,
766 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */, 766 E933E6711F3E09B6002926F5 /* SearchGroupTableViewCell.xib in Resources */,
767 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */, 767 6E8DA0F81F2BAC3500CCE941 /* TodayViewController.xib in Resources */,
768 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */, 768 6E84E3841F27A701001EB88E /* LaunchScreen.storyboard in Resources */,
769 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */, 769 6E84E3811F27A701001EB88E /* Assets.xcassets in Resources */,
770 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */, 770 6E84E3C61F27ACAE001EB88E /* MapViewController.xib in Resources */,
771 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */, 771 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
772 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */, 772 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
773 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */, 773 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
774 E95F4CF41F48B39200D27E80 /* MyGroupViewController.xib in Resources */, 774 E95F4CF41F48B39200D27E80 /* MyGroupViewController.xib in Resources */,
775 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */, 775 E933E66C1F3E04A6002926F5 /* SearchGroupViewController.xib in Resources */,
776 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */, 776 E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
777 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */, 777 E933E67A1F40513C002926F5 /* GroupDetailViewController.xib in Resources */,
778 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */, 778 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
779 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */, 779 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
780 ); 780 );
781 runOnlyForDeploymentPostprocessing = 0; 781 runOnlyForDeploymentPostprocessing = 0;
782 }; 782 };
783 6E84E3881F27A703001EB88E /* Resources */ = { 783 6E84E3881F27A703001EB88E /* Resources */ = {
784 isa = PBXResourcesBuildPhase; 784 isa = PBXResourcesBuildPhase;
785 buildActionMask = 2147483647; 785 buildActionMask = 2147483647;
786 files = ( 786 files = (
787 ); 787 );
788 runOnlyForDeploymentPostprocessing = 0; 788 runOnlyForDeploymentPostprocessing = 0;
789 }; 789 };
790 6E84E3931F27A703001EB88E /* Resources */ = { 790 6E84E3931F27A703001EB88E /* Resources */ = {
791 isa = PBXResourcesBuildPhase; 791 isa = PBXResourcesBuildPhase;
792 buildActionMask = 2147483647; 792 buildActionMask = 2147483647;
793 files = ( 793 files = (
794 ); 794 );
795 runOnlyForDeploymentPostprocessing = 0; 795 runOnlyForDeploymentPostprocessing = 0;
796 }; 796 };
797 /* End PBXResourcesBuildPhase section */ 797 /* End PBXResourcesBuildPhase section */
798 798
799 /* Begin PBXShellScriptBuildPhase section */ 799 /* Begin PBXShellScriptBuildPhase section */
800 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = { 800 22F89B11794CEB4E265996AC /* [CP] Embed Pods Frameworks */ = {
801 isa = PBXShellScriptBuildPhase; 801 isa = PBXShellScriptBuildPhase;
802 buildActionMask = 2147483647; 802 buildActionMask = 2147483647;
803 files = ( 803 files = (
804 ); 804 );
805 inputPaths = ( 805 inputPaths = (
806 "${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh",
807 "${BUILT_PRODUCTS_DIR}/Charts/Charts.framework",
808 "${BUILT_PRODUCTS_DIR}/CircleProgressBar/CircleProgressBar.framework",
809 "${BUILT_PRODUCTS_DIR}/LineKit/LineKit.framework",
810 "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework",
811 "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
806 ); 812 );
807 name = "[CP] Embed Pods Frameworks"; 813 name = "[CP] Embed Pods Frameworks";
808 outputPaths = ( 814 outputPaths = (
815 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Charts.framework",
816 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CircleProgressBar.framework",
817 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LineKit.framework",
818 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework",
819 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
809 ); 820 );
810 runOnlyForDeploymentPostprocessing = 0; 821 runOnlyForDeploymentPostprocessing = 0;
811 shellPath = /bin/sh; 822 shellPath = /bin/sh;
812 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n"; 823 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-frameworks.sh\"\n";
813 showEnvVarsInLog = 0; 824 showEnvVarsInLog = 0;
814 }; 825 };
815 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = { 826 2BB22CAEC0728AA1E086BCE3 /* [CP] Check Pods Manifest.lock */ = {
816 isa = PBXShellScriptBuildPhase; 827 isa = PBXShellScriptBuildPhase;
817 buildActionMask = 2147483647; 828 buildActionMask = 2147483647;
818 files = ( 829 files = (
819 ); 830 );
820 inputPaths = ( 831 inputPaths = (
832 "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
833 "${PODS_ROOT}/Manifest.lock",
821 ); 834 );
822 name = "[CP] Check Pods Manifest.lock"; 835 name = "[CP] Check Pods Manifest.lock";
823 outputPaths = ( 836 outputPaths = (
837 "$(DERIVED_FILE_DIR)/Pods-LifeLog-checkManifestLockResult.txt",
824 ); 838 );
825 runOnlyForDeploymentPostprocessing = 0; 839 runOnlyForDeploymentPostprocessing = 0;
826 shellPath = /bin/sh; 840 shellPath = /bin/sh;
827 shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 841 shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
828 showEnvVarsInLog = 0; 842 showEnvVarsInLog = 0;
829 }; 843 };
830 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = { 844 96653BDB2C24A87C2866C897 /* [CP] Copy Pods Resources */ = {
831 isa = PBXShellScriptBuildPhase; 845 isa = PBXShellScriptBuildPhase;
832 buildActionMask = 2147483647; 846 buildActionMask = 2147483647;
833 files = ( 847 files = (
834 ); 848 );
835 inputPaths = ( 849 inputPaths = (
836 ); 850 );
837 name = "[CP] Copy Pods Resources"; 851 name = "[CP] Copy Pods Resources";
838 outputPaths = ( 852 outputPaths = (
839 ); 853 );
840 runOnlyForDeploymentPostprocessing = 0; 854 runOnlyForDeploymentPostprocessing = 0;
841 shellPath = /bin/sh; 855 shellPath = /bin/sh;
842 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n"; 856 shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LifeLog/Pods-LifeLog-resources.sh\"\n";
843 showEnvVarsInLog = 0; 857 showEnvVarsInLog = 0;
844 }; 858 };
845 /* End PBXShellScriptBuildPhase section */ 859 /* End PBXShellScriptBuildPhase section */
846 860
847 /* Begin PBXSourcesBuildPhase section */ 861 /* Begin PBXSourcesBuildPhase section */
848 6E84E36D1F27A700001EB88E /* Sources */ = { 862 6E84E36D1F27A700001EB88E /* Sources */ = {
849 isa = PBXSourcesBuildPhase; 863 isa = PBXSourcesBuildPhase;
850 buildActionMask = 2147483647; 864 buildActionMask = 2147483647;
851 files = ( 865 files = (
852 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */, 866 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
853 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */, 867 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
854 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */, 868 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
855 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */, 869 E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
856 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */, 870 6EA4AF321F40BB7A00F52CFE /* TargetInfor.m in Sources */,
857 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */, 871 E933E6741F3E0E4E002926F5 /* GroupObject.m in Sources */,
858 6E27A74D1F9E432900C390B3 /* NoticeInfor.m in Sources */, 872 6E27A74D1F9E432900C390B3 /* NoticeInfor.m in Sources */,
859 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */, 873 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
860 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */, 874 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
861 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */, 875 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
862 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */, 876 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */,
863 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */, 877 E9D909211F3D559D004CF99F /* TweetObject.m in Sources */,
864 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */, 878 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
865 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */, 879 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
866 6E84E3B01F27A975001EB88E /* HomeViewConb troller.m in Sources */, 880 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
867 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */, 881 E9373E471F3596940059355A /* AutoTransLabel.m in Sources */,
868 6E27A74A1F9E41B400C390B3 /* HomeObject.m in Sources */, 882 6E27A74A1F9E41B400C390B3 /* HomeObject.m in Sources */,
869 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */, 883 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
870 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */, 884 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
871 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */, 885 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
872 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */, 886 E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
873 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */, 887 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
874 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */, 888 E933E6791F40513C002926F5 /* GroupDetailViewController.m in Sources */,
875 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */, 889 6EA4AF311F40BB7A00F52CFE /* StepObject.m in Sources */,
876 E95F4CED1F475C6A00D27E80 /* CreateGroupViewController.m in Sources */, 890 E95F4CED1F475C6A00D27E80 /* CreateGroupViewController.m in Sources */,
877 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */, 891 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
878 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */, 892 E9373E4A1F35AA180059355A /* HistoryObject.m in Sources */,
879 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */, 893 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
880 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */, 894 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
881 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */, 895 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
882 E97588FC1F513BAD00782484 /* RankingObject.m in Sources */, 896 E97588FC1F513BAD00782484 /* RankingObject.m in Sources */,
883 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */, 897 E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
884 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */, 898 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
885 6E18CEDC1F2E40F50029891F /* User.m in Sources */, 899 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
886 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */, 900 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
887 E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */, 901 E9497FD51F46EC1100E6AF8D /* MemberObject.m in Sources */,
888 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */, 902 6E18CED31F2E39DB0029891F /* LoginViewController.m in Sources */,
889 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */, 903 6EA4AF331F40BB7A00F52CFE /* TopObject.m in Sources */,
890 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */, 904 E9D909241F3D6E8C004CF99F /* BaseTableViewController.m in Sources */,
891 6E84E3761F27A701001EB88E /* main.m in Sources */, 905 6E84E3761F27A701001EB88E /* main.m in Sources */,
892 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */, 906 E933E6701F3E09B6002926F5 /* SearchGroupTableViewCell.m in Sources */,
893 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */, 907 6E84E3B51F27A98B001EB88E /* HistoryViewController.m in Sources */,
894 E95F4CF31F48B39200D27E80 /* MyGroupViewController.m in Sources */, 908 E95F4CF31F48B39200D27E80 /* MyGroupViewController.m in Sources */,
895 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */, 909 E933E66B1F3E04A6002926F5 /* SearchGroupViewController.m in Sources */,
896 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */, 910 6E84E3BF1F27A9B1001EB88E /* SNSViewController.m in Sources */,
897 ); 911 );
898 runOnlyForDeploymentPostprocessing = 0; 912 runOnlyForDeploymentPostprocessing = 0;
899 }; 913 };
900 6E84E3861F27A703001EB88E /* Sources */ = { 914 6E84E3861F27A703001EB88E /* Sources */ = {
901 isa = PBXSourcesBuildPhase; 915 isa = PBXSourcesBuildPhase;
902 buildActionMask = 2147483647; 916 buildActionMask = 2147483647;
903 files = ( 917 files = (
904 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */, 918 6E84E38F1F27A703001EB88E /* LifeLogTests.m in Sources */,
905 ); 919 );
906 runOnlyForDeploymentPostprocessing = 0; 920 runOnlyForDeploymentPostprocessing = 0;
907 }; 921 };
908 6E84E3911F27A703001EB88E /* Sources */ = { 922 6E84E3911F27A703001EB88E /* Sources */ = {
909 isa = PBXSourcesBuildPhase; 923 isa = PBXSourcesBuildPhase;
910 buildActionMask = 2147483647; 924 buildActionMask = 2147483647;
911 files = ( 925 files = (
912 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */, 926 6E84E39A1F27A703001EB88E /* LifeLogUITests.m in Sources */,
913 ); 927 );
914 runOnlyForDeploymentPostprocessing = 0; 928 runOnlyForDeploymentPostprocessing = 0;
915 }; 929 };
916 /* End PBXSourcesBuildPhase section */ 930 /* End PBXSourcesBuildPhase section */
917 931
918 /* Begin PBXTargetDependency section */ 932 /* Begin PBXTargetDependency section */
919 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = { 933 6E84E38C1F27A703001EB88E /* PBXTargetDependency */ = {
920 isa = PBXTargetDependency; 934 isa = PBXTargetDependency;
921 target = 6E84E3701F27A700001EB88E /* LifeLog */; 935 target = 6E84E3701F27A700001EB88E /* LifeLog */;
922 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */; 936 targetProxy = 6E84E38B1F27A703001EB88E /* PBXContainerItemProxy */;
923 }; 937 };
924 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = { 938 6E84E3971F27A703001EB88E /* PBXTargetDependency */ = {
925 isa = PBXTargetDependency; 939 isa = PBXTargetDependency;
926 target = 6E84E3701F27A700001EB88E /* LifeLog */; 940 target = 6E84E3701F27A700001EB88E /* LifeLog */;
927 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */; 941 targetProxy = 6E84E3961F27A703001EB88E /* PBXContainerItemProxy */;
928 }; 942 };
929 /* End PBXTargetDependency section */ 943 /* End PBXTargetDependency section */
930 944
931 /* Begin PBXVariantGroup section */ 945 /* Begin PBXVariantGroup section */
932 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = { 946 6E84E3821F27A701001EB88E /* LaunchScreen.storyboard */ = {
933 isa = PBXVariantGroup; 947 isa = PBXVariantGroup;
934 children = ( 948 children = (
935 6E84E3831F27A701001EB88E /* Base */, 949 6E84E3831F27A701001EB88E /* Base */,
936 ); 950 );
937 name = LaunchScreen.storyboard; 951 name = LaunchScreen.storyboard;
938 sourceTree = "<group>"; 952 sourceTree = "<group>";
939 }; 953 };
940 /* End PBXVariantGroup section */ 954 /* End PBXVariantGroup section */
941 955
942 /* Begin XCBuildConfiguration section */ 956 /* Begin XCBuildConfiguration section */
943 6E84E39C1F27A703001EB88E /* Debug */ = { 957 6E84E39C1F27A703001EB88E /* Debug */ = {
944 isa = XCBuildConfiguration; 958 isa = XCBuildConfiguration;
945 buildSettings = { 959 buildSettings = {
946 ALWAYS_SEARCH_USER_PATHS = NO; 960 ALWAYS_SEARCH_USER_PATHS = NO;
947 CLANG_ANALYZER_NONNULL = YES; 961 CLANG_ANALYZER_NONNULL = YES;
948 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 962 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
949 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 963 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
950 CLANG_CXX_LIBRARY = "libc++"; 964 CLANG_CXX_LIBRARY = "libc++";
951 CLANG_ENABLE_MODULES = YES; 965 CLANG_ENABLE_MODULES = YES;
952 CLANG_ENABLE_OBJC_ARC = YES; 966 CLANG_ENABLE_OBJC_ARC = YES;
953 CLANG_WARN_BOOL_CONVERSION = YES; 967 CLANG_WARN_BOOL_CONVERSION = YES;
954 CLANG_WARN_CONSTANT_CONVERSION = YES; 968 CLANG_WARN_CONSTANT_CONVERSION = YES;
955 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 969 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
956 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 970 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
957 CLANG_WARN_EMPTY_BODY = YES; 971 CLANG_WARN_EMPTY_BODY = YES;
958 CLANG_WARN_ENUM_CONVERSION = YES; 972 CLANG_WARN_ENUM_CONVERSION = YES;
959 CLANG_WARN_INFINITE_RECURSION = YES; 973 CLANG_WARN_INFINITE_RECURSION = YES;
960 CLANG_WARN_INT_CONVERSION = YES; 974 CLANG_WARN_INT_CONVERSION = YES;
961 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 975 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
962 CLANG_WARN_SUSPICIOUS_MOVE = YES; 976 CLANG_WARN_SUSPICIOUS_MOVE = YES;
963 CLANG_WARN_UNREACHABLE_CODE = YES; 977 CLANG_WARN_UNREACHABLE_CODE = YES;
964 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 978 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
965 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 979 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
966 COPY_PHASE_STRIP = NO; 980 COPY_PHASE_STRIP = NO;
967 DEBUG_INFORMATION_FORMAT = dwarf; 981 DEBUG_INFORMATION_FORMAT = dwarf;
968 ENABLE_STRICT_OBJC_MSGSEND = YES; 982 ENABLE_STRICT_OBJC_MSGSEND = YES;
969 ENABLE_TESTABILITY = YES; 983 ENABLE_TESTABILITY = YES;
970 GCC_C_LANGUAGE_STANDARD = gnu99; 984 GCC_C_LANGUAGE_STANDARD = gnu99;
971 GCC_DYNAMIC_NO_PIC = NO; 985 GCC_DYNAMIC_NO_PIC = NO;
972 GCC_NO_COMMON_BLOCKS = YES; 986 GCC_NO_COMMON_BLOCKS = YES;
973 GCC_OPTIMIZATION_LEVEL = 0; 987 GCC_OPTIMIZATION_LEVEL = 0;
974 GCC_PREPROCESSOR_DEFINITIONS = ( 988 GCC_PREPROCESSOR_DEFINITIONS = (
975 "DEBUG=1", 989 "DEBUG=1",
976 "$(inherited)", 990 "$(inherited)",
977 ); 991 );
978 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 992 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
979 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 993 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
980 GCC_WARN_UNDECLARED_SELECTOR = YES; 994 GCC_WARN_UNDECLARED_SELECTOR = YES;
981 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 995 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
982 GCC_WARN_UNUSED_FUNCTION = YES; 996 GCC_WARN_UNUSED_FUNCTION = YES;
983 GCC_WARN_UNUSED_VARIABLE = YES; 997 GCC_WARN_UNUSED_VARIABLE = YES;
984 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 998 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
985 MTL_ENABLE_DEBUG_INFO = YES; 999 MTL_ENABLE_DEBUG_INFO = YES;
986 ONLY_ACTIVE_ARCH = YES; 1000 ONLY_ACTIVE_ARCH = YES;
987 SDKROOT = iphoneos; 1001 SDKROOT = iphoneos;
988 TARGETED_DEVICE_FAMILY = "1,2"; 1002 TARGETED_DEVICE_FAMILY = "1,2";
989 }; 1003 };
990 name = Debug; 1004 name = Debug;
991 }; 1005 };
992 6E84E39D1F27A703001EB88E /* Release */ = { 1006 6E84E39D1F27A703001EB88E /* Release */ = {
993 isa = XCBuildConfiguration; 1007 isa = XCBuildConfiguration;
994 buildSettings = { 1008 buildSettings = {
995 ALWAYS_SEARCH_USER_PATHS = NO; 1009 ALWAYS_SEARCH_USER_PATHS = NO;
996 CLANG_ANALYZER_NONNULL = YES; 1010 CLANG_ANALYZER_NONNULL = YES;
997 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1011 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
998 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 1012 CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
999 CLANG_CXX_LIBRARY = "libc++"; 1013 CLANG_CXX_LIBRARY = "libc++";
1000 CLANG_ENABLE_MODULES = YES; 1014 CLANG_ENABLE_MODULES = YES;
1001 CLANG_ENABLE_OBJC_ARC = YES; 1015 CLANG_ENABLE_OBJC_ARC = YES;
1002 CLANG_WARN_BOOL_CONVERSION = YES; 1016 CLANG_WARN_BOOL_CONVERSION = YES;
1003 CLANG_WARN_CONSTANT_CONVERSION = YES; 1017 CLANG_WARN_CONSTANT_CONVERSION = YES;
1004 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1018 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
1005 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1019 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
1006 CLANG_WARN_EMPTY_BODY = YES; 1020 CLANG_WARN_EMPTY_BODY = YES;
1007 CLANG_WARN_ENUM_CONVERSION = YES; 1021 CLANG_WARN_ENUM_CONVERSION = YES;
1008 CLANG_WARN_INFINITE_RECURSION = YES; 1022 CLANG_WARN_INFINITE_RECURSION = YES;
1009 CLANG_WARN_INT_CONVERSION = YES; 1023 CLANG_WARN_INT_CONVERSION = YES;
1010 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1024 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
1011 CLANG_WARN_SUSPICIOUS_MOVE = YES; 1025 CLANG_WARN_SUSPICIOUS_MOVE = YES;
1012 CLANG_WARN_UNREACHABLE_CODE = YES; 1026 CLANG_WARN_UNREACHABLE_CODE = YES;
1013 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1027 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
1014 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1028 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1015 COPY_PHASE_STRIP = NO; 1029 COPY_PHASE_STRIP = NO;
1016 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1030 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
1017 ENABLE_NS_ASSERTIONS = NO; 1031 ENABLE_NS_ASSERTIONS = NO;
1018 ENABLE_STRICT_OBJC_MSGSEND = YES; 1032 ENABLE_STRICT_OBJC_MSGSEND = YES;
1019 GCC_C_LANGUAGE_STANDARD = gnu99; 1033 GCC_C_LANGUAGE_STANDARD = gnu99;
1020 GCC_NO_COMMON_BLOCKS = YES; 1034 GCC_NO_COMMON_BLOCKS = YES;
1021 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1035 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
1022 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1036 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
1023 GCC_WARN_UNDECLARED_SELECTOR = YES; 1037 GCC_WARN_UNDECLARED_SELECTOR = YES;
1024 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1038 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
1025 GCC_WARN_UNUSED_FUNCTION = YES; 1039 GCC_WARN_UNUSED_FUNCTION = YES;
1026 GCC_WARN_UNUSED_VARIABLE = YES; 1040 GCC_WARN_UNUSED_VARIABLE = YES;
1027 IPHONEOS_DEPLOYMENT_TARGET = 10.3; 1041 IPHONEOS_DEPLOYMENT_TARGET = 10.3;
1028 MTL_ENABLE_DEBUG_INFO = NO; 1042 MTL_ENABLE_DEBUG_INFO = NO;
1029 SDKROOT = iphoneos; 1043 SDKROOT = iphoneos;
1030 TARGETED_DEVICE_FAMILY = "1,2"; 1044 TARGETED_DEVICE_FAMILY = "1,2";
1031 VALIDATE_PRODUCT = YES; 1045 VALIDATE_PRODUCT = YES;
1032 }; 1046 };
1033 name = Release; 1047 name = Release;
1034 }; 1048 };
1035 6E84E39F1F27A703001EB88E /* Debug */ = { 1049 6E84E39F1F27A703001EB88E /* Debug */ = {
1036 isa = XCBuildConfiguration; 1050 isa = XCBuildConfiguration;
1037 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */; 1051 baseConfigurationReference = 0FC2D57087AF4571C57FAE08 /* Pods-LifeLog.debug.xcconfig */;
1038 buildSettings = { 1052 buildSettings = {
1039 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1053 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1040 CODE_SIGN_IDENTITY = "iPhone Distribution"; 1054 CODE_SIGN_IDENTITY = "iPhone Distribution";
1041 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1055 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1042 CODE_SIGN_STYLE = Automatic; 1056 CODE_SIGN_STYLE = Automatic;
1043 DEVELOPMENT_TEAM = UXU4V3VUN4; 1057 DEVELOPMENT_TEAM = UXU4V3VUN4;
1044 INFOPLIST_FILE = LifeLog/Info.plist; 1058 INFOPLIST_FILE = LifeLog/Info.plist;
1045 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 1059 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1046 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1060 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1047 OTHER_LDFLAGS = ( 1061 OTHER_LDFLAGS = (
1048 "$(inherited)", 1062 "$(inherited)",
1049 "-framework", 1063 "-framework",
1050 "\"CircleProgressBar\"", 1064 "\"CircleProgressBar\"",
1051 "-all_load", 1065 "-all_load",
1052 "-ObjC", 1066 "-ObjC",
1053 ); 1067 );
1054 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 1068 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
1055 PRODUCT_NAME = "$(TARGET_NAME)"; 1069 PRODUCT_NAME = "$(TARGET_NAME)";
1056 PROVISIONING_PROFILE = ""; 1070 PROVISIONING_PROFILE = "";
1057 PROVISIONING_PROFILE_SPECIFIER = ""; 1071 PROVISIONING_PROFILE_SPECIFIER = "";
1058 }; 1072 };
1059 name = Debug; 1073 name = Debug;
1060 }; 1074 };
1061 6E84E3A01F27A703001EB88E /* Release */ = { 1075 6E84E3A01F27A703001EB88E /* Release */ = {
1062 isa = XCBuildConfiguration; 1076 isa = XCBuildConfiguration;
1063 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */; 1077 baseConfigurationReference = 4CFDA5714AF852358A1EB515 /* Pods-LifeLog.release.xcconfig */;
1064 buildSettings = { 1078 buildSettings = {
1065 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1079 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
1066 CODE_SIGN_IDENTITY = "iPhone Distribution"; 1080 CODE_SIGN_IDENTITY = "iPhone Distribution";
1067 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 1081 "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
1068 CODE_SIGN_STYLE = Automatic; 1082 CODE_SIGN_STYLE = Automatic;
1069 DEVELOPMENT_TEAM = UXU4V3VUN4; 1083 DEVELOPMENT_TEAM = UXU4V3VUN4;
1070 INFOPLIST_FILE = LifeLog/Info.plist; 1084 INFOPLIST_FILE = LifeLog/Info.plist;
1071 IPHONEOS_DEPLOYMENT_TARGET = 9.0; 1085 IPHONEOS_DEPLOYMENT_TARGET = 9.0;
1072 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 1086 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
1073 OTHER_LDFLAGS = ( 1087 OTHER_LDFLAGS = (
1074 "$(inherited)", 1088 "$(inherited)",
1075 "-framework", 1089 "-framework",
1076 "\"CircleProgressBar\"", 1090 "\"CircleProgressBar\"",
1077 "-all_load", 1091 "-all_load",
1078 "-ObjC", 1092 "-ObjC",
1079 ); 1093 );
1080 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog; 1094 PRODUCT_BUNDLE_IDENTIFIER = mobileworld.jp.lifelog;
1081 PRODUCT_NAME = "$(TARGET_NAME)"; 1095 PRODUCT_NAME = "$(TARGET_NAME)";
1082 PROVISIONING_PROFILE = ""; 1096 PROVISIONING_PROFILE = "";
1083 PROVISIONING_PROFILE_SPECIFIER = ""; 1097 PROVISIONING_PROFILE_SPECIFIER = "";
1084 }; 1098 };
1085 name = Release; 1099 name = Release;
1086 }; 1100 };
1087 6E84E3A21F27A703001EB88E /* Debug */ = { 1101 6E84E3A21F27A703001EB88E /* Debug */ = {
1088 isa = XCBuildConfiguration; 1102 isa = XCBuildConfiguration;
1089 buildSettings = { 1103 buildSettings = {
1090 BUNDLE_LOADER = "$(TEST_HOST)"; 1104 BUNDLE_LOADER = "$(TEST_HOST)";
1091 INFOPLIST_FILE = LifeLogTests/Info.plist; 1105 INFOPLIST_FILE = LifeLogTests/Info.plist;
1092 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1106 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1093 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1107 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1094 PRODUCT_NAME = "$(TARGET_NAME)"; 1108 PRODUCT_NAME = "$(TARGET_NAME)";
1095 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1109 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1096 }; 1110 };
1097 name = Debug; 1111 name = Debug;
1098 }; 1112 };
1099 6E84E3A31F27A703001EB88E /* Release */ = { 1113 6E84E3A31F27A703001EB88E /* Release */ = {
1100 isa = XCBuildConfiguration; 1114 isa = XCBuildConfiguration;
1101 buildSettings = { 1115 buildSettings = {
1102 BUNDLE_LOADER = "$(TEST_HOST)"; 1116 BUNDLE_LOADER = "$(TEST_HOST)";
1103 INFOPLIST_FILE = LifeLogTests/Info.plist; 1117 INFOPLIST_FILE = LifeLogTests/Info.plist;
1104 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1118 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1105 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests; 1119 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogTests;
1106 PRODUCT_NAME = "$(TARGET_NAME)"; 1120 PRODUCT_NAME = "$(TARGET_NAME)";
1107 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog"; 1121 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LifeLog.app/LifeLog";
1108 }; 1122 };
1109 name = Release; 1123 name = Release;
1110 }; 1124 };
1111 6E84E3A51F27A703001EB88E /* Debug */ = { 1125 6E84E3A51F27A703001EB88E /* Debug */ = {
1112 isa = XCBuildConfiguration; 1126 isa = XCBuildConfiguration;
1113 buildSettings = { 1127 buildSettings = {
1114 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1128 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1115 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1129 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1116 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1130 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1117 PRODUCT_NAME = "$(TARGET_NAME)"; 1131 PRODUCT_NAME = "$(TARGET_NAME)";
1118 TEST_TARGET_NAME = LifeLog; 1132 TEST_TARGET_NAME = LifeLog;
1119 }; 1133 };
1120 name = Debug; 1134 name = Debug;
1121 }; 1135 };
1122 6E84E3A61F27A703001EB88E /* Release */ = { 1136 6E84E3A61F27A703001EB88E /* Release */ = {
1123 isa = XCBuildConfiguration; 1137 isa = XCBuildConfiguration;
1124 buildSettings = { 1138 buildSettings = {
1125 INFOPLIST_FILE = LifeLogUITests/Info.plist; 1139 INFOPLIST_FILE = LifeLogUITests/Info.plist;
1126 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 1140 LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
1127 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests; 1141 PRODUCT_BUNDLE_IDENTIFIER = com.mav.LifeLogUITests;
1128 PRODUCT_NAME = "$(TARGET_NAME)"; 1142 PRODUCT_NAME = "$(TARGET_NAME)";
1129 TEST_TARGET_NAME = LifeLog; 1143 TEST_TARGET_NAME = LifeLog;
1130 }; 1144 };
1131 name = Release; 1145 name = Release;
1132 }; 1146 };
1133 /* End XCBuildConfiguration section */ 1147 /* End XCBuildConfiguration section */
1134 1148
1135 /* Begin XCConfigurationList section */ 1149 /* Begin XCConfigurationList section */
1136 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = { 1150 6E84E36C1F27A700001EB88E /* Build configuration list for PBXProject "LifeLog" */ = {
1137 isa = XCConfigurationList; 1151 isa = XCConfigurationList;
1138 buildConfigurations = ( 1152 buildConfigurations = (
1139 6E84E39C1F27A703001EB88E /* Debug */, 1153 6E84E39C1F27A703001EB88E /* Debug */,
1140 6E84E39D1F27A703001EB88E /* Release */, 1154 6E84E39D1F27A703001EB88E /* Release */,
1141 ); 1155 );
1142 defaultConfigurationIsVisible = 0; 1156 defaultConfigurationIsVisible = 0;
1143 defaultConfigurationName = Release; 1157 defaultConfigurationName = Release;
1144 }; 1158 };
1145 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = { 1159 6E84E39E1F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLog" */ = {
1146 isa = XCConfigurationList; 1160 isa = XCConfigurationList;
1147 buildConfigurations = ( 1161 buildConfigurations = (
1148 6E84E39F1F27A703001EB88E /* Debug */, 1162 6E84E39F1F27A703001EB88E /* Debug */,
1149 6E84E3A01F27A703001EB88E /* Release */, 1163 6E84E3A01F27A703001EB88E /* Release */,
1150 ); 1164 );
1151 defaultConfigurationIsVisible = 0; 1165 defaultConfigurationIsVisible = 0;
1152 defaultConfigurationName = Release; 1166 defaultConfigurationName = Release;
1153 }; 1167 };
1154 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = { 1168 6E84E3A11F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogTests" */ = {
1155 isa = XCConfigurationList; 1169 isa = XCConfigurationList;
1156 buildConfigurations = ( 1170 buildConfigurations = (
1157 6E84E3A21F27A703001EB88E /* Debug */, 1171 6E84E3A21F27A703001EB88E /* Debug */,
1158 6E84E3A31F27A703001EB88E /* Release */, 1172 6E84E3A31F27A703001EB88E /* Release */,
1159 ); 1173 );
1160 defaultConfigurationIsVisible = 0; 1174 defaultConfigurationIsVisible = 0;
1161 defaultConfigurationName = Release; 1175 defaultConfigurationName = Release;
1162 }; 1176 };
1163 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = { 1177 6E84E3A41F27A703001EB88E /* Build configuration list for PBXNativeTarget "LifeLogUITests" */ = {
1164 isa = XCConfigurationList; 1178 isa = XCConfigurationList;
1165 buildConfigurations = ( 1179 buildConfigurations = (
1166 6E84E3A51F27A703001EB88E /* Debug */, 1180 6E84E3A51F27A703001EB88E /* Debug */,
1167 6E84E3A61F27A703001EB88E /* Release */, 1181 6E84E3A61F27A703001EB88E /* Release */,
1168 ); 1182 );
1169 defaultConfigurationIsVisible = 0; 1183 defaultConfigurationIsVisible = 0;
1170 defaultConfigurationName = Release; 1184 defaultConfigurationName = Release;
1171 }; 1185 };
1172 /* End XCConfigurationList section */ 1186 /* End XCConfigurationList section */
1173 }; 1187 };
1174 rootObject = 6E84E3691F27A700001EB88E /* Project object */; 1188 rootObject = 6E84E3691F27A700001EB88E /* Project object */;
1175 } 1189 }
1176 1190
LifeLog/LifeLog/AppDelegate.m
1 // 1 //
2 // AppDelegate.m 2 // AppDelegate.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "AppDelegate.h" 9 #import "AppDelegate.h"
10 #import "LoginViewController.h" 10 #import "LoginViewController.h"
11 #import "HomeViewController.h" 11 #import "HomeViewController.h"
12 #import "HistoryViewController.h" 12 #import "HistoryViewController.h"
13 #import "RankingViewController.h" 13 #import "RankingViewController.h"
14 #import "MapViewController.h" 14 #import "MapViewController.h"
15 #import "SNSViewController.h" 15 #import "SNSViewController.h"
16 #import "ServerAPI.h" 16 #import "ServerAPI.h"
17 #import "Utilities.h" 17 #import "Utilities.h"
18 18
19 @interface AppDelegate () 19 @interface AppDelegate ()
20 20
21 @end 21 @end
22 22
23 @implementation AppDelegate 23 @implementation AppDelegate
24 24
25 + (AppDelegate *)sharedAppDelegate { 25 + (AppDelegate *)sharedAppDelegate {
26 return (AppDelegate *)[UIApplication sharedApplication].delegate; 26 return (AppDelegate *)[UIApplication sharedApplication].delegate;
27 } 27 }
28 28
29 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 29 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
30 // Override point for customization after application launch. 30 // Override point for customization after application launch.
31 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; 31 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
32 32 [[UITabBar appearance] setBackgroundColor:[UIColor whiteColor]];
33 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser]; 33 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
34 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data]; 34 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
35 if (user == nil) { 35 if (user == nil) {
36 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 36 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
37 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC]; 37 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC];
38 self.window.rootViewController = navigation; 38 self.window.rootViewController = navigation;
39 [self.window makeKeyAndVisible]; 39 [self.window makeKeyAndVisible];
40 } 40 }
41 else { 41 else {
42 [self gotoMainMenu]; 42 [self gotoMainMenu];
43 } 43 }
44 44
45 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gotoLogin) name:kNotificationToken object:nil]; 45 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(gotoLogin) name:kNotificationToken object:nil];
46 return YES; 46 return YES;
47 } 47 }
48 48
49 - (void)gotoLogin { 49 - (void)gotoLogin {
50 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUser]; 50 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kUser];
51 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kToken]; 51 [[NSUserDefaults standardUserDefaults] removeObjectForKey:kToken];
52 [[NSUserDefaults standardUserDefaults] synchronize]; 52 [[NSUserDefaults standardUserDefaults] synchronize];
53 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil]; 53 LoginViewController *loginVC = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
54 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC]; 54 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:loginVC];
55 self.window.rootViewController = navigation; 55 self.window.rootViewController = navigation;
56 [self.window makeKeyAndVisible]; 56 [self.window makeKeyAndVisible];
57 [Utilities showErrorMessage:@"Token is invalid" withViewController:self.window.rootViewController]; 57 [Utilities showErrorMessage:@"Token is invalid" withViewController:self.window.rootViewController];
58 } 58 }
59 59
60 - (void)applicationWillResignActive:(UIApplication *)application { 60 - (void)applicationWillResignActive:(UIApplication *)application {
61 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 61 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
62 // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 62 // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
63 } 63 }
64 64
65 65
66 - (void)applicationDidEnterBackground:(UIApplication *)application { 66 - (void)applicationDidEnterBackground:(UIApplication *)application {
67 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 67 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
68 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 68 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
69 } 69 }
70 70
71 71
72 - (void)applicationWillEnterForeground:(UIApplication *)application { 72 - (void)applicationWillEnterForeground:(UIApplication *)application {
73 // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 73 // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
74 } 74 }
75 75
76 76
77 - (void)applicationDidBecomeActive:(UIApplication *)application { 77 - (void)applicationDidBecomeActive:(UIApplication *)application {
78 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 78 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
79 } 79 }
80 80
81 81
82 - (void)applicationWillTerminate:(UIApplication *)application { 82 - (void)applicationWillTerminate:(UIApplication *)application {
83 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 83 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
84 } 84 }
85 85
86 - (void)gotoMainMenu 86 - (void)gotoMainMenu
87 { 87 {
88 UITabBarController *tabBarViewController = [[UITabBarController alloc] init]; 88 UITabBarController *tabBarViewController = [[UITabBarController alloc] init];
89 89
90 HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 90 HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
91 UINavigationController *naviToday = [[UINavigationController alloc] initWithRootViewController:homeVC]; 91 UINavigationController *naviToday = [[UINavigationController alloc] initWithRootViewController:homeVC];
92 naviToday.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.today", @"") image:[UIImage imageNamed:@"tapbar_today"] tag:1]; 92 naviToday.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"tapbar_today"] tag:1];
93 naviToday.tabBarItem.imageInsets = UIEdgeInsetsMake(9, 0, -9, 0);
93 naviToday.navigationBar.hidden = YES; 94 naviToday.navigationBar.hidden = YES;
94 95
95 HistoryViewController *historyVC = [[HistoryViewController alloc] initWithNibName:@"HistoryViewController" bundle:nil]; 96 HistoryViewController *historyVC = [[HistoryViewController alloc] initWithNibName:@"HistoryViewController" bundle:nil];
96 UINavigationController *naviHistory = [[UINavigationController alloc] initWithRootViewController:historyVC]; 97 UINavigationController *naviHistory = [[UINavigationController alloc] initWithRootViewController:historyVC];
97 naviHistory.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.history", @"") image:[UIImage imageNamed:@"tapbar_history"] tag:2]; 98 naviHistory.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"tapbar_history"] tag:2];
99 naviHistory.tabBarItem.imageInsets = UIEdgeInsetsMake(9, 0, -9, 0);
98 naviHistory.navigationBar.hidden = YES; 100 naviHistory.navigationBar.hidden = YES;
99 101
100 RankingViewController *rankingVC = [[RankingViewController alloc] initWithNibName:@"RankingViewController" bundle:nil]; 102 RankingViewController *rankingVC = [[RankingViewController alloc] initWithNibName:@"RankingViewController" bundle:nil];
101 UINavigationController *naviRanking = [[UINavigationController alloc] initWithRootViewController:rankingVC]; 103 UINavigationController *naviRanking = [[UINavigationController alloc] initWithRootViewController:rankingVC];
102 naviRanking.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.ranking", @"") image:[UIImage imageNamed:@"tapbar_ranking"] tag:3]; 104 naviRanking.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"tapbar_ranking"] tag:3];
105 naviRanking.tabBarItem.imageInsets = UIEdgeInsetsMake(9, 0, -9, 0);
103 naviRanking.navigationBar.hidden = YES; 106 naviRanking.navigationBar.hidden = YES;
104 107
105 MapViewController *mapVC = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil]; 108 MapViewController *mapVC = [[MapViewController alloc] initWithNibName:@"MapViewController" bundle:nil];
106 UINavigationController *naviMap = [[UINavigationController alloc] initWithRootViewController:mapVC]; 109 UINavigationController *naviMap = [[UINavigationController alloc] initWithRootViewController:mapVC];
107 naviMap.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.map", @"") image:[UIImage imageNamed:@"tapbar_map"] tag:4]; 110 naviMap.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"tapbar_map"] tag:4];
108 111 naviMap.tabBarItem.imageInsets = UIEdgeInsetsMake(9, 0, -9, 0);
112
109 SNSViewController *snsVC = [[SNSViewController alloc] initWithNibName:@"SNSViewController" bundle:nil]; 113 SNSViewController *snsVC = [[SNSViewController alloc] initWithNibName:@"SNSViewController" bundle:nil];
110 UINavigationController *naviSNS = [[UINavigationController alloc] initWithRootViewController:snsVC]; 114 UINavigationController *naviSNS = [[UINavigationController alloc] initWithRootViewController:snsVC];
111 naviSNS.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.sns", @"") image:[UIImage imageNamed:@"tapbar_sns"] tag:5]; 115 naviSNS.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"tapbar_sns"] tag:5];
116 naviSNS.tabBarItem.imageInsets = UIEdgeInsetsMake(9, 0, -9, 0);
112 naviSNS.navigationBar.hidden = YES; 117 naviSNS.navigationBar.hidden = YES;
113 118
114 tabBarViewController.viewControllers = [NSArray arrayWithObjects:naviToday, naviHistory, naviRanking, naviMap, naviSNS, nil]; 119 tabBarViewController.viewControllers = [NSArray arrayWithObjects:naviToday, naviHistory, naviRanking, naviMap, naviSNS, nil];
115 120
116 self.window.rootViewController = tabBarViewController; 121 self.window.rootViewController = tabBarViewController;
117 [self.window makeKeyAndVisible]; 122 [self.window makeKeyAndVisible];
118 } 123 }
119 124
120 @end 125 @end
121 126
LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "avatar_default_1x.png", 5 "filename" : "ic_ava-2.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "avatar_default_2x.png", 10 "filename" : "ic_ava.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "avatar_default_3x.png", 15 "filename" : "ic_ava-1.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 } 22 }
23 } 23 }
LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/avatar_default_1x.png

2.95 KB

LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/avatar_default_2x.png

6.42 KB

LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/avatar_default_3x.png

12.3 KB

LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/ic_ava-1.png

22.4 KB

LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/ic_ava-2.png

22.4 KB

LifeLog/LifeLog/Assets.xcassets/Common/avatar_default.imageset/ic_ava.png

22.4 KB

LifeLog/LifeLog/Assets.xcassets/Common/background.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "filename" : "background.png",
6 "scale" : "1x"
7 },
8 {
9 "idiom" : "universal",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Common/background.imageset/background.png

132 KB

LifeLog/LifeLog/Assets.xcassets/Common/icon_mail.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_mail.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Common/icon_mail.imageset/ic_mail.png

7.3 KB

LifeLog/LifeLog/Assets.xcassets/Common/icon_menu.imageset/icon_menu_1x.png

1.6 KB | W: | H:

1.23 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Common/icon_menu.imageset/icon_menu_2x.png

1.93 KB | W: | H:

1.99 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Common/icon_menu.imageset/icon_menu_3x.png

2.56 KB | W: | H:

2.27 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Common/icon_other_send.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_other.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Common/icon_other_send.imageset/ic_other.png

4.87 KB

LifeLog/LifeLog/Assets.xcassets/Common/icon_twitter.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_twitter.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Common/icon_twitter.imageset/ic_twitter.png

8.18 KB

LifeLog/LifeLog/Assets.xcassets/Rank/Contents.json
File was created 1 {
2 "info" : {
3 "version" : 1,
4 "author" : "xcode"
5 }
6 }
LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_1.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_rank_1.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_1.imageset/ic_rank_1.png

8.71 KB

LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_2.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_rank_2.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_2.imageset/ic_rank_2.png

8.87 KB

LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_3.imageset/Contents.json
File was created 1 {
2 "images" : [
3 {
4 "idiom" : "universal",
5 "scale" : "1x"
6 },
7 {
8 "idiom" : "universal",
9 "filename" : "ic_rank_3.png",
10 "scale" : "2x"
11 },
12 {
13 "idiom" : "universal",
14 "scale" : "3x"
15 }
16 ],
17 "info" : {
18 "version" : 1,
19 "author" : "xcode"
20 }
21 }
LifeLog/LifeLog/Assets.xcassets/Rank/ic_rank_3.imageset/ic_rank_3.png

9.62 KB

LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_history.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "tapbar_history_1x.png", 5 "filename" : "tapbar_history_1x.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "tapbar_history_2x.png", 10 "filename" : "tapbar_history_2x.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "tapbar_history_3x.png", 15 "filename" : "tapbar_history_3x.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 },
23 "properties" : {
24 "template-rendering-intent" : "original"
22 } 25 }
23 } 26 }
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_history.imageset/tapbar_history_1x.png

1.32 KB | W: | H:

1.54 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_history.imageset/tapbar_history_2x.png

1.74 KB | W: | H:

3.18 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_history.imageset/tapbar_history_3x.png

2.26 KB | W: | H:

5.11 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_map.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "tapbar_map_1x.png", 5 "filename" : "tapbar_map_1x.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "tapbar_map_2x.png", 10 "filename" : "tapbar_map_2x.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "tapbar_map_3x.png", 15 "filename" : "tapbar_map_3x.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 },
23 "properties" : {
24 "template-rendering-intent" : "original"
22 } 25 }
23 } 26 }
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_map.imageset/tapbar_map_1x.png

1.2 KB | W: | H:

1.45 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_map.imageset/tapbar_map_2x.png

1.43 KB | W: | H:

2.68 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_map.imageset/tapbar_map_3x.png

1.73 KB | W: | H:

4.15 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_ranking.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "tapbar_ranking_1x.png", 5 "filename" : "tapbar_ranking_1x.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "tapbar_ranking_2x.png", 10 "filename" : "tapbar_ranking_2x.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "tapbar_ranking_3x.png", 15 "filename" : "tapbar_ranking_3x.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 },
23 "properties" : {
24 "template-rendering-intent" : "original"
22 } 25 }
23 } 26 }
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_ranking.imageset/tapbar_ranking_1x.png

1.61 KB | W: | H:

1.42 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_ranking.imageset/tapbar_ranking_2x.png

2.5 KB | W: | H:

2.58 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_ranking.imageset/tapbar_ranking_3x.png

3.75 KB | W: | H:

4.13 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_sns.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "tapbar_sns_1x.png", 5 "filename" : "tapbar_sns_1x.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "tapbar_sns_2x.png", 10 "filename" : "tapbar_sns_2x.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "tapbar_sns_3x.png", 15 "filename" : "tapbar_sns_3x.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 },
23 "properties" : {
24 "template-rendering-intent" : "original"
22 } 25 }
23 } 26 }
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_sns.imageset/tapbar_sns_1x.png

1.23 KB | W: | H:

1.46 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_sns.imageset/tapbar_sns_2x.png

1.32 KB | W: | H:

2.84 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_sns.imageset/tapbar_sns_3x.png

1.29 KB | W: | H:

4.37 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_today.imageset/Contents.json
1 { 1 {
2 "images" : [ 2 "images" : [
3 { 3 {
4 "idiom" : "universal", 4 "idiom" : "universal",
5 "filename" : "tapbar_today_1x.png", 5 "filename" : "tapbar_today_1x.png",
6 "scale" : "1x" 6 "scale" : "1x"
7 }, 7 },
8 { 8 {
9 "idiom" : "universal", 9 "idiom" : "universal",
10 "filename" : "tapbar_today_2x.png", 10 "filename" : "tapbar_today_2x.png",
11 "scale" : "2x" 11 "scale" : "2x"
12 }, 12 },
13 { 13 {
14 "idiom" : "universal", 14 "idiom" : "universal",
15 "filename" : "tapbar_today_3x.png", 15 "filename" : "tapbar_today_3x.png",
16 "scale" : "3x" 16 "scale" : "3x"
17 } 17 }
18 ], 18 ],
19 "info" : { 19 "info" : {
20 "version" : 1, 20 "version" : 1,
21 "author" : "xcode" 21 "author" : "xcode"
22 },
23 "properties" : {
24 "template-rendering-intent" : "original"
22 } 25 }
23 } 26 }
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_today.imageset/tapbar_today_1x.png

1.76 KB | W: | H:

1.24 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_today.imageset/tapbar_today_2x.png

2.71 KB | W: | H:

2.16 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/Assets.xcassets/Tapbar/tapbar_today.imageset/tapbar_today_3x.png

3.88 KB | W: | H:

3.44 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
LifeLog/LifeLog/CollectionView.h
1 // 1 //
2 // CollectionView.h 2 // CollectionView.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/3/17. 5 // Created by nvtu on 8/3/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 @interface CollectionView : UIView <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout> { 11 @interface CollectionView : UIView <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout> {
12 NSInteger _number; 12 NSInteger _number;
13 int _selectedIndex; 13 int _selectedIndex;
14 14
15 BOOL _isEnableSelection; 15 BOOL _isEnableSelection;
16 BOOL _isEnableIcon;
16 float _spacing; 17 float _spacing;
17 float _cornerRadius; 18 float _cornerRadius;
18 19
19 UIColor * _highlightColor; 20 UIColor * _highlightColor;
20 UIColor * _normalColor; 21 UIColor * _normalColor;
21 UIColor * _textColor; 22 UIColor * _textColor;
22 23
23 NSArray * _arrayTitle; 24 NSArray * _arrayTitle;
24 } 25 }
25 26
26 @property (copy) void (^changeCurrentIndex)(int index); 27 @property (copy) void (^changeCurrentIndex)(int index);
27 28
28 @property (weak, nonatomic) IBOutlet UIView *view; 29 @property (weak, nonatomic) IBOutlet UIView *view;
29 @property (weak, nonatomic) IBOutlet UICollectionView *collectionView; 30 @property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
30 31
31 -(void) disableSelection; 32 -(void) disableSelection;
32 -(void) setButtonNumber: (NSInteger) number; 33 -(void) setButtonNumber: (NSInteger) number;
33 -(void) setSpacing: (float) spacing; 34 -(void) setSpacing: (float) spacing;
34 -(void) setCornerRadius: (float) radius; 35 -(void) setCornerRadius: (float) radius;
35 -(void) setSelectedIndex: (int) index; 36 -(void) setSelectedIndex: (int) index;
36 -(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text; 37 -(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text;
37 -(void) setArrayTitle: (NSArray *) title; 38 -(void) setArrayTitle: (NSArray *) title;
38 39 -(void) enableImageIcon;
39 -(int) getCurrentIndex; 40 -(int) getCurrentIndex;
40 41
41 @end 42 @end
42 43
LifeLog/LifeLog/CollectionView.m
1 // 1 //
2 // CollectionView.m 2 // CollectionView.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/3/17. 5 // Created by nvtu on 8/3/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "CollectionView.h" 9 #import "CollectionView.h"
10 #import "LabelCollectionViewCell.h" 10 #import "LabelCollectionViewCell.h"
11 #import "Utilities.h" 11 #import "Utilities.h"
12 12
13 @implementation CollectionView 13 @implementation CollectionView
14 14
15 -(id) initWithCoder:(NSCoder *)aDecoder { 15 -(id) initWithCoder:(NSCoder *)aDecoder {
16 self = [super initWithCoder:aDecoder]; 16 self = [super initWithCoder:aDecoder];
17 if(self) { 17 if(self) {
18 [[UINib nibWithNibName:@"CollectionView" bundle:nil] instantiateWithOwner:self options:nil]; 18 [[UINib nibWithNibName:@"CollectionView" bundle:nil] instantiateWithOwner:self options:nil];
19 [self addSubview:self.view]; 19 [self addSubview:self.view];
20 self.view.frame = self.bounds; 20 self.view.frame = self.bounds;
21 _number = 0; 21 _number = 0;
22 _spacing = 1; 22 _spacing = 1;
23 _cornerRadius = 5.0; 23 _cornerRadius = 5.0;
24 _highlightColor = [Utilities convertHecToColor:0x999999]; 24 _highlightColor = [Utilities convertHecToColor:0x999999];
25 _normalColor = [UIColor whiteColor]; 25 _normalColor = [UIColor whiteColor];
26 _textColor = [UIColor blackColor]; 26 _textColor = [UIColor blackColor];
27 _isEnableSelection = true; 27 _isEnableSelection = true;
28 _selectedIndex = 0; 28 _selectedIndex = 0;
29 _isEnableIcon = false;
29 } 30 }
30 return self; 31 return self;
31 } 32 }
32 33
33 -(void) awakeFromNib { 34 -(void) awakeFromNib {
34 [super awakeFromNib]; 35 [super awakeFromNib];
35 [self.collectionView registerNib:[UINib nibWithNibName:@"LabelCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"LabelCell"]; 36 [self.collectionView registerNib:[UINib nibWithNibName:@"LabelCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"LabelCell"];
36 } 37 }
37 38
38 39
39 -(void) disableSelection { 40 -(void) disableSelection {
40 _isEnableSelection = false; 41 _isEnableSelection = false;
41 _selectedIndex = -1; 42 _selectedIndex = -1;
42 [self.collectionView reloadData]; 43 [self.collectionView reloadData];
43 } 44 }
44 45
45 -(void) setButtonNumber: (NSInteger) number { 46 -(void) setButtonNumber: (NSInteger) number {
46 _number = number; 47 _number = number;
47 } 48 }
48 49
49 -(void) setSpacing: (float) spacing { 50 -(void) setSpacing: (float) spacing {
50 _spacing = spacing; 51 _spacing = spacing;
51 } 52 }
52 53
53 -(void) setCornerRadius: (float) radius { 54 -(void) setCornerRadius: (float) radius {
54 _cornerRadius = radius; 55 _cornerRadius = radius;
55 } 56 }
56 57
57 -(void) setSelectedIndex: (int) index { 58 -(void) setSelectedIndex: (int) index {
58 _selectedIndex = index; 59 _selectedIndex = index;
59 [_collectionView reloadData]; 60 [_collectionView reloadData];
60 } 61 }
61 62
62 -(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text { 63 -(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text {
63 _normalColor = normal; 64 _normalColor = normal;
64 _highlightColor = highlight; 65 _highlightColor = highlight;
65 _textColor = text; 66 _textColor = text;
66 } 67 }
67 68
68 -(void) setArrayTitle: (NSArray *) title { 69 -(void) setArrayTitle: (NSArray *) title {
69 _arrayTitle = title; 70 _arrayTitle = title;
70 } 71 }
71 72
72 -(int) getCurrentIndex { 73 -(int) getCurrentIndex {
73 return _selectedIndex; 74 return _selectedIndex;
74 } 75 }
75 76
77 -(void) enableImageIcon {
78 _isEnableIcon = true;
79 }
80
76 #pragma mark - UICollectionView Delegate 81 #pragma mark - UICollectionView Delegate
77 - (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView { 82 - (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
78 return 1; 83 return 1;
79 } 84 }
80 85
81 - (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 86 - (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
82 return _number; 87 return _number;
83 } 88 }
84 89
85 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 90 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
86 LabelCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LabelCell" forIndexPath:indexPath]; 91 LabelCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LabelCell" forIndexPath:indexPath];
87 cell.lblTitle.text = [_arrayTitle objectAtIndex:indexPath.row]; 92 cell.imgIcon.hidden = !_isEnableIcon;
88 cell.lblTitle.textColor = _textColor; 93 cell.lblTitle.hidden = _isEnableIcon;
89 cell.lblTitle.layer.cornerRadius = _cornerRadius; 94 if(_isEnableIcon) {
90 cell.lblTitle.backgroundColor = (indexPath.row == _selectedIndex) ? _highlightColor : _normalColor; 95 cell.imgIcon.image = [UIImage imageNamed:[_arrayTitle objectAtIndex:indexPath.row]];
96 } else {
97 cell.lblTitle.text = [_arrayTitle objectAtIndex:indexPath.row];
98 cell.lblTitle.textColor = _textColor;
99 cell.lblTitle.layer.cornerRadius = _cornerRadius;
100 cell.lblTitle.backgroundColor = (indexPath.row == _selectedIndex) ? _highlightColor : _normalColor;
101 }
91 return cell; 102 return cell;
92 } 103 }
93 104
94 - (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 105 - (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
95 return CGSizeMake((collectionView.frame.size.width - (_spacing * _number)) / _number, collectionView.frame.size.height); 106 return CGSizeMake((collectionView.frame.size.width - (_spacing * _number)) / _number, collectionView.frame.size.height);
96 } 107 }
97 108
98 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { 109 - (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
99 return _spacing; 110 return _spacing;
100 } 111 }
101 112
102 -(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 113 -(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
103 if(_isEnableSelection) { 114 if(_isEnableSelection) {
104 _selectedIndex = indexPath.row; 115 _selectedIndex = indexPath.row;
105 [collectionView reloadData]; 116 [collectionView reloadData];
106 } 117 }
107 if(self.changeCurrentIndex != NULL) { 118 if(self.changeCurrentIndex != NULL) {
108 self.changeCurrentIndex(_selectedIndex); 119 self.changeCurrentIndex(_selectedIndex);
109 } 120 }
110 } 121 }
111 @end 122 @end
112 123
LifeLog/LifeLog/CreateGroupViewController.h
1 // 1 //
2 // CreateGroupViewController.h 2 // CreateGroupViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/19/17. 5 // Created by nvtu on 8/19/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseViewController.h" 10 #import "BaseViewController.h"
11 #import "AutoTransButton.h" 11 #import "AutoTransButton.h"
12 #import "Utilities.h" 12 #import "Utilities.h"
13 #import "Entities.h" 13 #import "Entities.h"
14 14
15 @interface CreateGroupViewController : BaseViewController<UITextFieldDelegate, UITextViewDelegate> 15 @interface CreateGroupViewController : BaseViewController<UITextFieldDelegate, UITextViewDelegate>
16 16
17 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
17 @property (weak, nonatomic) IBOutlet UITextField *textName; 18 @property (weak, nonatomic) IBOutlet UITextField *textName;
18 @property (weak, nonatomic) IBOutlet UITextField *textGoalWalk; 19 @property (weak, nonatomic) IBOutlet UITextField *textGoalWalk;
19 @property (weak, nonatomic) IBOutlet UITextField *textGoalRun; 20 @property (weak, nonatomic) IBOutlet UITextField *textGoalRun;
20 @property (weak, nonatomic) IBOutlet UITextField *textGoalBike; 21 @property (weak, nonatomic) IBOutlet UITextField *textGoalBike;
21 22
22 @property (weak, nonatomic) IBOutlet UITextView *textGoal; 23 @property (weak, nonatomic) IBOutlet UITextView *textGoal;
23 24
24 @property (weak, nonatomic) IBOutlet UISwitch *switchWalk; 25 @property (weak, nonatomic) IBOutlet UISwitch *switchWalk;
25 @property (weak, nonatomic) IBOutlet UISwitch *switchBike; 26 @property (weak, nonatomic) IBOutlet UISwitch *switchBike;
26 @property (weak, nonatomic) IBOutlet UISwitch *switchRun; 27 @property (weak, nonatomic) IBOutlet UISwitch *switchRun;
27 @property (weak, nonatomic) IBOutlet UISwitch *switchStep; 28 @property (weak, nonatomic) IBOutlet UISwitch *switchStep;
28 @property (weak, nonatomic) IBOutlet UISwitch *switchGym; 29 @property (weak, nonatomic) IBOutlet UISwitch *switchGym;
29 @property (weak, nonatomic) IBOutlet UISwitch *switchBegin; 30 @property (weak, nonatomic) IBOutlet UISwitch *switchBegin;
30 31
31 @property (copy) void (^createGroupSuccess)(GroupObject * group); 32 @property (copy) void (^createGroupSuccess)(GroupObject * group);
32 33
33 - (IBAction)clickBack:(UIButton *)sender; 34 - (IBAction)clickBack:(UIButton *)sender;
34 - (IBAction)clickCreateGroup:(AutoTransButton *)sender; 35 - (IBAction)clickCreateGroup:(AutoTransButton *)sender;
35 36
36 @end 37 @end
37 38
LifeLog/LifeLog/CreateGroupViewController.m
1 // 1 //
2 // CreateGroupViewController.m 2 // CreateGroupViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/19/17. 5 // Created by nvtu on 8/19/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "CreateGroupViewController.h" 9 #import "CreateGroupViewController.h"
10 #import "ServerAPI.h" 10 #import "ServerAPI.h"
11 11
12 @interface CreateGroupViewController () 12 @interface CreateGroupViewController ()
13 13
14 @end 14 @end
15 15
16 @implementation CreateGroupViewController 16 @implementation CreateGroupViewController
17 17
18 - (void)viewDidLoad { 18 - (void)viewDidLoad {
19 [super viewDidLoad]; 19 [super viewDidLoad];
20 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
20 // Do any additional setup after loading the view from its nib. 21 // Do any additional setup after loading the view from its nib.
21 } 22 }
22 23
23 - (void)didReceiveMemoryWarning { 24 - (void)didReceiveMemoryWarning {
24 [super didReceiveMemoryWarning]; 25 [super didReceiveMemoryWarning];
25 // Dispose of any resources that can be recreated. 26 // Dispose of any resources that can be recreated.
26 } 27 }
27 28
28 #pragma mark IBAction 29 #pragma mark IBAction
29 30
30 - (IBAction)clickBack:(UIButton *)sender { 31 - (IBAction)clickBack:(UIButton *)sender {
31 [self.navigationController popViewControllerAnimated:true]; 32 [self.navigationController popViewControllerAnimated:true];
32 } 33 }
33 34
34 - (IBAction)clickCreateGroup:(AutoTransButton *)sender { 35 - (IBAction)clickCreateGroup:(AutoTransButton *)sender {
35 NSString *name = self.textName.text; 36 NSString *name = self.textName.text;
36 NSString *goal = self.textGoal.text; 37 NSString *goal = self.textGoal.text;
37 if(name.length == 0) { 38 if(name.length == 0) {
38 [Utilities showErrorMessage:@"Fill name of group!" withViewController:self]; 39 [Utilities showErrorMessage:@"Fill name of group!" withViewController:self];
39 return; 40 return;
40 } 41 }
41 else if(name.length >= 255) { 42 else if(name.length >= 255) {
42 [Utilities showErrorMessage:@"Name of group is too long!" withViewController:self]; 43 [Utilities showErrorMessage:@"Name of group is too long!" withViewController:self];
43 return; 44 return;
44 } 45 }
45 else if(goal.length == 0) { 46 else if(goal.length == 0) {
46 [Utilities showErrorMessage:@"Fill information for goal of group" withViewController:self]; 47 [Utilities showErrorMessage:@"Fill information for goal of group" withViewController:self];
47 return; 48 return;
48 } 49 }
49 if(self.switchWalk.on && [self.textGoalWalk.text intValue] == 0) { 50 if(self.switchWalk.on && [self.textGoalWalk.text intValue] == 0) {
50 [Utilities showErrorMessage:@"Add goal for walk mode" withViewController:self]; 51 [Utilities showErrorMessage:@"Add goal for walk mode" withViewController:self];
51 return; 52 return;
52 } 53 }
53 if(self.switchBike.on && [self.textGoalBike.text intValue] == 0) { 54 if(self.switchBike.on && [self.textGoalBike.text intValue] == 0) {
54 [Utilities showErrorMessage:@"Add goal for bike mode" withViewController:self]; 55 [Utilities showErrorMessage:@"Add goal for bike mode" withViewController:self];
55 return; 56 return;
56 } 57 }
57 if(self.switchRun.on && [self.textGoalRun.text intValue] == 0) { 58 if(self.switchRun.on && [self.textGoalRun.text intValue] == 0) {
58 [Utilities showErrorMessage:@"Add goal for run mode" withViewController:self]; 59 [Utilities showErrorMessage:@"Add goal for run mode" withViewController:self];
59 return; 60 return;
60 } 61 }
61 GroupObject *object = [[GroupObject alloc] init]; 62 GroupObject *object = [[GroupObject alloc] init];
62 object.name = name; 63 object.name = name;
63 object.goal = goal; 64 object.goal = goal;
64 object.walkMode = self.switchWalk.on; 65 object.walkMode = self.switchWalk.on;
65 object.runMode = self.switchRun.on; 66 object.runMode = self.switchRun.on;
66 object.bikeMode = self.switchBike.on; 67 object.bikeMode = self.switchBike.on;
67 object.stepMode = self.switchStep.on; 68 object.stepMode = self.switchStep.on;
68 object.gymMode = self.switchGym.on; 69 object.gymMode = self.switchGym.on;
69 object.beginMode = self.switchBegin.on; 70 object.beginMode = self.switchBegin.on;
70 object.walkGoal = [self.textGoalWalk.text intValue]; 71 object.walkGoal = [self.textGoalWalk.text intValue];
71 object.bikeGoal = [self.textGoalBike.text intValue]; 72 object.bikeGoal = [self.textGoalBike.text intValue];
72 object.runGoal = [self.textGoalRun.text intValue]; 73 object.runGoal = [self.textGoalRun.text intValue];
73 74
74 NSLog(@"%@", object.name); 75 NSLog(@"%@", object.name);
75 NSLog(@"%@", object.goal); 76 NSLog(@"%@", object.goal);
76 NSLog(@"%d", object.walkGoal); 77 NSLog(@"%d", object.walkGoal);
77 NSLog(@"%d", object.bikeGoal); 78 NSLog(@"%d", object.bikeGoal);
78 NSLog(@"%d", object.runGoal); 79 NSLog(@"%d", object.runGoal);
79 NSLog(@"%d", object.walkMode); 80 NSLog(@"%d", object.walkMode);
80 NSLog(@"%d", object.runMode); 81 NSLog(@"%d", object.runMode);
81 NSLog(@"%d", object.bikeMode); 82 NSLog(@"%d", object.bikeMode);
82 NSLog(@"%d", object.stepMode); 83 NSLog(@"%d", object.stepMode);
83 NSLog(@"%d", object.gymMode); 84 NSLog(@"%d", object.gymMode);
84 NSLog(@"%d", object.beginMode); 85 NSLog(@"%d", object.beginMode);
85 86
86 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 87 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
87 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 88 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
88 [[ServerAPI server] requestCreateGroup:token withGroup:object CompletionHandler:^(GroupObject * group, NSError * error) { 89 [[ServerAPI server] requestCreateGroup:token withGroup:object CompletionHandler:^(GroupObject * group, NSError * error) {
89 CreateGroupViewController __weak *weakSelf = self; 90 CreateGroupViewController __weak *weakSelf = self;
90 if(error == nil) { 91 if(error == nil) {
91 dispatch_async(dispatch_get_main_queue(), ^{ 92 dispatch_async(dispatch_get_main_queue(), ^{
92 if(weakSelf.createGroupSuccess != nil) { 93 if(weakSelf.createGroupSuccess != nil) {
93 [hudView hideAnimated:true]; 94 [hudView hideAnimated:true];
94 [weakSelf clickBack:nil]; 95 [weakSelf clickBack:nil];
95 weakSelf.createGroupSuccess(object); 96 weakSelf.createGroupSuccess(object);
96 } 97 }
97 }); 98 });
98 } 99 }
99 else { 100 else {
100 dispatch_async(dispatch_get_main_queue(), ^{ 101 dispatch_async(dispatch_get_main_queue(), ^{
101 [hudView hideAnimated:true]; 102 [hudView hideAnimated:true];
102 NSString *message = [error.userInfo objectForKey:@"message"]; 103 NSString *message = [error.userInfo objectForKey:@"message"];
103 [Utilities showErrorMessage:message withViewController:weakSelf]; 104 [Utilities showErrorMessage:message withViewController:weakSelf];
104 }); 105 });
105 } 106 }
106 }]; 107 }];
107 } 108 }
108 109
109 #pragma mark UITextView Delegate 110 #pragma mark UITextView Delegate
110 111
111 -(BOOL) textFieldShouldReturn:(UITextField *)textField { 112 -(BOOL) textFieldShouldReturn:(UITextField *)textField {
112 [self.view endEditing:true]; 113 [self.view endEditing:true];
113 return true; 114 return true;
114 } 115 }
115 116
116 @end 117 @end
117 118
LifeLog/LifeLog/CreateGroupViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 11 </dependencies>
11 <objects> 12 <objects>
12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CreateGroupViewController"> 13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CreateGroupViewController">
13 <connections> 14 <connections>
14 <outlet property="switchBegin" destination="e63-8i-6aa" id="bbT-m6-3CV"/> 15 <outlet property="switchBegin" destination="e63-8i-6aa" id="bbT-m6-3CV"/>
15 <outlet property="switchBike" destination="fGW-Vw-PwQ" id="ncx-kP-qdd"/> 16 <outlet property="switchBike" destination="fGW-Vw-PwQ" id="ncx-kP-qdd"/>
16 <outlet property="switchGym" destination="Yga-UQ-xoU" id="rIN-kO-wmO"/> 17 <outlet property="switchGym" destination="Yga-UQ-xoU" id="rIN-kO-wmO"/>
17 <outlet property="switchRun" destination="2gX-B2-tkR" id="yak-gV-Cas"/> 18 <outlet property="switchRun" destination="2gX-B2-tkR" id="yak-gV-Cas"/>
18 <outlet property="switchStep" destination="RoR-w7-dNT" id="19b-K3-qAu"/> 19 <outlet property="switchStep" destination="RoR-w7-dNT" id="19b-K3-qAu"/>
19 <outlet property="switchWalk" destination="3xD-aH-JHl" id="OZ9-l7-Rww"/> 20 <outlet property="switchWalk" destination="3xD-aH-JHl" id="OZ9-l7-Rww"/>
20 <outlet property="textGoal" destination="hWb-vU-yVd" id="dp0-yK-P60"/> 21 <outlet property="textGoal" destination="hWb-vU-yVd" id="dp0-yK-P60"/>
21 <outlet property="textGoalBike" destination="eOi-eo-GYn" id="qfW-ns-tsM"/> 22 <outlet property="textGoalBike" destination="eOi-eo-GYn" id="qfW-ns-tsM"/>
22 <outlet property="textGoalRun" destination="3aE-uP-KLS" id="WAE-tl-O94"/> 23 <outlet property="textGoalRun" destination="3aE-uP-KLS" id="WAE-tl-O94"/>
23 <outlet property="textGoalWalk" destination="4JZ-J2-3D9" id="yHV-mB-rcn"/> 24 <outlet property="textGoalWalk" destination="4JZ-J2-3D9" id="yHV-mB-rcn"/>
24 <outlet property="textName" destination="pXO-K0-vne" id="ePQ-35-RLr"/> 25 <outlet property="textName" destination="pXO-K0-vne" id="ePQ-35-RLr"/>
25 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 26 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
27 <outlet property="viewHeader" destination="QYv-QM-Bkk" id="LYm-el-WYU"/>
26 </connections> 28 </connections>
27 </placeholder> 29 </placeholder>
28 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 30 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
29 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 31 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
30 <rect key="frame" x="0.0" y="0.0" width="320" height="626"/> 32 <rect key="frame" x="0.0" y="0.0" width="320" height="626"/>
31 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 33 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
32 <subviews> 34 <subviews>
33 <scrollView multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aKu-bd-xMP" customClass="TPKeyboardAvoidingScrollView"> 35 <scrollView multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aKu-bd-xMP" customClass="TPKeyboardAvoidingScrollView">
34 <rect key="frame" x="0.0" y="46" width="320" height="580"/> 36 <rect key="frame" x="0.0" y="46" width="320" height="580"/>
35 <subviews> 37 <subviews>
36 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9w1-87-U1W"> 38 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9w1-87-U1W">
37 <rect key="frame" x="0.0" y="0.0" width="320" height="580"/> 39 <rect key="frame" x="0.0" y="0.0" width="320" height="580"/>
38 <subviews> 40 <subviews>
39 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="名称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZtU-mt-3Ov" customClass="AutoTransLabel"> 41 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="名称" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZtU-mt-3Ov" customClass="AutoTransLabel">
40 <rect key="frame" x="8" y="10" width="70" height="30"/> 42 <rect key="frame" x="8" y="10" width="70" height="30"/>
41 <constraints> 43 <constraints>
42 <constraint firstAttribute="width" constant="70" id="Zvx-V3-7AW"/> 44 <constraint firstAttribute="width" constant="70" id="Zvx-V3-7AW"/>
43 <constraint firstAttribute="height" constant="30" id="nok-hA-mW9"/> 45 <constraint firstAttribute="height" constant="30" id="nok-hA-mW9"/>
44 </constraints> 46 </constraints>
45 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 47 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
46 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 48 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
47 <nil key="highlightedColor"/> 49 <nil key="highlightedColor"/>
48 <userDefinedRuntimeAttributes> 50 <userDefinedRuntimeAttributes>
49 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/> 51 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/>
50 </userDefinedRuntimeAttributes> 52 </userDefinedRuntimeAttributes>
51 </label> 53 </label>
52 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="pXO-K0-vne"> 54 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="pXO-K0-vne">
53 <rect key="frame" x="88" y="10" width="222" height="30"/> 55 <rect key="frame" x="88" y="10" width="222" height="30"/>
54 <constraints> 56 <constraints>
55 <constraint firstAttribute="height" constant="30" id="YJe-TW-hvA"/> 57 <constraint firstAttribute="height" constant="30" id="YJe-TW-hvA"/>
56 </constraints> 58 </constraints>
57 <nil key="textColor"/> 59 <nil key="textColor"/>
58 <fontDescription key="fontDescription" type="system" pointSize="14"/> 60 <fontDescription key="fontDescription" type="system" pointSize="14"/>
59 <textInputTraits key="textInputTraits"/> 61 <textInputTraits key="textInputTraits"/>
60 <connections> 62 <connections>
61 <outlet property="delegate" destination="-1" id="3NL-Ya-JuM"/> 63 <outlet property="delegate" destination="-1" id="3NL-Ya-JuM"/>
62 </connections> 64 </connections>
63 </textField> 65 </textField>
64 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ONn-27-HqB"> 66 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ONn-27-HqB">
65 <rect key="frame" x="10" y="50" width="140" height="120"/> 67 <rect key="frame" x="10" y="50" width="140" height="120"/>
66 <subviews> 68 <subviews>
67 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S2z-DI-pIE"> 69 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="S2z-DI-pIE">
68 <rect key="frame" x="0.0" y="0.0" width="140" height="40"/> 70 <rect key="frame" x="0.0" y="0.0" width="140" height="40"/>
69 <subviews> 71 <subviews>
70 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3xD-aH-JHl"> 72 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3xD-aH-JHl">
71 <rect key="frame" x="85" y="4" width="51" height="31"/> 73 <rect key="frame" x="85" y="4" width="51" height="31"/>
72 <constraints> 74 <constraints>
73 <constraint firstAttribute="width" secondItem="3xD-aH-JHl" secondAttribute="height" multiplier="49:31" id="7LJ-H5-oQR"/> 75 <constraint firstAttribute="width" secondItem="3xD-aH-JHl" secondAttribute="height" multiplier="49:31" id="7LJ-H5-oQR"/>
74 </constraints> 76 </constraints>
75 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 77 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
76 </switch> 78 </switch>
77 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WALK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yFv-kp-ag8" customClass="AutoTransLabel"> 79 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WALK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yFv-kp-ag8" customClass="AutoTransLabel">
78 <rect key="frame" x="6" y="10.5" width="47.5" height="20.5"/> 80 <rect key="frame" x="6" y="10.5" width="47.5" height="20.5"/>
79 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 81 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
80 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 82 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
81 <nil key="highlightedColor"/> 83 <nil key="highlightedColor"/>
82 <userDefinedRuntimeAttributes> 84 <userDefinedRuntimeAttributes>
83 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.walk"/> 85 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.walk"/>
84 </userDefinedRuntimeAttributes> 86 </userDefinedRuntimeAttributes>
85 </label> 87 </label>
86 </subviews> 88 </subviews>
87 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 89 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
88 <constraints> 90 <constraints>
89 <constraint firstAttribute="trailing" secondItem="3xD-aH-JHl" secondAttribute="trailing" constant="6" id="KNe-Rx-lun"/> 91 <constraint firstAttribute="trailing" secondItem="3xD-aH-JHl" secondAttribute="trailing" constant="6" id="KNe-Rx-lun"/>
90 <constraint firstAttribute="height" constant="40" id="akz-T7-d2v"/> 92 <constraint firstAttribute="height" constant="40" id="akz-T7-d2v"/>
91 <constraint firstItem="3xD-aH-JHl" firstAttribute="centerY" secondItem="S2z-DI-pIE" secondAttribute="centerY" id="oRy-OM-Om1"/> 93 <constraint firstItem="3xD-aH-JHl" firstAttribute="centerY" secondItem="S2z-DI-pIE" secondAttribute="centerY" id="oRy-OM-Om1"/>
92 <constraint firstItem="yFv-kp-ag8" firstAttribute="leading" secondItem="S2z-DI-pIE" secondAttribute="leading" constant="6" id="prt-UF-Ori"/> 94 <constraint firstItem="yFv-kp-ag8" firstAttribute="leading" secondItem="S2z-DI-pIE" secondAttribute="leading" constant="6" id="prt-UF-Ori"/>
93 <constraint firstItem="yFv-kp-ag8" firstAttribute="centerY" secondItem="S2z-DI-pIE" secondAttribute="centerY" id="xEl-Rl-8C1"/> 95 <constraint firstItem="yFv-kp-ag8" firstAttribute="centerY" secondItem="S2z-DI-pIE" secondAttribute="centerY" id="xEl-Rl-8C1"/>
94 </constraints> 96 </constraints>
95 </view> 97 </view>
96 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dVh-y2-XTr"> 98 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dVh-y2-XTr">
97 <rect key="frame" x="0.0" y="40" width="140" height="40"/> 99 <rect key="frame" x="0.0" y="40" width="140" height="40"/>
98 <subviews> 100 <subviews>
99 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2gX-B2-tkR"> 101 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2gX-B2-tkR">
100 <rect key="frame" x="85" y="4" width="51" height="31"/> 102 <rect key="frame" x="85" y="4" width="51" height="31"/>
101 <constraints> 103 <constraints>
102 <constraint firstAttribute="width" secondItem="2gX-B2-tkR" secondAttribute="height" multiplier="49:31" id="pBG-Mw-aNK"/> 104 <constraint firstAttribute="width" secondItem="2gX-B2-tkR" secondAttribute="height" multiplier="49:31" id="pBG-Mw-aNK"/>
103 </constraints> 105 </constraints>
104 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 106 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
105 </switch> 107 </switch>
106 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RUN" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="r9v-yX-mx8" customClass="AutoTransLabel"> 108 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RUN" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="r9v-yX-mx8" customClass="AutoTransLabel">
107 <rect key="frame" x="6" y="10.5" width="36" height="20.5"/> 109 <rect key="frame" x="6" y="10.5" width="36" height="20.5"/>
108 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 110 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
109 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 111 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
110 <nil key="highlightedColor"/> 112 <nil key="highlightedColor"/>
111 <userDefinedRuntimeAttributes> 113 <userDefinedRuntimeAttributes>
112 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.run"/> 114 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.run"/>
113 </userDefinedRuntimeAttributes> 115 </userDefinedRuntimeAttributes>
114 </label> 116 </label>
115 </subviews> 117 </subviews>
116 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
117 <constraints> 119 <constraints>
118 <constraint firstItem="2gX-B2-tkR" firstAttribute="centerY" secondItem="dVh-y2-XTr" secondAttribute="centerY" id="bNR-wC-PQG"/> 120 <constraint firstItem="2gX-B2-tkR" firstAttribute="centerY" secondItem="dVh-y2-XTr" secondAttribute="centerY" id="bNR-wC-PQG"/>
119 <constraint firstItem="r9v-yX-mx8" firstAttribute="leading" secondItem="dVh-y2-XTr" secondAttribute="leading" constant="6" id="iHM-Q7-Z1Z"/> 121 <constraint firstItem="r9v-yX-mx8" firstAttribute="leading" secondItem="dVh-y2-XTr" secondAttribute="leading" constant="6" id="iHM-Q7-Z1Z"/>
120 <constraint firstAttribute="height" constant="40" id="s8W-Ak-VrH"/> 122 <constraint firstAttribute="height" constant="40" id="s8W-Ak-VrH"/>
121 <constraint firstAttribute="trailing" secondItem="2gX-B2-tkR" secondAttribute="trailing" constant="6" id="usV-BG-oqp"/> 123 <constraint firstAttribute="trailing" secondItem="2gX-B2-tkR" secondAttribute="trailing" constant="6" id="usV-BG-oqp"/>
122 <constraint firstItem="r9v-yX-mx8" firstAttribute="centerY" secondItem="dVh-y2-XTr" secondAttribute="centerY" id="yZW-Wk-raQ"/> 124 <constraint firstItem="r9v-yX-mx8" firstAttribute="centerY" secondItem="dVh-y2-XTr" secondAttribute="centerY" id="yZW-Wk-raQ"/>
123 </constraints> 125 </constraints>
124 </view> 126 </view>
125 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7PQ-zz-N0X"> 127 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7PQ-zz-N0X">
126 <rect key="frame" x="0.0" y="80" width="140" height="40"/> 128 <rect key="frame" x="0.0" y="80" width="140" height="40"/>
127 <subviews> 129 <subviews>
128 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Yga-UQ-xoU"> 130 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Yga-UQ-xoU">
129 <rect key="frame" x="85" y="4" width="51" height="31"/> 131 <rect key="frame" x="85" y="4" width="51" height="31"/>
130 <constraints> 132 <constraints>
131 <constraint firstAttribute="width" secondItem="Yga-UQ-xoU" secondAttribute="height" multiplier="49:31" id="laB-Zs-gOj"/> 133 <constraint firstAttribute="width" secondItem="Yga-UQ-xoU" secondAttribute="height" multiplier="49:31" id="laB-Zs-gOj"/>
132 </constraints> 134 </constraints>
133 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 135 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
134 </switch> 136 </switch>
135 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ジム" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EFD-Ys-PqS" customClass="AutoTransLabel"> 137 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ジム" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EFD-Ys-PqS" customClass="AutoTransLabel">
136 <rect key="frame" x="6" y="10.5" width="35" height="20.5"/> 138 <rect key="frame" x="6" y="10.5" width="35" height="20.5"/>
137 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 139 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
138 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 140 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
139 <nil key="highlightedColor"/> 141 <nil key="highlightedColor"/>
140 <userDefinedRuntimeAttributes> 142 <userDefinedRuntimeAttributes>
141 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.gym"/> 143 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.gym"/>
142 </userDefinedRuntimeAttributes> 144 </userDefinedRuntimeAttributes>
143 </label> 145 </label>
144 </subviews> 146 </subviews>
145 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 147 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
146 <constraints> 148 <constraints>
147 <constraint firstItem="EFD-Ys-PqS" firstAttribute="centerY" secondItem="7PQ-zz-N0X" secondAttribute="centerY" id="Ein-vC-mpy"/> 149 <constraint firstItem="EFD-Ys-PqS" firstAttribute="centerY" secondItem="7PQ-zz-N0X" secondAttribute="centerY" id="Ein-vC-mpy"/>
148 <constraint firstAttribute="height" constant="40" id="aKm-hG-Hyh"/> 150 <constraint firstAttribute="height" constant="40" id="aKm-hG-Hyh"/>
149 <constraint firstAttribute="trailing" secondItem="Yga-UQ-xoU" secondAttribute="trailing" constant="6" id="cfd-4G-1NF"/> 151 <constraint firstAttribute="trailing" secondItem="Yga-UQ-xoU" secondAttribute="trailing" constant="6" id="cfd-4G-1NF"/>
150 <constraint firstItem="EFD-Ys-PqS" firstAttribute="leading" secondItem="7PQ-zz-N0X" secondAttribute="leading" constant="6" id="ojT-rz-8oC"/> 152 <constraint firstItem="EFD-Ys-PqS" firstAttribute="leading" secondItem="7PQ-zz-N0X" secondAttribute="leading" constant="6" id="ojT-rz-8oC"/>
151 <constraint firstItem="Yga-UQ-xoU" firstAttribute="centerY" secondItem="7PQ-zz-N0X" secondAttribute="centerY" id="xYy-kb-5Sk"/> 153 <constraint firstItem="Yga-UQ-xoU" firstAttribute="centerY" secondItem="7PQ-zz-N0X" secondAttribute="centerY" id="xYy-kb-5Sk"/>
152 </constraints> 154 </constraints>
153 </view> 155 </view>
154 </subviews> 156 </subviews>
155 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 157 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
156 <constraints> 158 <constraints>
157 <constraint firstItem="dVh-y2-XTr" firstAttribute="top" secondItem="S2z-DI-pIE" secondAttribute="bottom" id="2LH-28-ssn"/> 159 <constraint firstItem="dVh-y2-XTr" firstAttribute="top" secondItem="S2z-DI-pIE" secondAttribute="bottom" id="2LH-28-ssn"/>
158 <constraint firstItem="7PQ-zz-N0X" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="6md-Y8-lIk"/> 160 <constraint firstItem="7PQ-zz-N0X" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="6md-Y8-lIk"/>
159 <constraint firstAttribute="height" constant="120" id="7Tb-oJ-5eC"/> 161 <constraint firstAttribute="height" constant="120" id="7Tb-oJ-5eC"/>
160 <constraint firstItem="7PQ-zz-N0X" firstAttribute="top" secondItem="dVh-y2-XTr" secondAttribute="bottom" id="Fsa-Ai-cKQ"/> 162 <constraint firstItem="7PQ-zz-N0X" firstAttribute="top" secondItem="dVh-y2-XTr" secondAttribute="bottom" id="Fsa-Ai-cKQ"/>
161 <constraint firstAttribute="trailing" secondItem="S2z-DI-pIE" secondAttribute="trailing" id="OV6-wK-IJj"/> 163 <constraint firstAttribute="trailing" secondItem="S2z-DI-pIE" secondAttribute="trailing" id="OV6-wK-IJj"/>
162 <constraint firstItem="dVh-y2-XTr" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="TFE-bH-HwH"/> 164 <constraint firstItem="dVh-y2-XTr" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="TFE-bH-HwH"/>
163 <constraint firstAttribute="trailing" secondItem="dVh-y2-XTr" secondAttribute="trailing" id="Vul-EM-V8H"/> 165 <constraint firstAttribute="trailing" secondItem="dVh-y2-XTr" secondAttribute="trailing" id="Vul-EM-V8H"/>
164 <constraint firstItem="S2z-DI-pIE" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="top" id="Yf4-Rz-E4g"/> 166 <constraint firstItem="S2z-DI-pIE" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="top" id="Yf4-Rz-E4g"/>
165 <constraint firstAttribute="trailing" secondItem="7PQ-zz-N0X" secondAttribute="trailing" id="hLr-NV-hyv"/> 167 <constraint firstAttribute="trailing" secondItem="7PQ-zz-N0X" secondAttribute="trailing" id="hLr-NV-hyv"/>
166 <constraint firstItem="S2z-DI-pIE" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="zMY-Vd-Ge9"/> 168 <constraint firstItem="S2z-DI-pIE" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="leading" id="zMY-Vd-Ge9"/>
167 </constraints> 169 </constraints>
168 </view> 170 </view>
169 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kpa-HJ-7cE"> 171 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kpa-HJ-7cE">
170 <rect key="frame" x="170" y="50" width="140" height="120"/> 172 <rect key="frame" x="170" y="50" width="140" height="120"/>
171 <subviews> 173 <subviews>
172 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ALk-sL-SXG"> 174 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ALk-sL-SXG">
173 <rect key="frame" x="0.0" y="0.0" width="140" height="40"/> 175 <rect key="frame" x="0.0" y="0.0" width="140" height="40"/>
174 <subviews> 176 <subviews>
175 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fGW-Vw-PwQ"> 177 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fGW-Vw-PwQ">
176 <rect key="frame" x="85" y="4" width="51" height="31"/> 178 <rect key="frame" x="85" y="4" width="51" height="31"/>
177 <constraints> 179 <constraints>
178 <constraint firstAttribute="width" secondItem="fGW-Vw-PwQ" secondAttribute="height" multiplier="49:31" id="qd5-Cg-6pG"/> 180 <constraint firstAttribute="width" secondItem="fGW-Vw-PwQ" secondAttribute="height" multiplier="49:31" id="qd5-Cg-6pG"/>
179 </constraints> 181 </constraints>
180 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 182 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
181 </switch> 183 </switch>
182 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BIKE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WfE-YM-vVU" customClass="AutoTransLabel"> 184 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BIKE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WfE-YM-vVU" customClass="AutoTransLabel">
183 <rect key="frame" x="6" y="10.5" width="36.5" height="20.5"/> 185 <rect key="frame" x="6" y="10.5" width="36.5" height="20.5"/>
184 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 186 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
185 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 187 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
186 <nil key="highlightedColor"/> 188 <nil key="highlightedColor"/>
187 <userDefinedRuntimeAttributes> 189 <userDefinedRuntimeAttributes>
188 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.bike"/> 190 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.bike"/>
189 </userDefinedRuntimeAttributes> 191 </userDefinedRuntimeAttributes>
190 </label> 192 </label>
191 </subviews> 193 </subviews>
192 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 194 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
193 <constraints> 195 <constraints>
194 <constraint firstItem="WfE-YM-vVU" firstAttribute="leading" secondItem="ALk-sL-SXG" secondAttribute="leading" constant="6" id="7xm-U8-L7U"/> 196 <constraint firstItem="WfE-YM-vVU" firstAttribute="leading" secondItem="ALk-sL-SXG" secondAttribute="leading" constant="6" id="7xm-U8-L7U"/>
195 <constraint firstAttribute="height" constant="40" id="L4u-uj-rHa"/> 197 <constraint firstAttribute="height" constant="40" id="L4u-uj-rHa"/>
196 <constraint firstItem="fGW-Vw-PwQ" firstAttribute="centerY" secondItem="ALk-sL-SXG" secondAttribute="centerY" id="PBA-tv-gec"/> 198 <constraint firstItem="fGW-Vw-PwQ" firstAttribute="centerY" secondItem="ALk-sL-SXG" secondAttribute="centerY" id="PBA-tv-gec"/>
197 <constraint firstAttribute="trailing" secondItem="fGW-Vw-PwQ" secondAttribute="trailing" constant="6" id="bHc-Ih-6ar"/> 199 <constraint firstAttribute="trailing" secondItem="fGW-Vw-PwQ" secondAttribute="trailing" constant="6" id="bHc-Ih-6ar"/>
198 <constraint firstItem="WfE-YM-vVU" firstAttribute="centerY" secondItem="ALk-sL-SXG" secondAttribute="centerY" id="te7-Im-Oqh"/> 200 <constraint firstItem="WfE-YM-vVU" firstAttribute="centerY" secondItem="ALk-sL-SXG" secondAttribute="centerY" id="te7-Im-Oqh"/>
199 </constraints> 201 </constraints>
200 </view> 202 </view>
201 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Az-6N-8u4"> 203 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4Az-6N-8u4">
202 <rect key="frame" x="0.0" y="40" width="140" height="40"/> 204 <rect key="frame" x="0.0" y="40" width="140" height="40"/>
203 <subviews> 205 <subviews>
204 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RoR-w7-dNT"> 206 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RoR-w7-dNT">
205 <rect key="frame" x="85" y="4" width="51" height="31"/> 207 <rect key="frame" x="85" y="4" width="51" height="31"/>
206 <constraints> 208 <constraints>
207 <constraint firstAttribute="width" secondItem="RoR-w7-dNT" secondAttribute="height" multiplier="49:31" id="YUz-Eh-EmZ"/> 209 <constraint firstAttribute="width" secondItem="RoR-w7-dNT" secondAttribute="height" multiplier="49:31" id="YUz-Eh-EmZ"/>
208 </constraints> 210 </constraints>
209 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 211 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
210 </switch> 212 </switch>
211 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="STEP" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZyO-6K-2gA" customClass="AutoTransLabel"> 213 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="STEP" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ZyO-6K-2gA" customClass="AutoTransLabel">
212 <rect key="frame" x="6" y="10.5" width="42" height="20.5"/> 214 <rect key="frame" x="6" y="10.5" width="42" height="20.5"/>
213 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 215 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
214 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 216 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
215 <nil key="highlightedColor"/> 217 <nil key="highlightedColor"/>
216 <userDefinedRuntimeAttributes> 218 <userDefinedRuntimeAttributes>
217 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.step"/> 219 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.step"/>
218 </userDefinedRuntimeAttributes> 220 </userDefinedRuntimeAttributes>
219 </label> 221 </label>
220 </subviews> 222 </subviews>
221 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 223 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
222 <constraints> 224 <constraints>
223 <constraint firstAttribute="trailing" secondItem="RoR-w7-dNT" secondAttribute="trailing" constant="6" id="Cc4-W7-Qc8"/> 225 <constraint firstAttribute="trailing" secondItem="RoR-w7-dNT" secondAttribute="trailing" constant="6" id="Cc4-W7-Qc8"/>
224 <constraint firstItem="ZyO-6K-2gA" firstAttribute="leading" secondItem="4Az-6N-8u4" secondAttribute="leading" constant="6" id="ER7-Bx-w9j"/> 226 <constraint firstItem="ZyO-6K-2gA" firstAttribute="leading" secondItem="4Az-6N-8u4" secondAttribute="leading" constant="6" id="ER7-Bx-w9j"/>
225 <constraint firstAttribute="height" constant="40" id="Kcy-ij-IsH"/> 227 <constraint firstAttribute="height" constant="40" id="Kcy-ij-IsH"/>
226 <constraint firstItem="RoR-w7-dNT" firstAttribute="centerY" secondItem="4Az-6N-8u4" secondAttribute="centerY" id="O1R-k3-iBZ"/> 228 <constraint firstItem="RoR-w7-dNT" firstAttribute="centerY" secondItem="4Az-6N-8u4" secondAttribute="centerY" id="O1R-k3-iBZ"/>
227 <constraint firstItem="ZyO-6K-2gA" firstAttribute="centerY" secondItem="4Az-6N-8u4" secondAttribute="centerY" id="fWH-tG-gSV"/> 229 <constraint firstItem="ZyO-6K-2gA" firstAttribute="centerY" secondItem="4Az-6N-8u4" secondAttribute="centerY" id="fWH-tG-gSV"/>
228 </constraints> 230 </constraints>
229 </view> 231 </view>
230 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ORZ-El-owx"> 232 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ORZ-El-owx">
231 <rect key="frame" x="0.0" y="80" width="140" height="40"/> 233 <rect key="frame" x="0.0" y="80" width="140" height="40"/>
232 <subviews> 234 <subviews>
233 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="e63-8i-6aa"> 235 <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="e63-8i-6aa">
234 <rect key="frame" x="85" y="4" width="51" height="31"/> 236 <rect key="frame" x="85" y="4" width="51" height="31"/>
235 <constraints> 237 <constraints>
236 <constraint firstAttribute="width" secondItem="e63-8i-6aa" secondAttribute="height" multiplier="49:31" id="TTd-tM-PrG"/> 238 <constraint firstAttribute="width" secondItem="e63-8i-6aa" secondAttribute="height" multiplier="49:31" id="TTd-tM-PrG"/>
237 </constraints> 239 </constraints>
238 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 240 <color key="onTintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
239 </switch> 241 </switch>
240 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="初心者" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RfO-1U-s4W" customClass="AutoTransLabel"> 242 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="初心者" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="RfO-1U-s4W" customClass="AutoTransLabel">
241 <rect key="frame" x="6" y="10.5" width="52" height="20.5"/> 243 <rect key="frame" x="6" y="10.5" width="52" height="20.5"/>
242 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 244 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
243 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 245 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
244 <nil key="highlightedColor"/> 246 <nil key="highlightedColor"/>
245 <userDefinedRuntimeAttributes> 247 <userDefinedRuntimeAttributes>
246 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.begin"/> 248 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.begin"/>
247 </userDefinedRuntimeAttributes> 249 </userDefinedRuntimeAttributes>
248 </label> 250 </label>
249 </subviews> 251 </subviews>
250 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 252 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
251 <constraints> 253 <constraints>
252 <constraint firstItem="RfO-1U-s4W" firstAttribute="leading" secondItem="ORZ-El-owx" secondAttribute="leading" constant="6" id="5Vq-B2-215"/> 254 <constraint firstItem="RfO-1U-s4W" firstAttribute="leading" secondItem="ORZ-El-owx" secondAttribute="leading" constant="6" id="5Vq-B2-215"/>
253 <constraint firstAttribute="trailing" secondItem="e63-8i-6aa" secondAttribute="trailing" constant="6" id="NUX-0H-z8v"/> 255 <constraint firstAttribute="trailing" secondItem="e63-8i-6aa" secondAttribute="trailing" constant="6" id="NUX-0H-z8v"/>
254 <constraint firstAttribute="height" constant="40" id="PdI-3J-BTC"/> 256 <constraint firstAttribute="height" constant="40" id="PdI-3J-BTC"/>
255 <constraint firstItem="e63-8i-6aa" firstAttribute="centerY" secondItem="ORZ-El-owx" secondAttribute="centerY" id="Vxw-Vk-POY"/> 257 <constraint firstItem="e63-8i-6aa" firstAttribute="centerY" secondItem="ORZ-El-owx" secondAttribute="centerY" id="Vxw-Vk-POY"/>
256 <constraint firstItem="RfO-1U-s4W" firstAttribute="centerY" secondItem="ORZ-El-owx" secondAttribute="centerY" id="tX1-Qb-pKG"/> 258 <constraint firstItem="RfO-1U-s4W" firstAttribute="centerY" secondItem="ORZ-El-owx" secondAttribute="centerY" id="tX1-Qb-pKG"/>
257 </constraints> 259 </constraints>
258 </view> 260 </view>
259 </subviews> 261 </subviews>
260 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 262 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
261 <constraints> 263 <constraints>
262 <constraint firstAttribute="height" constant="120" id="1Z3-Ap-Qv1"/> 264 <constraint firstAttribute="height" constant="120" id="1Z3-Ap-Qv1"/>
263 <constraint firstAttribute="trailing" secondItem="ALk-sL-SXG" secondAttribute="trailing" id="2DO-V0-pH1"/> 265 <constraint firstAttribute="trailing" secondItem="ALk-sL-SXG" secondAttribute="trailing" id="2DO-V0-pH1"/>
264 <constraint firstItem="ORZ-El-owx" firstAttribute="top" secondItem="4Az-6N-8u4" secondAttribute="bottom" id="9ap-NH-2HO"/> 266 <constraint firstItem="ORZ-El-owx" firstAttribute="top" secondItem="4Az-6N-8u4" secondAttribute="bottom" id="9ap-NH-2HO"/>
265 <constraint firstItem="ALk-sL-SXG" firstAttribute="top" secondItem="Kpa-HJ-7cE" secondAttribute="top" id="Lc0-Xq-rka"/> 267 <constraint firstItem="ALk-sL-SXG" firstAttribute="top" secondItem="Kpa-HJ-7cE" secondAttribute="top" id="Lc0-Xq-rka"/>
266 <constraint firstItem="4Az-6N-8u4" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="PVG-jU-N5c"/> 268 <constraint firstItem="4Az-6N-8u4" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="PVG-jU-N5c"/>
267 <constraint firstAttribute="trailing" secondItem="ORZ-El-owx" secondAttribute="trailing" id="WYz-Kv-H08"/> 269 <constraint firstAttribute="trailing" secondItem="ORZ-El-owx" secondAttribute="trailing" id="WYz-Kv-H08"/>
268 <constraint firstItem="ORZ-El-owx" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="a7E-Je-SkO"/> 270 <constraint firstItem="ORZ-El-owx" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="a7E-Je-SkO"/>
269 <constraint firstAttribute="bottom" secondItem="ORZ-El-owx" secondAttribute="bottom" id="dr5-Tk-AAg"/> 271 <constraint firstAttribute="bottom" secondItem="ORZ-El-owx" secondAttribute="bottom" id="dr5-Tk-AAg"/>
270 <constraint firstAttribute="trailing" secondItem="4Az-6N-8u4" secondAttribute="trailing" id="wOX-wa-25X"/> 272 <constraint firstAttribute="trailing" secondItem="4Az-6N-8u4" secondAttribute="trailing" id="wOX-wa-25X"/>
271 <constraint firstItem="4Az-6N-8u4" firstAttribute="top" secondItem="ALk-sL-SXG" secondAttribute="bottom" id="xgc-3W-TS2"/> 273 <constraint firstItem="4Az-6N-8u4" firstAttribute="top" secondItem="ALk-sL-SXG" secondAttribute="bottom" id="xgc-3W-TS2"/>
272 <constraint firstItem="ALk-sL-SXG" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="yrE-eZ-Vg4"/> 274 <constraint firstItem="ALk-sL-SXG" firstAttribute="leading" secondItem="Kpa-HJ-7cE" secondAttribute="leading" id="yrE-eZ-Vg4"/>
273 </constraints> 275 </constraints>
274 </view> 276 </view>
275 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KTY-Ed-NJL" customClass="AutoTransLabel"> 277 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="KTY-Ed-NJL" customClass="AutoTransLabel">
276 <rect key="frame" x="10" y="178" width="70" height="30"/> 278 <rect key="frame" x="10" y="178" width="70" height="30"/>
277 <constraints> 279 <constraints>
278 <constraint firstAttribute="width" constant="70" id="Zlu-jK-x6p"/> 280 <constraint firstAttribute="width" constant="70" id="Zlu-jK-x6p"/>
279 <constraint firstAttribute="height" constant="30" id="tVk-5e-QAY"/> 281 <constraint firstAttribute="height" constant="30" id="tVk-5e-QAY"/>
280 </constraints> 282 </constraints>
281 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 283 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
282 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 284 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
283 <nil key="highlightedColor"/> 285 <nil key="highlightedColor"/>
284 <userDefinedRuntimeAttributes> 286 <userDefinedRuntimeAttributes>
285 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.goal"/> 287 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.goal"/>
286 </userDefinedRuntimeAttributes> 288 </userDefinedRuntimeAttributes>
287 </label> 289 </label>
288 <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="hWb-vU-yVd"> 290 <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="hWb-vU-yVd">
289 <rect key="frame" x="88" y="178" width="222" height="120"/> 291 <rect key="frame" x="88" y="178" width="222" height="120"/>
290 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 292 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
291 <constraints> 293 <constraints>
292 <constraint firstAttribute="height" constant="120" id="iYo-mA-ZGR"/> 294 <constraint firstAttribute="height" constant="120" id="iYo-mA-ZGR"/>
293 </constraints> 295 </constraints>
294 <fontDescription key="fontDescription" type="system" pointSize="14"/> 296 <fontDescription key="fontDescription" type="system" pointSize="14"/>
295 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> 297 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
296 <userDefinedRuntimeAttributes> 298 <userDefinedRuntimeAttributes>
297 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 299 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
298 <integer key="value" value="10"/> 300 <integer key="value" value="10"/>
299 </userDefinedRuntimeAttribute> 301 </userDefinedRuntimeAttribute>
300 </userDefinedRuntimeAttributes> 302 </userDefinedRuntimeAttributes>
301 <connections> 303 <connections>
302 <outlet property="delegate" destination="-1" id="fVh-oh-7St"/> 304 <outlet property="delegate" destination="-1" id="fVh-oh-7St"/>
303 </connections> 305 </connections>
304 </textView> 306 </textView>
305 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="マップ" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qdi-Na-zsj" customClass="AutoTransLabel"> 307 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="マップ" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qdi-Na-zsj" customClass="AutoTransLabel">
306 <rect key="frame" x="10" y="313" width="70" height="30"/> 308 <rect key="frame" x="10" y="313" width="70" height="30"/>
307 <constraints> 309 <constraints>
308 <constraint firstAttribute="height" constant="30" id="Ptf-0N-ewh"/> 310 <constraint firstAttribute="height" constant="30" id="Ptf-0N-ewh"/>
309 <constraint firstAttribute="width" constant="70" id="mT3-FA-eev"/> 311 <constraint firstAttribute="width" constant="70" id="mT3-FA-eev"/>
310 </constraints> 312 </constraints>
311 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 313 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
312 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 314 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
313 <nil key="highlightedColor"/> 315 <nil key="highlightedColor"/>
314 <userDefinedRuntimeAttributes> 316 <userDefinedRuntimeAttributes>
315 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.map"/> 317 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.map"/>
316 </userDefinedRuntimeAttributes> 318 </userDefinedRuntimeAttributes>
317 </label> 319 </label>
318 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1日目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qfU-7x-uss" customClass="AutoTransLabel"> 320 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1日目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qfU-7x-uss" customClass="AutoTransLabel">
319 <rect key="frame" x="10" y="353" width="300" height="30"/> 321 <rect key="frame" x="10" y="353" width="300" height="30"/>
320 <constraints> 322 <constraints>
321 <constraint firstAttribute="height" constant="30" id="9dB-8p-Wdv"/> 323 <constraint firstAttribute="height" constant="30" id="9dB-8p-Wdv"/>
322 </constraints> 324 </constraints>
323 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 325 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
324 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 326 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
325 <nil key="highlightedColor"/> 327 <nil key="highlightedColor"/>
326 <userDefinedRuntimeAttributes> 328 <userDefinedRuntimeAttributes>
327 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.goal1day"/> 329 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.goal1day"/>
328 </userDefinedRuntimeAttributes> 330 </userDefinedRuntimeAttributes>
329 </label> 331 </label>
330 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KEy-T1-mdK" customClass="AutoTransButton"> 332 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="KEy-T1-mdK" customClass="AutoTransButton">
331 <rect key="frame" x="88" y="313" width="110" height="30"/> 333 <rect key="frame" x="88" y="313" width="110" height="30"/>
332 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 334 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
333 <constraints> 335 <constraints>
334 <constraint firstAttribute="height" constant="30" id="MWc-Aj-2JZ"/> 336 <constraint firstAttribute="height" constant="30" id="MWc-Aj-2JZ"/>
335 <constraint firstAttribute="width" constant="110" id="V16-pC-FRv"/> 337 <constraint firstAttribute="width" constant="110" id="V16-pC-FRv"/>
336 </constraints> 338 </constraints>
337 <state key="normal" title="マップ作成"> 339 <state key="normal" title="マップ作成">
338 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 340 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
339 </state> 341 </state>
340 <userDefinedRuntimeAttributes> 342 <userDefinedRuntimeAttributes>
341 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 343 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
342 <integer key="value" value="5"/> 344 <integer key="value" value="5"/>
343 </userDefinedRuntimeAttribute> 345 </userDefinedRuntimeAttribute>
344 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.bt.map"/> 346 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.bt.map"/>
345 </userDefinedRuntimeAttributes> 347 </userDefinedRuntimeAttributes>
346 </button> 348 </button>
347 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WALK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3QV-Ov-PmX" customClass="AutoTransLabel"> 349 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="WALK" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3QV-Ov-PmX" customClass="AutoTransLabel">
348 <rect key="frame" x="10" y="391" width="70" height="30"/> 350 <rect key="frame" x="10" y="391" width="70" height="30"/>
349 <constraints> 351 <constraints>
350 <constraint firstAttribute="height" constant="30" id="GSj-Tq-AsU"/> 352 <constraint firstAttribute="height" constant="30" id="GSj-Tq-AsU"/>
351 <constraint firstAttribute="width" constant="70" id="uIv-Ty-eR2"/> 353 <constraint firstAttribute="width" constant="70" id="uIv-Ty-eR2"/>
352 </constraints> 354 </constraints>
353 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 355 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
354 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 356 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
355 <nil key="highlightedColor"/> 357 <nil key="highlightedColor"/>
356 <userDefinedRuntimeAttributes> 358 <userDefinedRuntimeAttributes>
357 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.walk"/> 359 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.walk"/>
358 </userDefinedRuntimeAttributes> 360 </userDefinedRuntimeAttributes>
359 </label> 361 </label>
360 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4JZ-J2-3D9"> 362 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4JZ-J2-3D9">
361 <rect key="frame" x="95" y="391" width="130" height="30"/> 363 <rect key="frame" x="95" y="391" width="130" height="30"/>
362 <constraints> 364 <constraints>
363 <constraint firstAttribute="height" constant="30" id="JaF-D4-zT2"/> 365 <constraint firstAttribute="height" constant="30" id="JaF-D4-zT2"/>
364 <constraint firstAttribute="width" constant="130" id="qCj-P5-l4y"/> 366 <constraint firstAttribute="width" constant="130" id="qCj-P5-l4y"/>
365 </constraints> 367 </constraints>
366 <nil key="textColor"/> 368 <nil key="textColor"/>
367 <fontDescription key="fontDescription" type="system" pointSize="14"/> 369 <fontDescription key="fontDescription" type="system" pointSize="14"/>
368 <textInputTraits key="textInputTraits" keyboardType="numberPad"/> 370 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
369 </textField> 371 </textField>
370 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o9b-Am-GTl"> 372 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="o9b-Am-GTl">
371 <rect key="frame" x="240" y="391" width="70" height="30"/> 373 <rect key="frame" x="240" y="391" width="70" height="30"/>
372 <constraints> 374 <constraints>
373 <constraint firstAttribute="width" constant="70" id="MN1-fg-mf1"/> 375 <constraint firstAttribute="width" constant="70" id="MN1-fg-mf1"/>
374 <constraint firstAttribute="height" constant="30" id="l7E-J3-Syw"/> 376 <constraint firstAttribute="height" constant="30" id="l7E-J3-Syw"/>
375 </constraints> 377 </constraints>
376 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 378 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
377 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 379 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
378 <nil key="highlightedColor"/> 380 <nil key="highlightedColor"/>
379 <userDefinedRuntimeAttributes> 381 <userDefinedRuntimeAttributes>
380 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/> 382 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/>
381 </userDefinedRuntimeAttributes> 383 </userDefinedRuntimeAttributes>
382 </label> 384 </label>
383 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RUN" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bq4-nh-Cxk" customClass="AutoTransLabel"> 385 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RUN" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bq4-nh-Cxk" customClass="AutoTransLabel">
384 <rect key="frame" x="10" y="429" width="70" height="30"/> 386 <rect key="frame" x="10" y="429" width="70" height="30"/>
385 <constraints> 387 <constraints>
386 <constraint firstAttribute="height" constant="30" id="MmK-Nk-eFt"/> 388 <constraint firstAttribute="height" constant="30" id="MmK-Nk-eFt"/>
387 <constraint firstAttribute="width" constant="70" id="nuP-fj-jk2"/> 389 <constraint firstAttribute="width" constant="70" id="nuP-fj-jk2"/>
388 </constraints> 390 </constraints>
389 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 391 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
390 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 392 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
391 <nil key="highlightedColor"/> 393 <nil key="highlightedColor"/>
392 <userDefinedRuntimeAttributes> 394 <userDefinedRuntimeAttributes>
393 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.run"/> 395 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.run"/>
394 </userDefinedRuntimeAttributes> 396 </userDefinedRuntimeAttributes>
395 </label> 397 </label>
396 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3aE-uP-KLS"> 398 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="3aE-uP-KLS">
397 <rect key="frame" x="95" y="429" width="130" height="30"/> 399 <rect key="frame" x="95" y="429" width="130" height="30"/>
398 <constraints> 400 <constraints>
399 <constraint firstAttribute="height" constant="30" id="37e-2c-qka"/> 401 <constraint firstAttribute="height" constant="30" id="37e-2c-qka"/>
400 <constraint firstAttribute="width" constant="130" id="owG-Ob-QnB"/> 402 <constraint firstAttribute="width" constant="130" id="owG-Ob-QnB"/>
401 </constraints> 403 </constraints>
402 <nil key="textColor"/> 404 <nil key="textColor"/>
403 <fontDescription key="fontDescription" type="system" pointSize="14"/> 405 <fontDescription key="fontDescription" type="system" pointSize="14"/>
404 <textInputTraits key="textInputTraits" keyboardType="numberPad"/> 406 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
405 </textField> 407 </textField>
406 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CGA-Xm-2ll"> 408 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CGA-Xm-2ll">
407 <rect key="frame" x="240" y="429" width="70" height="30"/> 409 <rect key="frame" x="240" y="429" width="70" height="30"/>
408 <constraints> 410 <constraints>
409 <constraint firstAttribute="width" constant="70" id="6cf-Y6-Dwq"/> 411 <constraint firstAttribute="width" constant="70" id="6cf-Y6-Dwq"/>
410 <constraint firstAttribute="height" constant="30" id="dHv-kM-AX2"/> 412 <constraint firstAttribute="height" constant="30" id="dHv-kM-AX2"/>
411 </constraints> 413 </constraints>
412 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 414 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
413 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 415 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
414 <nil key="highlightedColor"/> 416 <nil key="highlightedColor"/>
415 <userDefinedRuntimeAttributes> 417 <userDefinedRuntimeAttributes>
416 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/> 418 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/>
417 </userDefinedRuntimeAttributes> 419 </userDefinedRuntimeAttributes>
418 </label> 420 </label>
419 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BIKE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mvZ-9L-7a8" customClass="AutoTransLabel"> 421 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="BIKE" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="mvZ-9L-7a8" customClass="AutoTransLabel">
420 <rect key="frame" x="10" y="467" width="70" height="30"/> 422 <rect key="frame" x="10" y="467" width="70" height="30"/>
421 <constraints> 423 <constraints>
422 <constraint firstAttribute="height" constant="30" id="hX2-SJ-SMG"/> 424 <constraint firstAttribute="height" constant="30" id="hX2-SJ-SMG"/>
423 <constraint firstAttribute="width" constant="70" id="roN-jL-tXp"/> 425 <constraint firstAttribute="width" constant="70" id="roN-jL-tXp"/>
424 </constraints> 426 </constraints>
425 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 427 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
426 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 428 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
427 <nil key="highlightedColor"/> 429 <nil key="highlightedColor"/>
428 <userDefinedRuntimeAttributes> 430 <userDefinedRuntimeAttributes>
429 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.bike"/> 431 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.bike"/>
430 </userDefinedRuntimeAttributes> 432 </userDefinedRuntimeAttributes>
431 </label> 433 </label>
432 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="eOi-eo-GYn"> 434 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="eOi-eo-GYn">
433 <rect key="frame" x="95" y="467" width="130" height="30"/> 435 <rect key="frame" x="95" y="467" width="130" height="30"/>
434 <constraints> 436 <constraints>
435 <constraint firstAttribute="width" constant="130" id="SBb-jw-NHP"/> 437 <constraint firstAttribute="width" constant="130" id="SBb-jw-NHP"/>
436 <constraint firstAttribute="height" constant="30" id="ida-Ih-wRM"/> 438 <constraint firstAttribute="height" constant="30" id="ida-Ih-wRM"/>
437 </constraints> 439 </constraints>
438 <nil key="textColor"/> 440 <nil key="textColor"/>
439 <fontDescription key="fontDescription" type="system" pointSize="14"/> 441 <fontDescription key="fontDescription" type="system" pointSize="14"/>
440 <textInputTraits key="textInputTraits" keyboardType="numberPad"/> 442 <textInputTraits key="textInputTraits" keyboardType="numberPad"/>
441 </textField> 443 </textField>
442 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t6i-sV-ycx"> 444 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="m" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="t6i-sV-ycx">
443 <rect key="frame" x="240" y="467" width="70" height="30"/> 445 <rect key="frame" x="240" y="467" width="70" height="30"/>
444 <constraints> 446 <constraints>
445 <constraint firstAttribute="width" constant="70" id="DoG-hb-QbI"/> 447 <constraint firstAttribute="width" constant="70" id="DoG-hb-QbI"/>
446 <constraint firstAttribute="height" constant="30" id="pAs-GK-YE3"/> 448 <constraint firstAttribute="height" constant="30" id="pAs-GK-YE3"/>
447 </constraints> 449 </constraints>
448 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/> 450 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="17"/>
449 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 451 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
450 <nil key="highlightedColor"/> 452 <nil key="highlightedColor"/>
451 <userDefinedRuntimeAttributes> 453 <userDefinedRuntimeAttributes>
452 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/> 454 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.lbl.name"/>
453 </userDefinedRuntimeAttributes> 455 </userDefinedRuntimeAttributes>
454 </label> 456 </label>
455 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sef-8T-0hQ" customClass="AutoTransButton"> 457 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sef-8T-0hQ" customClass="AutoTransButton">
456 <rect key="frame" x="10" y="509" width="300" height="30"/> 458 <rect key="frame" x="10" y="509" width="300" height="30"/>
457 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 459 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
458 <constraints> 460 <constraints>
459 <constraint firstAttribute="height" constant="30" id="8XP-Y1-hlJ"/> 461 <constraint firstAttribute="height" constant="30" id="8XP-Y1-hlJ"/>
460 </constraints> 462 </constraints>
461 <state key="normal" title="グループを作成する"> 463 <state key="normal" title="グループを作成する">
462 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 464 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
463 </state> 465 </state>
464 <userDefinedRuntimeAttributes> 466 <userDefinedRuntimeAttributes>
465 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 467 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
466 <integer key="value" value="5"/> 468 <integer key="value" value="5"/>
467 </userDefinedRuntimeAttribute> 469 </userDefinedRuntimeAttribute>
468 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.bt.createGr"/> 470 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.bt.createGr"/>
469 </userDefinedRuntimeAttributes> 471 </userDefinedRuntimeAttributes>
470 <connections> 472 <connections>
471 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpInside" id="n8x-KR-til"/> 473 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpInside" id="n8x-KR-til"/>
472 </connections> 474 </connections>
473 </button> 475 </button>
474 </subviews> 476 </subviews>
475 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 477 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
476 <constraints> 478 <constraints>
477 <constraint firstItem="KTY-Ed-NJL" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="08M-tc-J6o"/> 479 <constraint firstItem="KTY-Ed-NJL" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="08M-tc-J6o"/>
478 <constraint firstItem="3QV-Ov-PmX" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="1CN-mt-xv7"/> 480 <constraint firstItem="3QV-Ov-PmX" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="1CN-mt-xv7"/>
479 <constraint firstItem="3aE-uP-KLS" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="1YH-oa-gPy"/> 481 <constraint firstItem="3aE-uP-KLS" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="1YH-oa-gPy"/>
480 <constraint firstAttribute="trailing" secondItem="qfU-7x-uss" secondAttribute="trailing" constant="10" id="1fh-fC-Tvd"/> 482 <constraint firstAttribute="trailing" secondItem="qfU-7x-uss" secondAttribute="trailing" constant="10" id="1fh-fC-Tvd"/>
481 <constraint firstItem="t6i-sV-ycx" firstAttribute="leading" secondItem="eOi-eo-GYn" secondAttribute="trailing" constant="15" id="2d5-8C-v4q"/> 483 <constraint firstItem="t6i-sV-ycx" firstAttribute="leading" secondItem="eOi-eo-GYn" secondAttribute="trailing" constant="15" id="2d5-8C-v4q"/>
482 <constraint firstItem="4JZ-J2-3D9" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="2rO-Pd-t8O"/> 484 <constraint firstItem="4JZ-J2-3D9" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="2rO-Pd-t8O"/>
483 <constraint firstItem="t6i-sV-ycx" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="4rc-co-XRr"/> 485 <constraint firstItem="t6i-sV-ycx" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="4rc-co-XRr"/>
484 <constraint firstAttribute="trailing" secondItem="sef-8T-0hQ" secondAttribute="trailing" constant="10" id="89W-o8-uLa"/> 486 <constraint firstAttribute="trailing" secondItem="sef-8T-0hQ" secondAttribute="trailing" constant="10" id="89W-o8-uLa"/>
485 <constraint firstItem="qdi-Na-zsj" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="8Cr-Gt-ts7"/> 487 <constraint firstItem="qdi-Na-zsj" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="8Cr-Gt-ts7"/>
486 <constraint firstItem="ZtU-mt-3Ov" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="8" id="8QA-ZH-zig"/> 488 <constraint firstItem="ZtU-mt-3Ov" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="8" id="8QA-ZH-zig"/>
487 <constraint firstItem="KTY-Ed-NJL" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="bottom" constant="8" id="8cI-hb-3IU"/> 489 <constraint firstItem="KTY-Ed-NJL" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="bottom" constant="8" id="8cI-hb-3IU"/>
488 <constraint firstItem="CGA-Xm-2ll" firstAttribute="leading" secondItem="3aE-uP-KLS" secondAttribute="trailing" constant="15" id="AJD-KP-oLm"/> 490 <constraint firstItem="CGA-Xm-2ll" firstAttribute="leading" secondItem="3aE-uP-KLS" secondAttribute="trailing" constant="15" id="AJD-KP-oLm"/>
489 <constraint firstItem="qfU-7x-uss" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="Akh-2h-Y5Z"/> 491 <constraint firstItem="qfU-7x-uss" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="Akh-2h-Y5Z"/>
490 <constraint firstItem="mvZ-9L-7a8" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="CyJ-DC-cmk"/> 492 <constraint firstItem="mvZ-9L-7a8" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="CyJ-DC-cmk"/>
491 <constraint firstAttribute="trailing" secondItem="hWb-vU-yVd" secondAttribute="trailing" constant="10" id="Gpv-Cf-wmA"/> 493 <constraint firstAttribute="trailing" secondItem="hWb-vU-yVd" secondAttribute="trailing" constant="10" id="Gpv-Cf-wmA"/>
492 <constraint firstItem="ONn-27-HqB" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="GqQ-jG-2Ss"/> 494 <constraint firstItem="ONn-27-HqB" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="GqQ-jG-2Ss"/>
493 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="top" id="I8B-QJ-8Kw"/> 495 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="top" secondItem="ONn-27-HqB" secondAttribute="top" id="I8B-QJ-8Kw"/>
494 <constraint firstItem="ONn-27-HqB" firstAttribute="top" secondItem="pXO-K0-vne" secondAttribute="bottom" constant="10" id="IUV-iX-zqx"/> 496 <constraint firstItem="ONn-27-HqB" firstAttribute="top" secondItem="pXO-K0-vne" secondAttribute="bottom" constant="10" id="IUV-iX-zqx"/>
495 <constraint firstItem="pXO-K0-vne" firstAttribute="leading" secondItem="ZtU-mt-3Ov" secondAttribute="trailing" constant="10" id="JQi-T2-HRB"/> 497 <constraint firstItem="pXO-K0-vne" firstAttribute="leading" secondItem="ZtU-mt-3Ov" secondAttribute="trailing" constant="10" id="JQi-T2-HRB"/>
496 <constraint firstItem="o9b-Am-GTl" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="Osm-tS-nSE"/> 498 <constraint firstItem="o9b-Am-GTl" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="Osm-tS-nSE"/>
497 <constraint firstItem="sef-8T-0hQ" firstAttribute="top" secondItem="t6i-sV-ycx" secondAttribute="bottom" constant="12" id="PNY-xc-4go"/> 499 <constraint firstItem="sef-8T-0hQ" firstAttribute="top" secondItem="t6i-sV-ycx" secondAttribute="bottom" constant="12" id="PNY-xc-4go"/>
498 <constraint firstItem="3aE-uP-KLS" firstAttribute="leading" secondItem="bq4-nh-Cxk" secondAttribute="trailing" constant="15" id="QhW-Vx-RNc"/> 500 <constraint firstItem="3aE-uP-KLS" firstAttribute="leading" secondItem="bq4-nh-Cxk" secondAttribute="trailing" constant="15" id="QhW-Vx-RNc"/>
499 <constraint firstItem="mvZ-9L-7a8" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="bottom" constant="8" id="Qu7-jT-zZM"/> 501 <constraint firstItem="mvZ-9L-7a8" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="bottom" constant="8" id="Qu7-jT-zZM"/>
500 <constraint firstItem="qdi-Na-zsj" firstAttribute="top" secondItem="KTY-Ed-NJL" secondAttribute="bottom" constant="105" id="Rbx-GC-D0X"/> 502 <constraint firstItem="qdi-Na-zsj" firstAttribute="top" secondItem="KTY-Ed-NJL" secondAttribute="bottom" constant="105" id="Rbx-GC-D0X"/>
501 <constraint firstItem="eOi-eo-GYn" firstAttribute="leading" secondItem="mvZ-9L-7a8" secondAttribute="trailing" constant="15" id="Rcg-h2-Qfa"/> 503 <constraint firstItem="eOi-eo-GYn" firstAttribute="leading" secondItem="mvZ-9L-7a8" secondAttribute="trailing" constant="15" id="Rcg-h2-Qfa"/>
502 <constraint firstItem="pXO-K0-vne" firstAttribute="top" secondItem="ZtU-mt-3Ov" secondAttribute="top" id="T8M-OQ-0Wk"/> 504 <constraint firstItem="pXO-K0-vne" firstAttribute="top" secondItem="ZtU-mt-3Ov" secondAttribute="top" id="T8M-OQ-0Wk"/>
503 <constraint firstItem="o9b-Am-GTl" firstAttribute="leading" secondItem="4JZ-J2-3D9" secondAttribute="trailing" constant="15" id="UyE-qx-Mtp"/> 505 <constraint firstItem="o9b-Am-GTl" firstAttribute="leading" secondItem="4JZ-J2-3D9" secondAttribute="trailing" constant="15" id="UyE-qx-Mtp"/>
504 <constraint firstItem="4JZ-J2-3D9" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="aRK-i9-XKN"/> 506 <constraint firstItem="4JZ-J2-3D9" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="top" id="aRK-i9-XKN"/>
505 <constraint firstItem="hWb-vU-yVd" firstAttribute="top" secondItem="Kpa-HJ-7cE" secondAttribute="bottom" constant="8" id="chw-2w-QOv"/> 507 <constraint firstItem="hWb-vU-yVd" firstAttribute="top" secondItem="Kpa-HJ-7cE" secondAttribute="bottom" constant="8" id="chw-2w-QOv"/>
506 <constraint firstItem="sef-8T-0hQ" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="dfN-4U-9Oc"/> 508 <constraint firstItem="sef-8T-0hQ" firstAttribute="leading" secondItem="9w1-87-U1W" secondAttribute="leading" constant="10" id="dfN-4U-9Oc"/>
507 <constraint firstItem="eOi-eo-GYn" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="e8C-p7-obk"/> 509 <constraint firstItem="eOi-eo-GYn" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="e8C-p7-obk"/>
508 <constraint firstItem="bq4-nh-Cxk" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="bottom" constant="8" id="gjA-dw-4j6"/> 510 <constraint firstItem="bq4-nh-Cxk" firstAttribute="top" secondItem="3QV-Ov-PmX" secondAttribute="bottom" constant="8" id="gjA-dw-4j6"/>
509 <constraint firstItem="4JZ-J2-3D9" firstAttribute="leading" secondItem="3QV-Ov-PmX" secondAttribute="trailing" constant="15" id="hCs-KK-0oG"/> 511 <constraint firstItem="4JZ-J2-3D9" firstAttribute="leading" secondItem="3QV-Ov-PmX" secondAttribute="trailing" constant="15" id="hCs-KK-0oG"/>
510 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="width" secondItem="ONn-27-HqB" secondAttribute="width" id="i0I-s6-95a"/> 512 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="width" secondItem="ONn-27-HqB" secondAttribute="width" id="i0I-s6-95a"/>
511 <constraint firstAttribute="trailing" secondItem="pXO-K0-vne" secondAttribute="trailing" constant="10" id="j2H-Na-egE"/> 513 <constraint firstAttribute="trailing" secondItem="pXO-K0-vne" secondAttribute="trailing" constant="10" id="j2H-Na-egE"/>
512 <constraint firstItem="bq4-nh-Cxk" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="kTU-cF-wdS"/> 514 <constraint firstItem="bq4-nh-Cxk" firstAttribute="leading" secondItem="qfU-7x-uss" secondAttribute="leading" id="kTU-cF-wdS"/>
513 <constraint firstItem="hWb-vU-yVd" firstAttribute="leading" secondItem="KTY-Ed-NJL" secondAttribute="trailing" constant="8" id="ka5-tK-yxs"/> 515 <constraint firstItem="hWb-vU-yVd" firstAttribute="leading" secondItem="KTY-Ed-NJL" secondAttribute="trailing" constant="8" id="ka5-tK-yxs"/>
514 <constraint firstItem="eOi-eo-GYn" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="klA-2z-2Kx"/> 516 <constraint firstItem="eOi-eo-GYn" firstAttribute="top" secondItem="mvZ-9L-7a8" secondAttribute="top" id="klA-2z-2Kx"/>
515 <constraint firstItem="3aE-uP-KLS" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="pdY-Ef-eHr"/> 517 <constraint firstItem="3aE-uP-KLS" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="pdY-Ef-eHr"/>
516 <constraint firstItem="3QV-Ov-PmX" firstAttribute="top" secondItem="qfU-7x-uss" secondAttribute="bottom" constant="8" id="qLb-a1-eOB"/> 518 <constraint firstItem="3QV-Ov-PmX" firstAttribute="top" secondItem="qfU-7x-uss" secondAttribute="bottom" constant="8" id="qLb-a1-eOB"/>
517 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="trailing" constant="20" id="rMt-rx-zDY"/> 519 <constraint firstItem="Kpa-HJ-7cE" firstAttribute="leading" secondItem="ONn-27-HqB" secondAttribute="trailing" constant="20" id="rMt-rx-zDY"/>
518 <constraint firstItem="KEy-T1-mdK" firstAttribute="top" secondItem="hWb-vU-yVd" secondAttribute="bottom" constant="15" id="sIJ-Rk-gj3"/> 520 <constraint firstItem="KEy-T1-mdK" firstAttribute="top" secondItem="hWb-vU-yVd" secondAttribute="bottom" constant="15" id="sIJ-Rk-gj3"/>
519 <constraint firstItem="ZtU-mt-3Ov" firstAttribute="top" secondItem="9w1-87-U1W" secondAttribute="top" constant="10" id="tBp-C6-fjS"/> 521 <constraint firstItem="ZtU-mt-3Ov" firstAttribute="top" secondItem="9w1-87-U1W" secondAttribute="top" constant="10" id="tBp-C6-fjS"/>
520 <constraint firstItem="CGA-Xm-2ll" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="uaB-yp-z16"/> 522 <constraint firstItem="CGA-Xm-2ll" firstAttribute="top" secondItem="bq4-nh-Cxk" secondAttribute="top" id="uaB-yp-z16"/>
521 <constraint firstItem="qfU-7x-uss" firstAttribute="top" secondItem="KEy-T1-mdK" secondAttribute="bottom" constant="10" id="w4X-lJ-yL1"/> 523 <constraint firstItem="qfU-7x-uss" firstAttribute="top" secondItem="KEy-T1-mdK" secondAttribute="bottom" constant="10" id="w4X-lJ-yL1"/>
522 <constraint firstAttribute="trailing" secondItem="Kpa-HJ-7cE" secondAttribute="trailing" constant="10" id="wvh-Lk-tt9"/> 524 <constraint firstAttribute="trailing" secondItem="Kpa-HJ-7cE" secondAttribute="trailing" constant="10" id="wvh-Lk-tt9"/>
523 <constraint firstItem="KEy-T1-mdK" firstAttribute="leading" secondItem="qdi-Na-zsj" secondAttribute="trailing" constant="8" id="xGa-CF-V9a"/> 525 <constraint firstItem="KEy-T1-mdK" firstAttribute="leading" secondItem="qdi-Na-zsj" secondAttribute="trailing" constant="8" id="xGa-CF-V9a"/>
524 </constraints> 526 </constraints>
525 </view> 527 </view>
526 </subviews> 528 </subviews>
527 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 529 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
528 <constraints> 530 <constraints>
529 <constraint firstItem="9w1-87-U1W" firstAttribute="leading" secondItem="aKu-bd-xMP" secondAttribute="leading" id="BLm-dD-oN3"/> 531 <constraint firstItem="9w1-87-U1W" firstAttribute="leading" secondItem="aKu-bd-xMP" secondAttribute="leading" id="BLm-dD-oN3"/>
530 <constraint firstItem="9w1-87-U1W" firstAttribute="centerY" secondItem="aKu-bd-xMP" secondAttribute="centerY" id="DT9-CK-3ZL"/> 532 <constraint firstItem="9w1-87-U1W" firstAttribute="centerY" secondItem="aKu-bd-xMP" secondAttribute="centerY" id="DT9-CK-3ZL"/>
531 <constraint firstItem="9w1-87-U1W" firstAttribute="top" secondItem="aKu-bd-xMP" secondAttribute="top" id="PZC-BJ-DLV"/> 533 <constraint firstItem="9w1-87-U1W" firstAttribute="top" secondItem="aKu-bd-xMP" secondAttribute="top" id="PZC-BJ-DLV"/>
532 <constraint firstAttribute="trailing" secondItem="9w1-87-U1W" secondAttribute="trailing" id="RDM-mt-Fjr"/> 534 <constraint firstAttribute="trailing" secondItem="9w1-87-U1W" secondAttribute="trailing" id="RDM-mt-Fjr"/>
533 <constraint firstAttribute="bottom" secondItem="9w1-87-U1W" secondAttribute="bottom" constant="50" id="w42-vd-D7e"/> 535 <constraint firstAttribute="bottom" secondItem="9w1-87-U1W" secondAttribute="bottom" constant="50" id="w42-vd-D7e"/>
534 <constraint firstItem="9w1-87-U1W" firstAttribute="centerX" secondItem="aKu-bd-xMP" secondAttribute="centerX" id="wJD-gn-ctq"/> 536 <constraint firstItem="9w1-87-U1W" firstAttribute="centerX" secondItem="aKu-bd-xMP" secondAttribute="centerX" id="wJD-gn-ctq"/>
535 </constraints> 537 </constraints>
536 </scrollView> 538 </scrollView>
537 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QYv-QM-Bkk" userLabel="ViewHeader"> 539 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="QYv-QM-Bkk" userLabel="ViewHeader">
538 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/> 540 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/>
539 <subviews> 541 <subviews>
540 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="コミュニティー グループ作成" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9hM-Gv-AxQ" customClass="AutoTransLabel"> 542 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="コミュニティー グループ作成" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9hM-Gv-AxQ" customClass="AutoTransLabel">
541 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/> 543 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/>
542 <fontDescription key="fontDescription" type="system" pointSize="16"/> 544 <fontDescription key="fontDescription" type="system" pointSize="16"/>
543 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 545 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
544 <nil key="highlightedColor"/> 546 <nil key="highlightedColor"/>
545 <userDefinedRuntimeAttributes> 547 <userDefinedRuntimeAttributes>
546 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.title"/> 548 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.createGr.title"/>
547 </userDefinedRuntimeAttributes> 549 </userDefinedRuntimeAttributes>
548 </label> 550 </label>
549 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O23-Hy-4Ld"> 551 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O23-Hy-4Ld">
550 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 552 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
551 <constraints> 553 <constraints>
552 <constraint firstAttribute="width" constant="70" id="8vZ-Ta-Rzv"/> 554 <constraint firstAttribute="width" constant="70" id="8vZ-Ta-Rzv"/>
553 </constraints> 555 </constraints>
554 <state key="normal" image="today_back_button"/> 556 <state key="normal" image="today_back_button"/>
555 <connections> 557 <connections>
556 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="BO6-jx-vuO"/> 558 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="BO6-jx-vuO"/>
557 </connections> 559 </connections>
558 </button> 560 </button>
559 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fPg-VP-VkU"> 561 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fPg-VP-VkU">
560 <rect key="frame" x="275" y="0.0" width="45" height="46"/> 562 <rect key="frame" x="275" y="0.0" width="45" height="46"/>
561 <constraints> 563 <constraints>
562 <constraint firstAttribute="width" constant="45" id="k1W-Oc-mRq"/> 564 <constraint firstAttribute="width" constant="45" id="k1W-Oc-mRq"/>
563 </constraints> 565 </constraints>
564 <state key="normal" image="icon_menu"/> 566 <state key="normal" image="icon_menu"/>
565 </button> 567 </button>
566 </subviews> 568 </subviews>
567 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 569 <color key="backgroundColor" red="0.0" green="0.0" blue="0.21960784310000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
568 <constraints> 570 <constraints>
569 <constraint firstAttribute="trailing" secondItem="9hM-Gv-AxQ" secondAttribute="trailing" id="5f8-Xt-vKd"/> 571 <constraint firstAttribute="trailing" secondItem="9hM-Gv-AxQ" secondAttribute="trailing" id="5f8-Xt-vKd"/>
570 <constraint firstAttribute="bottom" secondItem="9hM-Gv-AxQ" secondAttribute="bottom" id="Q3z-hF-VbV"/> 572 <constraint firstAttribute="bottom" secondItem="9hM-Gv-AxQ" secondAttribute="bottom" id="Q3z-hF-VbV"/>
571 <constraint firstItem="9hM-Gv-AxQ" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" id="XNi-3d-xFW"/> 573 <constraint firstItem="9hM-Gv-AxQ" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" id="XNi-3d-xFW"/>
572 <constraint firstItem="O23-Hy-4Ld" firstAttribute="leading" secondItem="QYv-QM-Bkk" secondAttribute="leading" id="aMc-uz-vGA"/> 574 <constraint firstItem="O23-Hy-4Ld" firstAttribute="leading" secondItem="QYv-QM-Bkk" secondAttribute="leading" id="aMc-uz-vGA"/>
573 <constraint firstItem="fPg-VP-VkU" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" id="bLC-DU-cJf"/> 575 <constraint firstItem="fPg-VP-VkU" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" id="bLC-DU-cJf"/>
574 <constraint firstItem="9hM-Gv-AxQ" firstAttribute="leading" secondItem="QYv-QM-Bkk" secondAttribute="leading" id="cUY-dT-Rh0"/> 576 <constraint firstItem="9hM-Gv-AxQ" firstAttribute="leading" secondItem="QYv-QM-Bkk" secondAttribute="leading" id="cUY-dT-Rh0"/>
575 <constraint firstAttribute="trailing" secondItem="fPg-VP-VkU" secondAttribute="trailing" id="fn0-SY-e1Z"/> 577 <constraint firstAttribute="trailing" secondItem="fPg-VP-VkU" secondAttribute="trailing" id="fn0-SY-e1Z"/>
576 <constraint firstAttribute="height" constant="46" id="lBP-32-aFw"/> 578 <constraint firstAttribute="height" constant="46" id="lBP-32-aFw"/>
577 <constraint firstItem="O23-Hy-4Ld" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" constant="5" id="ogR-c4-QQ3"/> 579 <constraint firstItem="O23-Hy-4Ld" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="top" constant="5" id="ogR-c4-QQ3"/>
578 <constraint firstAttribute="bottom" secondItem="fPg-VP-VkU" secondAttribute="bottom" id="wdr-SH-Wm2"/> 580 <constraint firstAttribute="bottom" secondItem="fPg-VP-VkU" secondAttribute="bottom" id="wdr-SH-Wm2"/>
579 <constraint firstAttribute="bottom" secondItem="O23-Hy-4Ld" secondAttribute="bottom" constant="5" id="yJ4-81-rJx"/> 581 <constraint firstAttribute="bottom" secondItem="O23-Hy-4Ld" secondAttribute="bottom" constant="5" id="yJ4-81-rJx"/>
580 </constraints> 582 </constraints>
581 </view> 583 </view>
582 </subviews> 584 </subviews>
583 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 585 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
584 <constraints> 586 <constraints>
585 <constraint firstItem="aKu-bd-xMP" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="bottom" id="Q7l-Ra-0wb"/> 587 <constraint firstItem="aKu-bd-xMP" firstAttribute="top" secondItem="QYv-QM-Bkk" secondAttribute="bottom" id="Q7l-Ra-0wb"/>
586 <constraint firstAttribute="trailing" secondItem="aKu-bd-xMP" secondAttribute="trailing" id="WAl-wE-FB4"/> 588 <constraint firstAttribute="trailing" secondItem="aKu-bd-xMP" secondAttribute="trailing" id="WAl-wE-FB4"/>
587 <constraint firstAttribute="trailing" secondItem="QYv-QM-Bkk" secondAttribute="trailing" id="XdX-OA-ALX"/> 589 <constraint firstAttribute="trailing" secondItem="QYv-QM-Bkk" secondAttribute="trailing" id="XdX-OA-ALX"/>
588 <constraint firstItem="aKu-bd-xMP" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="cE7-y5-LL4"/> 590 <constraint firstItem="aKu-bd-xMP" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="cE7-y5-LL4"/>
589 <constraint firstItem="QYv-QM-Bkk" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="dAn-YE-2s3"/> 591 <constraint firstItem="QYv-QM-Bkk" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="dAn-YE-2s3"/>
590 <constraint firstItem="QYv-QM-Bkk" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fFF-bj-0uk"/> 592 <constraint firstItem="QYv-QM-Bkk" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fFF-bj-0uk"/>
591 <constraint firstAttribute="bottom" secondItem="aKu-bd-xMP" secondAttribute="bottom" id="oPE-ST-BIo"/> 593 <constraint firstAttribute="bottom" secondItem="aKu-bd-xMP" secondAttribute="bottom" id="oPE-ST-BIo"/>
592 </constraints> 594 </constraints>
593 <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> 595 <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
594 <point key="canvasLocation" x="26" y="125"/> 596 <point key="canvasLocation" x="26" y="125"/>
595 </view> 597 </view>
596 </objects> 598 </objects>
597 <resources> 599 <resources>
598 <image name="icon_menu" width="30" height="30"/> 600 <image name="icon_menu" width="30" height="30"/>
599 <image name="today_back_button" width="73" height="37"/> 601 <image name="today_back_button" width="73" height="37"/>
600 </resources> 602 </resources>
601 </document> 603 </document>
602 604
LifeLog/LifeLog/GroupDetailViewController.h
1 // 1 //
2 // GroupDetailViewController.h 2 // GroupDetailViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/13/17. 5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h" 10 #import "BaseTableViewController.h"
11 #import "Entities.h" 11 #import "Entities.h"
12 #import "AutoTransButton.h" 12 #import "AutoTransButton.h"
13 13
14 @interface GroupDetailViewController : BaseTableViewController { 14 @interface GroupDetailViewController : BaseTableViewController {
15 GroupObject * _curGroup; 15 GroupObject * _curGroup;
16 BOOL isMemberList; 16 BOOL isMemberList;
17 } 17 }
18 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
18 @property (weak, nonatomic) IBOutlet UIImageView *imgAva; 19 @property (weak, nonatomic) IBOutlet UIImageView *imgAva;
19 20
20 @property (weak, nonatomic) IBOutlet UILabel *lblGrpName; 21 @property (weak, nonatomic) IBOutlet UILabel *lblGrpName;
21 @property (weak, nonatomic) IBOutlet UILabel *lbbGrpActiveMode; 22 @property (weak, nonatomic) IBOutlet UILabel *lbbGrpActiveMode;
22 @property (weak, nonatomic) IBOutlet UILabel *lblGrpGoal; 23 @property (weak, nonatomic) IBOutlet UILabel *lblGrpGoal;
23 @property (weak, nonatomic) IBOutlet AutoTransButton *btJoinGrp; 24 @property (weak, nonatomic) IBOutlet AutoTransButton *btJoinGrp;
24 @property (weak, nonatomic) IBOutlet AutoTransButton *btSwitch; 25 @property (weak, nonatomic) IBOutlet AutoTransButton *btSwitch;
25 26
26 - (void) setGroup : (GroupObject *) object; 27 - (void) setGroup : (GroupObject *) object;
27 - (void) requestGroupDetail; 28 - (void) requestGroupDetail;
28 29
29 - (IBAction)clickBack:(id)sender; 30 - (IBAction)clickBack:(id)sender;
30 - (IBAction)clickSwitch:(AutoTransButton *)sender; 31 - (IBAction)clickSwitch:(AutoTransButton *)sender;
31 - (IBAction)clickJoin:(AutoTransButton *)sender; 32 - (IBAction)clickJoin:(AutoTransButton *)sender;
32 @end 33 @end
33 34
LifeLog/LifeLog/GroupDetailViewController.m
1 // 1 //
2 // GroupDetailViewController.m 2 // GroupDetailViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/13/17. 5 // Created by nvtu on 8/13/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "GroupDetailViewController.h" 9 #import "GroupDetailViewController.h"
10 #import <SDWebImage/UIImageView+WebCache.h> 10 #import <SDWebImage/UIImageView+WebCache.h>
11 11
12 #import "Utilities.h" 12 #import "Utilities.h"
13 #import "ServerAPI.h" 13 #import "ServerAPI.h"
14 #import "SNSRecentTopicTableViewCell.h" 14 #import "SNSRecentTopicTableViewCell.h"
15 15
16 @interface GroupDetailViewController () 16 @interface GroupDetailViewController ()
17 17
18 @end 18 @end
19 19
20 @implementation GroupDetailViewController 20 @implementation GroupDetailViewController
21 21
22 - (void)viewDidLoad { 22 - (void)viewDidLoad {
23 [super viewDidLoad]; 23 [super viewDidLoad];
24 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
24 isMemberList = false; 25 isMemberList = false;
25 //register nib for table view 26 //register nib for table view
26 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 27 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
27 if(_curGroup != nil) { 28 if(_curGroup != nil) {
28 [self requestGroupDetail]; 29 [self requestGroupDetail];
29 } 30 }
30 // Do any additional setup after loading the view from its nib. 31 // Do any additional setup after loading the view from its nib.
31 } 32 }
32 33
33 - (void)didReceiveMemoryWarning { 34 - (void)didReceiveMemoryWarning {
34 [super didReceiveMemoryWarning]; 35 [super didReceiveMemoryWarning];
35 // Dispose of any resources that can be recreated. 36 // Dispose of any resources that can be recreated.
36 } 37 }
37 38
38 - (void) setGroup : (GroupObject *) object { 39 - (void) setGroup : (GroupObject *) object {
39 _curGroup = object; 40 _curGroup = object;
40 } 41 }
41 42
42 - (void)setupView { 43 - (void)setupView {
43 if(_curGroup != nil) { 44 if(_curGroup != nil) {
44 if(self.imgAva != nil && _curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) { 45 if(self.imgAva != nil && _curGroup.avatar && ![_curGroup.avatar isKindOfClass:[NSNull class]]) {
45 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]]; 46 [self.imgAva sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:_curGroup.avatar]]];
46 } 47 }
47 if(self.lblGrpName != nil) { 48 if(self.lblGrpName != nil) {
48 [self.lblGrpName setText:_curGroup.name]; 49 [self.lblGrpName setText:_curGroup.name];
49 } 50 }
50 if(self.btJoinGrp != nil) { 51 if(self.btJoinGrp != nil) {
51 [self.btJoinGrp setHidden:false]; 52 [self.btJoinGrp setHidden:false];
52 } 53 }
53 NSString *mode = @""; 54 NSString *mode = @"";
54 NSString *goalText = [NSString stringWithFormat:@"%@\n", _curGroup.goal]; 55 NSString *goalText = [NSString stringWithFormat:@"%@\n", _curGroup.goal];
55 if(_curGroup.runMode || _curGroup.walkMode || _curGroup.bikeMode) { 56 if(_curGroup.runMode || _curGroup.walkMode || _curGroup.bikeMode) {
56 goalText = [goalText stringByAppendingString:@"1日 目標 "]; 57 goalText = [goalText stringByAppendingString:@"1日 目標 "];
57 } 58 }
58 if(_curGroup.runMode) { 59 if(_curGroup.runMode) {
59 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.running", nil)]; 60 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.running", nil)];
60 mode = [mode stringByAppendingString:@"\n"]; 61 mode = [mode stringByAppendingString:@"\n"];
61 goalText = [goalText stringByAppendingFormat:@"RUN %dm, ", _curGroup.runGoal]; 62 goalText = [goalText stringByAppendingFormat:@"RUN %dm, ", _curGroup.runGoal];
62 } 63 }
63 if(_curGroup.walkMode) { 64 if(_curGroup.walkMode) {
64 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.walking", nil)]; 65 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.walking", nil)];
65 mode = [mode stringByAppendingString:@"\n"]; 66 mode = [mode stringByAppendingString:@"\n"];
66 goalText = [goalText stringByAppendingFormat:@"WALK %dm, ", _curGroup.walkGoal]; 67 goalText = [goalText stringByAppendingFormat:@"WALK %dm, ", _curGroup.walkGoal];
67 } 68 }
68 if(_curGroup.bikeMode) { 69 if(_curGroup.bikeMode) {
69 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.bike", nil)]; 70 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.bike", nil)];
70 mode = [mode stringByAppendingString:@"\n"]; 71 mode = [mode stringByAppendingString:@"\n"];
71 goalText = [goalText stringByAppendingFormat:@"BIKE %dm, ", _curGroup.bikeGoal]; 72 goalText = [goalText stringByAppendingFormat:@"BIKE %dm, ", _curGroup.bikeGoal];
72 } 73 }
73 if(_curGroup.stepMode) { 74 if(_curGroup.stepMode) {
74 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.step", nil)]; 75 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.step", nil)];
75 mode = [mode stringByAppendingString:@"\n"]; 76 mode = [mode stringByAppendingString:@"\n"];
76 } 77 }
77 if(_curGroup.beginMode) { 78 if(_curGroup.beginMode) {
78 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.begin", nil)]; 79 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.begin", nil)];
79 mode = [mode stringByAppendingString:@"\n"]; 80 mode = [mode stringByAppendingString:@"\n"];
80 } 81 }
81 if(_curGroup.gymMode) { 82 if(_curGroup.gymMode) {
82 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.gym", nil)]; 83 mode = [mode stringByAppendingString:NSLocalizedString(@"lifelog.grDetail.mode.gym", nil)];
83 mode = [mode stringByAppendingString:@"\n"]; 84 mode = [mode stringByAppendingString:@"\n"];
84 } 85 }
85 NSRange range = [mode rangeOfString:@"\n" options:NSBackwardsSearch]; 86 NSRange range = [mode rangeOfString:@"\n" options:NSBackwardsSearch];
86 if(range.length > 0) { 87 if(range.length > 0) {
87 mode = [mode stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSBackwardsSearch range:range]; 88 mode = [mode stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:NSBackwardsSearch range:range];
88 } 89 }
89 range = [goalText rangeOfString:@", " options:NSBackwardsSearch]; 90 range = [goalText rangeOfString:@", " options:NSBackwardsSearch];
90 if(range.length > 0) { 91 if(range.length > 0) {
91 goalText = [goalText stringByReplacingOccurrencesOfString:@", " withString:@"" options:NSBackwardsSearch range:range]; 92 goalText = [goalText stringByReplacingOccurrencesOfString:@", " withString:@"" options:NSBackwardsSearch range:range];
92 } 93 }
93 [self.lbbGrpActiveMode setText:mode]; 94 [self.lbbGrpActiveMode setText:mode];
94 [self.lblGrpGoal setText:goalText]; 95 [self.lblGrpGoal setText:goalText];
95 } 96 }
96 } 97 }
97 98
98 - (void) requestGroupDetail { 99 - (void) requestGroupDetail {
99 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 100 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
100 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 101 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
101 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) { 102 [[ServerAPI server] getGroupDetail:token withGroupID:_curGroup.groupID CompletionHandler:^(GroupObject *object, NSError *error) {
102 GroupDetailViewController __weak *weakSelf = self; 103 GroupDetailViewController __weak *weakSelf = self;
103 [_curGroup updateDate:object]; 104 [_curGroup updateDate:object];
104 dispatch_async(dispatch_get_main_queue(), ^{ 105 dispatch_async(dispatch_get_main_queue(), ^{
105 [hudView hideAnimated:true]; 106 [hudView hideAnimated:true];
106 [weakSelf setupView]; 107 [weakSelf setupView];
107 [weakSelf callRequestToUpdateData]; 108 [weakSelf callRequestToUpdateData];
108 }); 109 });
109 }]; 110 }];
110 } 111 }
111 112
112 #pragma mark IBAction 113 #pragma mark IBAction
113 114
114 - (IBAction)clickBack:(id)sender { 115 - (IBAction)clickBack:(id)sender {
115 [self.navigationController popViewControllerAnimated:true]; 116 [self.navigationController popViewControllerAnimated:true];
116 } 117 }
117 118
118 - (IBAction)clickSwitch:(AutoTransButton *)sender { 119 - (IBAction)clickSwitch:(AutoTransButton *)sender {
119 isMemberList = !isMemberList; 120 isMemberList = !isMemberList;
120 if(isMemberList) { 121 if(isMemberList) {
121 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal]; 122 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal];
122 } 123 }
123 else { 124 else {
124 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal]; 125 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal];
125 } 126 }
126 [sender setUserInteractionEnabled:false]; 127 [sender setUserInteractionEnabled:false];
127 [self resetData]; 128 [self resetData];
128 } 129 }
129 130
130 - (IBAction)clickJoin:(AutoTransButton *)sender { 131 - (IBAction)clickJoin:(AutoTransButton *)sender {
131 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 132 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
132 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 133 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
133 [[ServerAPI server] requestJoinGroup:token groupID:_curGroup.groupID CompletionHandler:^(NSError *error){ 134 [[ServerAPI server] requestJoinGroup:token groupID:_curGroup.groupID CompletionHandler:^(NSError *error){
134 GroupDetailViewController __weak *weakSelf = self; 135 GroupDetailViewController __weak *weakSelf = self;
135 dispatch_async(dispatch_get_main_queue(), ^{ 136 dispatch_async(dispatch_get_main_queue(), ^{
136 [hudView hideAnimated:true]; 137 [hudView hideAnimated:true];
137 if(error == nil) { 138 if(error == nil) {
138 _curGroup.isJoin = true; 139 _curGroup.isJoin = true;
139 [weakSelf.btJoinGrp setHidden:_curGroup.isJoin]; 140 [weakSelf.btJoinGrp setHidden:_curGroup.isJoin];
140 [Utilities showMessage:@"Join successfully" withViewController:weakSelf]; 141 [Utilities showMessage:@"Join successfully" withViewController:weakSelf];
141 } 142 }
142 }); 143 });
143 }]; 144 }];
144 145
145 } 146 }
146 147
147 148
148 149
149 #pragma mark UITableView Delegate 150 #pragma mark UITableView Delegate
150 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 151 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
151 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 152 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
152 if(isMemberList) { 153 if(isMemberList) {
153 MemberObject *object = [_curDataList objectAtIndex:indexPath.row]; 154 MemberObject *object = [_curDataList objectAtIndex:indexPath.row];
154 [cell setMemberData:object]; 155 [cell setMemberData:object];
155 } 156 }
156 else { 157 else {
157 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 158 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
158 [cell setTweetsData:object]; 159 [cell setTweetsData:object];
159 } 160 }
160 161
161 return cell; 162 return cell;
162 } 163 }
163 164
164 #pragma mark Private Function 165 #pragma mark Private Function
165 166
166 -(void) callRequestToUpdateData { 167 -(void) callRequestToUpdateData {
167 [super callRequestToUpdateData]; 168 [super callRequestToUpdateData];
168 169
169 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 170 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
170 MBProgressHUD *hudView = nil; 171 MBProgressHUD *hudView = nil;
171 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 172 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
172 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 173 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
173 } 174 }
174 if(isMemberList) { 175 if(isMemberList) {
175 [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 176 [[ServerAPI server] requestMemberList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
176 dispatch_async(dispatch_get_main_queue(), ^{ 177 dispatch_async(dispatch_get_main_queue(), ^{
177 if(hudView != nil) { 178 if(hudView != nil) {
178 [hudView hideAnimated:true]; 179 [hudView hideAnimated:true];
179 } 180 }
180 }); 181 });
181 GroupDetailViewController __weak *weakSelf = self; 182 GroupDetailViewController __weak *weakSelf = self;
182 [weakSelf updateTableData:array error:error]; 183 [weakSelf updateTableData:array error:error];
183 [weakSelf.btSwitch setUserInteractionEnabled:true]; 184 [weakSelf.btSwitch setUserInteractionEnabled:true];
184 }]; 185 }];
185 } 186 }
186 else { 187 else {
187 [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 188 [[ServerAPI server] requestTweetsList:token groupID:_curGroup.groupID withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
188 dispatch_async(dispatch_get_main_queue(), ^{ 189 dispatch_async(dispatch_get_main_queue(), ^{
189 if(hudView != nil) { 190 if(hudView != nil) {
190 [hudView hideAnimated:true]; 191 [hudView hideAnimated:true];
191 } 192 }
192 }); 193 });
193 GroupDetailViewController __weak *weakSelf = self; 194 GroupDetailViewController __weak *weakSelf = self;
194 [weakSelf updateTableData:array error:error]; 195 [weakSelf updateTableData:array error:error];
195 [weakSelf.btSwitch setUserInteractionEnabled:true]; 196 [weakSelf.btSwitch setUserInteractionEnabled:true];
196 }]; 197 }];
197 } 198 }
198 } 199 }
199 200
200 @end 201 @end
201 202
LifeLog/LifeLog/GroupDetailViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <objects> 11 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GroupDetailViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="GroupDetailViewController">
12 <connections> 13 <connections>
13 <outlet property="btJoinGrp" destination="caN-x7-hJz" id="B17-YC-Rmk"/> 14 <outlet property="btJoinGrp" destination="caN-x7-hJz" id="B17-YC-Rmk"/>
14 <outlet property="btSwitch" destination="gBg-k9-tgw" id="3ZZ-Qb-d3a"/> 15 <outlet property="btSwitch" destination="gBg-k9-tgw" id="3ZZ-Qb-d3a"/>
15 <outlet property="imgAva" destination="qYg-Gw-R2b" id="f9w-A2-u4G"/> 16 <outlet property="imgAva" destination="qYg-Gw-R2b" id="f9w-A2-u4G"/>
16 <outlet property="lbbGrpActiveMode" destination="O8z-6V-YFd" id="s8J-3i-pW3"/> 17 <outlet property="lbbGrpActiveMode" destination="O8z-6V-YFd" id="s8J-3i-pW3"/>
17 <outlet property="lblGrpGoal" destination="Bdy-dI-j47" id="AKx-8y-Ifm"/> 18 <outlet property="lblGrpGoal" destination="Bdy-dI-j47" id="AKx-8y-Ifm"/>
18 <outlet property="lblGrpName" destination="YWV-pS-TCo" id="VeU-Ov-uSD"/> 19 <outlet property="lblGrpName" destination="YWV-pS-TCo" id="VeU-Ov-uSD"/>
19 <outlet property="tableBase" destination="4VU-Ye-7Au" id="m1e-cS-Sxf"/> 20 <outlet property="tableBase" destination="4VU-Ye-7Au" id="m1e-cS-Sxf"/>
20 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 21 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
22 <outlet property="viewHeader" destination="25d-3H-0fr" id="yBY-1c-Qeh"/>
21 </connections> 23 </connections>
22 </placeholder> 24 </placeholder>
23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 25 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 26 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
25 <rect key="frame" x="0.0" y="0.0" width="320" height="567"/> 27 <rect key="frame" x="0.0" y="0.0" width="320" height="567"/>
26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 28 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
27 <subviews> 29 <subviews>
28 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25d-3H-0fr" userLabel="ViewHeader"> 30 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="25d-3H-0fr" userLabel="ViewHeader">
29 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/> 31 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/>
30 <subviews> 32 <subviews>
31 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DxD-Cy-0wi" customClass="AutoTransLabel"> 33 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DxD-Cy-0wi" customClass="AutoTransLabel">
32 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/> 34 <rect key="frame" x="0.0" y="0.0" width="320" height="46"/>
33 <fontDescription key="fontDescription" type="system" pointSize="17"/> 35 <fontDescription key="fontDescription" type="system" pointSize="17"/>
34 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 36 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
35 <nil key="highlightedColor"/> 37 <nil key="highlightedColor"/>
36 <userDefinedRuntimeAttributes> 38 <userDefinedRuntimeAttributes>
37 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/> 39 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/>
38 </userDefinedRuntimeAttributes> 40 </userDefinedRuntimeAttributes>
39 </label> 41 </label>
40 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O3M-Ba-zHF"> 42 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="O3M-Ba-zHF">
41 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 43 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
42 <constraints> 44 <constraints>
43 <constraint firstAttribute="width" constant="70" id="2Mk-ly-c0t"/> 45 <constraint firstAttribute="width" constant="70" id="2Mk-ly-c0t"/>
44 </constraints> 46 </constraints>
45 <state key="normal" image="today_back_button"/> 47 <state key="normal" image="today_back_button"/>
46 <connections> 48 <connections>
47 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="gS4-F3-fzi"/> 49 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="gS4-F3-fzi"/>
48 </connections> 50 </connections>
49 </button> 51 </button>
50 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y09-DG-Krp"> 52 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="y09-DG-Krp">
51 <rect key="frame" x="275" y="0.0" width="45" height="46"/> 53 <rect key="frame" x="275" y="0.0" width="45" height="46"/>
52 <constraints> 54 <constraints>
53 <constraint firstAttribute="width" constant="45" id="hHa-aE-1zd"/> 55 <constraint firstAttribute="width" constant="45" id="hHa-aE-1zd"/>
54 </constraints> 56 </constraints>
55 <state key="normal" image="icon_menu"/> 57 <state key="normal" image="icon_menu"/>
56 </button> 58 </button>
57 </subviews> 59 </subviews>
58 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 60 <color key="backgroundColor" red="0.0" green="0.0" blue="0.21960784310000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
59 <constraints> 61 <constraints>
60 <constraint firstItem="y09-DG-Krp" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="65z-ZM-a3D"/> 62 <constraint firstItem="y09-DG-Krp" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="65z-ZM-a3D"/>
61 <constraint firstItem="O3M-Ba-zHF" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="CQk-IB-W9y"/> 63 <constraint firstItem="O3M-Ba-zHF" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="CQk-IB-W9y"/>
62 <constraint firstAttribute="bottom" secondItem="y09-DG-Krp" secondAttribute="bottom" id="IWC-4b-gp6"/> 64 <constraint firstAttribute="bottom" secondItem="y09-DG-Krp" secondAttribute="bottom" id="IWC-4b-gp6"/>
63 <constraint firstItem="O3M-Ba-zHF" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" constant="5" id="JWL-bD-I2Z"/> 65 <constraint firstItem="O3M-Ba-zHF" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" constant="5" id="JWL-bD-I2Z"/>
64 <constraint firstItem="DxD-Cy-0wi" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="WYM-oV-6xn"/> 66 <constraint firstItem="DxD-Cy-0wi" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="top" id="WYM-oV-6xn"/>
65 <constraint firstAttribute="bottom" secondItem="O3M-Ba-zHF" secondAttribute="bottom" constant="5" id="ZA0-Bo-IQF"/> 67 <constraint firstAttribute="bottom" secondItem="O3M-Ba-zHF" secondAttribute="bottom" constant="5" id="ZA0-Bo-IQF"/>
66 <constraint firstItem="DxD-Cy-0wi" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="cbx-fE-OaR"/> 68 <constraint firstItem="DxD-Cy-0wi" firstAttribute="leading" secondItem="25d-3H-0fr" secondAttribute="leading" id="cbx-fE-OaR"/>
67 <constraint firstAttribute="trailing" secondItem="DxD-Cy-0wi" secondAttribute="trailing" id="i0L-w8-Oxm"/> 69 <constraint firstAttribute="trailing" secondItem="DxD-Cy-0wi" secondAttribute="trailing" id="i0L-w8-Oxm"/>
68 <constraint firstAttribute="trailing" secondItem="y09-DG-Krp" secondAttribute="trailing" id="nNZ-jP-k6U"/> 70 <constraint firstAttribute="trailing" secondItem="y09-DG-Krp" secondAttribute="trailing" id="nNZ-jP-k6U"/>
69 <constraint firstAttribute="bottom" secondItem="DxD-Cy-0wi" secondAttribute="bottom" id="oxP-oa-3FJ"/> 71 <constraint firstAttribute="bottom" secondItem="DxD-Cy-0wi" secondAttribute="bottom" id="oxP-oa-3FJ"/>
70 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/> 72 <constraint firstAttribute="height" constant="46" id="u2G-4s-RB5"/>
71 </constraints> 73 </constraints>
72 </view> 74 </view>
73 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo"> 75 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YWV-pS-TCo">
74 <rect key="frame" x="15" y="54" width="290" height="21"/> 76 <rect key="frame" x="15" y="54" width="290" height="21"/>
75 <constraints> 77 <constraints>
76 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/> 78 <constraint firstAttribute="height" constant="21" id="fQO-ja-W9R"/>
77 </constraints> 79 </constraints>
78 <fontDescription key="fontDescription" type="system" pointSize="15"/> 80 <fontDescription key="fontDescription" type="system" pointSize="15"/>
79 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 81 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 <nil key="highlightedColor"/> 82 <nil key="highlightedColor"/>
81 </label> 83 </label>
82 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8z-6V-YFd"> 84 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="O8z-6V-YFd">
83 <rect key="frame" x="15" y="85" width="188" height="60"/> 85 <rect key="frame" x="15" y="85" width="188" height="60"/>
84 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 86 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
85 <constraints> 87 <constraints>
86 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="60" id="Bid-NM-Ree"/> 88 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="60" id="Bid-NM-Ree"/>
87 </constraints> 89 </constraints>
88 <fontDescription key="fontDescription" type="system" pointSize="14"/> 90 <fontDescription key="fontDescription" type="system" pointSize="14"/>
89 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 91 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
90 <nil key="highlightedColor"/> 92 <nil key="highlightedColor"/>
91 </label> 93 </label>
92 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47"> 94 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bdy-dI-j47">
93 <rect key="frame" x="15" y="160" width="290" height="0.0"/> 95 <rect key="frame" x="15" y="160" width="290" height="0.0"/>
94 <constraints> 96 <constraints>
95 <constraint firstAttribute="height" relation="greaterThanOrEqual" id="jgH-57-Bae"/> 97 <constraint firstAttribute="height" relation="greaterThanOrEqual" id="jgH-57-Bae"/>
96 </constraints> 98 </constraints>
97 <fontDescription key="fontDescription" type="system" pointSize="14"/> 99 <fontDescription key="fontDescription" type="system" pointSize="14"/>
98 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 100 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
99 <nil key="highlightedColor"/> 101 <nil key="highlightedColor"/>
100 </label> 102 </label>
101 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qYg-Gw-R2b"> 103 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qYg-Gw-R2b">
102 <rect key="frame" x="225" y="85" width="80" height="60"/> 104 <rect key="frame" x="225" y="85" width="80" height="60"/>
103 <constraints> 105 <constraints>
104 <constraint firstAttribute="width" constant="80" id="NEk-vg-zus"/> 106 <constraint firstAttribute="width" constant="80" id="NEk-vg-zus"/>
105 <constraint firstAttribute="height" constant="60" id="qlv-ht-SUw"/> 107 <constraint firstAttribute="height" constant="60" id="qlv-ht-SUw"/>
106 </constraints> 108 </constraints>
107 </imageView> 109 </imageView>
108 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gBg-k9-tgw" customClass="AutoTransButton"> 110 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gBg-k9-tgw" customClass="AutoTransButton">
109 <rect key="frame" x="15" y="190" width="134.5" height="30"/> 111 <rect key="frame" x="15" y="190" width="134.5" height="30"/>
110 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 112 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
111 <constraints> 113 <constraints>
112 <constraint firstAttribute="height" constant="30" id="6Ir-ZZ-NOb"/> 114 <constraint firstAttribute="height" constant="30" id="6Ir-ZZ-NOb"/>
113 </constraints> 115 </constraints>
114 <fontDescription key="fontDescription" type="system" pointSize="14"/> 116 <fontDescription key="fontDescription" type="system" pointSize="14"/>
115 <state key="normal" title="メンバーを見る"> 117 <state key="normal" title="メンバーを見る">
116 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 118 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
117 </state> 119 </state>
118 <userDefinedRuntimeAttributes> 120 <userDefinedRuntimeAttributes>
119 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 121 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
120 <integer key="value" value="5"/> 122 <integer key="value" value="5"/>
121 </userDefinedRuntimeAttribute> 123 </userDefinedRuntimeAttribute>
122 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/> 124 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.viewMem"/>
123 </userDefinedRuntimeAttributes> 125 </userDefinedRuntimeAttributes>
124 <connections> 126 <connections>
125 <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="z4V-ym-fqS"/> 127 <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="z4V-ym-fqS"/>
126 </connections> 128 </connections>
127 </button> 129 </button>
128 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton"> 130 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="caN-x7-hJz" customClass="AutoTransButton">
129 <rect key="frame" x="169.5" y="190" width="134.5" height="30"/> 131 <rect key="frame" x="169.5" y="190" width="134.5" height="30"/>
130 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 132 <color key="backgroundColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
131 <constraints> 133 <constraints>
132 <constraint firstAttribute="height" constant="30" id="gIs-Km-dbx"/> 134 <constraint firstAttribute="height" constant="30" id="gIs-Km-dbx"/>
133 </constraints> 135 </constraints>
134 <fontDescription key="fontDescription" type="system" pointSize="14"/> 136 <fontDescription key="fontDescription" type="system" pointSize="14"/>
135 <state key="normal" title="グループに参加する"> 137 <state key="normal" title="グループに参加する">
136 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 138 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
137 </state> 139 </state>
138 <userDefinedRuntimeAttributes> 140 <userDefinedRuntimeAttributes>
139 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 141 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
140 <integer key="value" value="5"/> 142 <integer key="value" value="5"/>
141 </userDefinedRuntimeAttribute> 143 </userDefinedRuntimeAttribute>
142 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/> 144 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.bt.joinGr"/>
143 </userDefinedRuntimeAttributes> 145 </userDefinedRuntimeAttributes>
144 <connections> 146 <connections>
145 <action selector="clickJoin:" destination="-1" eventType="touchUpInside" id="Ukt-bi-Sw2"/> 147 <action selector="clickJoin:" destination="-1" eventType="touchUpInside" id="Ukt-bi-Sw2"/>
146 </connections> 148 </connections>
147 </button> 149 </button>
148 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au"> 150 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4VU-Ye-7Au">
149 <rect key="frame" x="0.0" y="230" width="320" height="287"/> 151 <rect key="frame" x="0.0" y="230" width="320" height="287"/>
150 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 152 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
151 <connections> 153 <connections>
152 <outlet property="dataSource" destination="-1" id="TLB-6X-bRI"/> 154 <outlet property="dataSource" destination="-1" id="TLB-6X-bRI"/>
153 <outlet property="delegate" destination="-1" id="QcJ-Yh-deE"/> 155 <outlet property="delegate" destination="-1" id="QcJ-Yh-deE"/>
154 </connections> 156 </connections>
155 </tableView> 157 </tableView>
156 </subviews> 158 </subviews>
157 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 159 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
158 <constraints> 160 <constraints>
159 <constraint firstItem="25d-3H-0fr" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5o2-0w-AL5"/> 161 <constraint firstItem="25d-3H-0fr" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="5o2-0w-AL5"/>
160 <constraint firstAttribute="trailing" secondItem="25d-3H-0fr" secondAttribute="trailing" id="7IX-2R-C0n"/> 162 <constraint firstAttribute="trailing" secondItem="25d-3H-0fr" secondAttribute="trailing" id="7IX-2R-C0n"/>
161 <constraint firstItem="O8z-6V-YFd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="81K-BQ-6tU"/> 163 <constraint firstItem="O8z-6V-YFd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="81K-BQ-6tU"/>
162 <constraint firstAttribute="bottom" secondItem="4VU-Ye-7Au" secondAttribute="bottom" constant="50" id="GKY-NB-YYF"/> 164 <constraint firstAttribute="bottom" secondItem="4VU-Ye-7Au" secondAttribute="bottom" constant="50" id="GKY-NB-YYF"/>
163 <constraint firstItem="O8z-6V-YFd" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="HOo-rH-ysj"/> 165 <constraint firstItem="O8z-6V-YFd" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="HOo-rH-ysj"/>
164 <constraint firstItem="Bdy-dI-j47" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="I1a-bY-ME9"/> 166 <constraint firstItem="Bdy-dI-j47" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="I1a-bY-ME9"/>
165 <constraint firstItem="YWV-pS-TCo" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="IS9-SU-75m"/> 167 <constraint firstItem="YWV-pS-TCo" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="IS9-SU-75m"/>
166 <constraint firstAttribute="trailing" secondItem="Bdy-dI-j47" secondAttribute="trailing" constant="15" id="Ka2-Ki-Pu6"/> 168 <constraint firstAttribute="trailing" secondItem="Bdy-dI-j47" secondAttribute="trailing" constant="15" id="Ka2-Ki-Pu6"/>
167 <constraint firstItem="qYg-Gw-R2b" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="One-fp-LTK"/> 169 <constraint firstItem="qYg-Gw-R2b" firstAttribute="top" secondItem="YWV-pS-TCo" secondAttribute="bottom" constant="10" id="One-fp-LTK"/>
168 <constraint firstAttribute="trailing" secondItem="qYg-Gw-R2b" secondAttribute="trailing" constant="15" id="PMd-CT-MVj"/> 170 <constraint firstAttribute="trailing" secondItem="qYg-Gw-R2b" secondAttribute="trailing" constant="15" id="PMd-CT-MVj"/>
169 <constraint firstItem="gBg-k9-tgw" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bTf-qW-d1y"/> 171 <constraint firstItem="gBg-k9-tgw" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bTf-qW-d1y"/>
170 <constraint firstItem="YWV-pS-TCo" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="bottom" constant="8" id="cKj-l3-dgv"/> 172 <constraint firstItem="YWV-pS-TCo" firstAttribute="top" secondItem="25d-3H-0fr" secondAttribute="bottom" constant="8" id="cKj-l3-dgv"/>
171 <constraint firstItem="4VU-Ye-7Au" firstAttribute="top" secondItem="caN-x7-hJz" secondAttribute="bottom" constant="10" id="eQe-Kl-cMp"/> 173 <constraint firstItem="4VU-Ye-7Au" firstAttribute="top" secondItem="caN-x7-hJz" secondAttribute="bottom" constant="10" id="eQe-Kl-cMp"/>
172 <constraint firstItem="4VU-Ye-7Au" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fru-BN-M5T"/> 174 <constraint firstItem="4VU-Ye-7Au" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="fru-BN-M5T"/>
173 <constraint firstItem="caN-x7-hJz" firstAttribute="top" secondItem="gBg-k9-tgw" secondAttribute="top" id="gUS-Ty-4Hk"/> 175 <constraint firstItem="caN-x7-hJz" firstAttribute="top" secondItem="gBg-k9-tgw" secondAttribute="top" id="gUS-Ty-4Hk"/>
174 <constraint firstItem="qYg-Gw-R2b" firstAttribute="leading" secondItem="O8z-6V-YFd" secondAttribute="trailing" constant="22" id="gzU-2Q-G96"/> 176 <constraint firstItem="qYg-Gw-R2b" firstAttribute="leading" secondItem="O8z-6V-YFd" secondAttribute="trailing" constant="22" id="gzU-2Q-G96"/>
175 <constraint firstItem="caN-x7-hJz" firstAttribute="leading" secondItem="gBg-k9-tgw" secondAttribute="trailing" constant="20" id="hWK-jf-zee"/> 177 <constraint firstItem="caN-x7-hJz" firstAttribute="leading" secondItem="gBg-k9-tgw" secondAttribute="trailing" constant="20" id="hWK-jf-zee"/>
176 <constraint firstItem="25d-3H-0fr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="jhT-CE-fr7"/> 178 <constraint firstItem="25d-3H-0fr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="jhT-CE-fr7"/>
177 <constraint firstItem="caN-x7-hJz" firstAttribute="width" secondItem="gBg-k9-tgw" secondAttribute="width" id="mD6-eL-KB7"/> 179 <constraint firstItem="caN-x7-hJz" firstAttribute="width" secondItem="gBg-k9-tgw" secondAttribute="width" id="mD6-eL-KB7"/>
178 <constraint firstItem="gBg-k9-tgw" firstAttribute="top" secondItem="Bdy-dI-j47" secondAttribute="bottom" constant="30" id="mgw-uX-VOK"/> 180 <constraint firstItem="gBg-k9-tgw" firstAttribute="top" secondItem="Bdy-dI-j47" secondAttribute="bottom" constant="30" id="mgw-uX-VOK"/>
179 <constraint firstAttribute="trailing" secondItem="YWV-pS-TCo" secondAttribute="trailing" constant="15" id="rEO-bb-Pqr"/> 181 <constraint firstAttribute="trailing" secondItem="YWV-pS-TCo" secondAttribute="trailing" constant="15" id="rEO-bb-Pqr"/>
180 <constraint firstAttribute="trailing" secondItem="caN-x7-hJz" secondAttribute="trailing" constant="16" id="rRn-Vw-t5g"/> 182 <constraint firstAttribute="trailing" secondItem="caN-x7-hJz" secondAttribute="trailing" constant="16" id="rRn-Vw-t5g"/>
181 <constraint firstItem="Bdy-dI-j47" firstAttribute="top" secondItem="O8z-6V-YFd" secondAttribute="bottom" constant="15" id="xEO-fP-Riz"/> 183 <constraint firstItem="Bdy-dI-j47" firstAttribute="top" secondItem="O8z-6V-YFd" secondAttribute="bottom" constant="15" id="xEO-fP-Riz"/>
182 <constraint firstAttribute="trailing" secondItem="4VU-Ye-7Au" secondAttribute="trailing" id="ylN-vm-QF2"/> 184 <constraint firstAttribute="trailing" secondItem="4VU-Ye-7Au" secondAttribute="trailing" id="ylN-vm-QF2"/>
183 </constraints> 185 </constraints>
184 <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> 186 <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
185 <point key="canvasLocation" x="24.5" y="52.5"/> 187 <point key="canvasLocation" x="24.5" y="52.5"/>
186 </view> 188 </view>
187 </objects> 189 </objects>
188 <resources> 190 <resources>
189 <image name="icon_menu" width="30" height="30"/> 191 <image name="icon_menu" width="30" height="30"/>
190 <image name="today_back_button" width="73" height="37"/> 192 <image name="today_back_button" width="73" height="37"/>
191 </resources> 193 </resources>
192 </document> 194 </document>
193 195
LifeLog/LifeLog/HistoryViewController.h
1 // 1 //
2 // HistoryViewController.h 2 // HistoryViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import <Charts/Charts-Swift.h> 10 #import <Charts/Charts-Swift.h>
11 11
12 #import "BaseTableViewController.h" 12 #import "BaseTableViewController.h"
13 #import "CollectionView.h" 13 #import "CollectionView.h"
14 14
15 #import "Entities.h" 15 #import "Entities.h"
16 16
17 @interface HistoryViewController : BaseTableViewController <UIScrollViewDelegate> { 17 @interface HistoryViewController : BaseTableViewController <UIScrollViewDelegate> {
18 NSDate * _startDate; 18 NSDate * _startDate;
19 NSDate * _endDate; 19 NSDate * _endDate;
20 NSArray * _curHisArray; 20 NSArray * _curHisArray;
21 NSArray * _curListArray; 21 NSArray * _curListArray;
22 } 22 }
23 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
23 @property (weak, nonatomic) IBOutlet UILabel *lblDatetime; 24 @property (weak, nonatomic) IBOutlet UILabel *lblDatetime;
24 25
25 @property (weak, nonatomic) IBOutlet UILabel *lblCircleStep; 26 @property (weak, nonatomic) IBOutlet UILabel *lblCircleStep;
26 @property (weak, nonatomic) IBOutlet UILabel *lblCircleRemain; 27 @property (weak, nonatomic) IBOutlet UILabel *lblCircleRemain;
27 28
28 @property (weak, nonatomic) IBOutlet UILabel *lblStep; 29 @property (weak, nonatomic) IBOutlet UILabel *lblStep;
29 @property (weak, nonatomic) IBOutlet UILabel *lblRemaining; 30 @property (weak, nonatomic) IBOutlet UILabel *lblRemaining;
30 @property (weak, nonatomic) IBOutlet UILabel *lblPercent; 31 @property (weak, nonatomic) IBOutlet UILabel *lblPercent;
31 @property (weak, nonatomic) IBOutlet UILabel *lblCalories; 32 @property (weak, nonatomic) IBOutlet UILabel *lblCalories;
32 @property (weak, nonatomic) IBOutlet UILabel *lblDistance; 33 @property (weak, nonatomic) IBOutlet UILabel *lblDistance;
33 @property (weak, nonatomic) IBOutlet UILabel *lblTime; 34 @property (weak, nonatomic) IBOutlet UILabel *lblTime;
34 35
35 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType; 36 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType;
36 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode; 37 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode;
37 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionShare; 38 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionShare;
38 39
39 @property (weak, nonatomic) IBOutlet BarChartView *viewBarChart; 40 @property (weak, nonatomic) IBOutlet BarChartView *viewBarChart;
40 41
41 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView; 42 @property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
42 43
43 - (IBAction)swipeAction:(UISwipeGestureRecognizer *)sender; 44 - (IBAction)swipeAction:(UISwipeGestureRecognizer *)sender;
44 - (IBAction)clickBackward:(UIButton *)sender; 45 - (IBAction)clickBackward:(UIButton *)sender;
45 - (IBAction)clickForward:(UIButton *)sender; 46 - (IBAction)clickForward:(UIButton *)sender;
46 47
47 @end 48 @end
48 49
LifeLog/LifeLog/HistoryViewController.m
1 // 1 //
2 // HistoryViewController.m 2 // HistoryViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "HistoryViewController.h" 9 #import "HistoryViewController.h"
10 #import "Utilities.h" 10 #import "Utilities.h"
11 #import "ServerAPI.h" 11 #import "ServerAPI.h"
12 12
13 #import "HistoryListTableViewCell.h" 13 #import "HistoryListTableViewCell.h"
14 14
15 @interface HistoryViewController () 15 @interface HistoryViewController ()
16 16
17 @end 17 @end
18 18
19 @implementation HistoryViewController 19 @implementation HistoryViewController
20 20
21 - (void)viewDidLoad { 21 - (void)viewDidLoad {
22 [super viewDidLoad]; 22 [super viewDidLoad];
23 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.viewCollectionMode attribute:NSLayoutAttributeBottom multiplier:1 constant:0]]; 23 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.viewCollectionMode attribute:NSLayoutAttributeBottom multiplier:1 constant:0]];
24 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
24 // Do any additional setup after loading the view from its nib. 25 // Do any additional setup after loading the view from its nib.
25 self.title = NSLocalizedString(@"lifelog.history.title", nil); 26 // self.title = NSLocalizedString(@"lifelog.history.title", nil);
26 27
27 _isDisableLoadMore = true; 28 _isDisableLoadMore = true;
28 29
29 [self setupView]; 30 [self setupView];
30 [self setupChartView]; 31 [self setupChartView];
31 32
32 _startDate = [NSDate date]; 33 _startDate = [NSDate date];
33 _endDate = _startDate; 34 _endDate = _startDate;
34 35
35 self.lblDatetime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"]; 36 self.lblDatetime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
36 37
37 //register nib for table view 38 //register nib for table view
38 [self.tableBase registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"]; 39 [self.tableBase registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"];
39 } 40 }
40 41
41 - (void)viewDidAppear:(BOOL) animated 42 - (void)viewDidAppear:(BOOL) animated
42 { 43 {
43 [super viewDidAppear:animated]; 44 [super viewDidAppear:animated];
44 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400); 45 self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400);
45 [self.scrollView setNeedsLayout]; 46 [self.scrollView setNeedsLayout];
46 [self.scrollView setNeedsUpdateConstraints]; 47 [self.scrollView setNeedsUpdateConstraints];
47 [self checkRequestData]; 48 [self checkRequestData];
48 } 49 }
49 50
50 - (void)didReceiveMemoryWarning { 51 - (void)didReceiveMemoryWarning {
51 [super didReceiveMemoryWarning]; 52 [super didReceiveMemoryWarning];
52 // Dispose of any resources that can be recreated. 53 // Dispose of any resources that can be recreated.
53 } 54 }
54 55
55 - (void)setupView { 56 - (void)setupView {
56 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.type.1", nil), NSLocalizedString(@"lifelog.history.type.2", nil), NSLocalizedString(@"lifelog.history.type.3", nil), NSLocalizedString(@"lifelog.history.type.4", nil), NSLocalizedString(@"lifelog.history.type.5", nil), nil]; 57 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.type.1", nil), NSLocalizedString(@"lifelog.history.type.2", nil), NSLocalizedString(@"lifelog.history.type.3", nil), NSLocalizedString(@"lifelog.history.type.4", nil), NSLocalizedString(@"lifelog.history.type.5", nil), nil];
57 [self.viewCollectionType setButtonNumber:typeTitle.count]; 58 [self.viewCollectionType setButtonNumber:typeTitle.count];
58 [self.viewCollectionType setSpacing:2]; 59 [self.viewCollectionType setSpacing:2];
59 [self.viewCollectionType setArrayTitle:typeTitle]; 60 [self.viewCollectionType setArrayTitle:typeTitle];
60 self.viewCollectionType.changeCurrentIndex = ^(int index){ 61 self.viewCollectionType.changeCurrentIndex = ^(int index){
61 [self changeDate]; 62 [self changeDate];
62 }; 63 };
63 64
64 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.mode.1", nil), NSLocalizedString(@"lifelog.history.mode.2", nil), NSLocalizedString(@"lifelog.history.mode.3", nil), nil]; 65 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.mode.1", nil), NSLocalizedString(@"lifelog.history.mode.2", nil), NSLocalizedString(@"lifelog.history.mode.3", nil), nil];
65 [self.viewCollectionMode setButtonNumber:modeTitle.count]; 66 [self.viewCollectionMode setButtonNumber:modeTitle.count];
66 [self.viewCollectionMode setSpacing:0]; 67 [self.viewCollectionMode setSpacing:0];
67 [self.viewCollectionMode setSelectedIndex:1]; 68 [self.viewCollectionMode setSelectedIndex:1];
68 [self.viewCollectionMode setCornerRadius:0]; 69 [self.viewCollectionMode setCornerRadius:0];
69 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]]; 70 [self.viewCollectionMode setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]];
70 [self.viewCollectionMode setArrayTitle:modeTitle]; 71 [self.viewCollectionMode setArrayTitle:modeTitle];
71 self.viewCollectionMode.changeCurrentIndex = ^(int index){ 72 self.viewCollectionMode.changeCurrentIndex = ^(int index){
72 if(self.tableBase.alpha == 0.0) { 73 if(self.tableBase.alpha == 0.0) {
73 [self updateView]; 74 [self updateView];
74 } 75 }
75 else { 76 else {
76 NSArray * list = [_curListArray objectAtIndex:index]; 77 NSArray * list = [_curListArray objectAtIndex:index];
77 [self updateTableData:list error:nil]; 78 [self updateTableData:list error:nil];
78 } 79 }
79 }; 80 };
80 81
81 NSArray *shareTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.history.share.1", nil), NSLocalizedString(@"lifelog.history.share.2", nil), NSLocalizedString(@"lifelog.history.share.3", nil), NSLocalizedString(@"lifelog.history.share.4", nil), NSLocalizedString(@"lifelog.history.share.5", nil), nil]; 82 NSArray *shareTitle = [NSArray arrayWithObjects:@"icon_facebook", @"icon_twitter", @"icon_line", @"icon_mail", @"icon_other_send", nil];
82 [self.viewCollectionShare setButtonNumber:typeTitle.count]; 83 [self.viewCollectionShare setButtonNumber:typeTitle.count];
83 [self.viewCollectionShare setSpacing:3]; 84 [self.viewCollectionShare setSpacing:3];
84 [self.viewCollectionShare setArrayTitle:shareTitle]; 85 [self.viewCollectionShare setArrayTitle:shareTitle];
85 [self.viewCollectionShare disableSelection]; 86 [self.viewCollectionShare disableSelection];
86 87 [self.viewCollectionShare enableImageIcon];
87 //add tap gesture for enable tap on gesture on CollectionView in ScrollView 88 //add tap gesture for enable tap on gesture on CollectionView in ScrollView
88 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)]; 89 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)];
89 [recognizer setNumberOfTapsRequired:1]; 90 [recognizer setNumberOfTapsRequired:1];
90 self.scrollView.userInteractionEnabled = YES; 91 self.scrollView.userInteractionEnabled = YES;
91 [self.scrollView addGestureRecognizer:recognizer]; 92 [self.scrollView addGestureRecognizer:recognizer];
92 } 93 }
93 94
94 - (void)setupChartView { 95 - (void)setupChartView {
95 self.viewBarChart.chartDescription.enabled = NO; 96 self.viewBarChart.chartDescription.enabled = NO;
96 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO; 97 self.viewBarChart.leftAxis.drawGridLinesEnabled = NO;
97 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO; 98 self.viewBarChart.rightAxis.drawGridLinesEnabled = NO;
98 self.viewBarChart.legend.enabled = NO; 99 self.viewBarChart.legend.enabled = NO;
99 100
100 ChartXAxis *xAxis = self.viewBarChart.xAxis; 101 ChartXAxis *xAxis = self.viewBarChart.xAxis;
101 xAxis.labelPosition = XAxisLabelPositionBottom; 102 xAxis.labelPosition = XAxisLabelPositionBottom;
102 xAxis.drawGridLinesEnabled = NO; 103 xAxis.drawGridLinesEnabled = NO;
103 xAxis.drawAxisLineEnabled = NO; 104 xAxis.drawAxisLineEnabled = NO;
104 xAxis.drawLabelsEnabled = YES; 105 xAxis.drawLabelsEnabled = YES;
105 xAxis.labelPosition = XAxisLabelPositionBottom; 106 xAxis.labelPosition = XAxisLabelPositionBottom;
106 xAxis.labelFont = [UIFont systemFontOfSize:10.f]; 107 xAxis.labelFont = [UIFont systemFontOfSize:10.f];
107 xAxis.labelTextColor = [UIColor whiteColor]; 108 xAxis.labelTextColor = [UIColor whiteColor];
108 xAxis.granularity = 1.0; // only intervals of 1 day 109 xAxis.granularity = 1.0; // only intervals of 1 day
109 xAxis.labelCount = 8; 110 xAxis.labelCount = 8;
110 111
111 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO; 112 self.viewBarChart.leftAxis.drawAxisLineEnabled = NO;
112 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO; 113 self.viewBarChart.rightAxis.drawAxisLineEnabled = NO;
113 } 114 }
114 115
115 -(void) updateView { 116 -(void) updateView {
116 HistoryObject * obj = [_curHisArray objectAtIndex:self.viewCollectionMode.getCurrentIndex]; 117 HistoryObject * obj = [_curHisArray objectAtIndex:self.viewCollectionMode.getCurrentIndex];
117 self.lblStep.text = [NSString stringWithFormat:@"%d step", obj.target]; 118 self.lblStep.text = [NSString stringWithFormat:@"%d step", obj.target];
118 self.lblCircleStep.text = [NSString stringWithFormat:@"%d step", obj.step]; 119 self.lblCircleStep.text = [NSString stringWithFormat:@"%d step", obj.step];
119 self.lblRemaining.text = [NSString stringWithFormat:@"%d step", obj.missing]; 120 self.lblRemaining.text = [NSString stringWithFormat:@"%d step", obj.missing];
120 self.lblCircleRemain.text = [NSString stringWithFormat:@"目標まであと\n%d stepです", obj.missing]; 121 self.lblCircleRemain.text = [NSString stringWithFormat:@"目標まであと\n%d stepです", obj.missing];
121 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f%%", obj.percent]; 122 self.lblPercent.text = [NSString stringWithFormat:@"%0.2f%%", obj.percent];
122 self.lblCalories.text = [NSString stringWithFormat:@"%0.2f kcal", obj.calories]; 123 self.lblCalories.text = [NSString stringWithFormat:@"%0.2f kcal", obj.calories];
123 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f KM", obj.distance]; 124 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f KM", obj.distance];
124 self.lblTime.text = [Utilities convertSecondToShortTime:obj.time]; 125 self.lblTime.text = [Utilities convertSecondToShortTime:obj.time];
125 [self updateGraphView]; 126 [self updateGraphView];
126 } 127 }
127 128
128 -(void) updateGraphView { 129 -(void) updateGraphView {
129 HistoryObject * obj = [_curHisArray objectAtIndex:self.viewCollectionMode.getCurrentIndex]; 130 HistoryObject * obj = [_curHisArray objectAtIndex:self.viewCollectionMode.getCurrentIndex];
130 131
131 NSMutableArray *yVals = [[NSMutableArray alloc] init]; 132 NSMutableArray *yVals = [[NSMutableArray alloc] init];
132 for (int i = 0; i < obj.dataGraph.count; i++) 133 for (int i = 0; i < obj.dataGraph.count; i++)
133 { 134 {
134 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:[[obj.dataGraph objectAtIndex:i] doubleValue]]]; 135 [yVals addObject:[[BarChartDataEntry alloc] initWithX:i y:[[obj.dataGraph objectAtIndex:i] doubleValue]]];
135 } 136 }
136 137
137 BarChartDataSet *set1 = nil; 138 BarChartDataSet *set1 = nil;
138 if (self.viewBarChart.data.dataSetCount > 0) 139 if (self.viewBarChart.data.dataSetCount > 0)
139 { 140 {
140 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0]; 141 set1 = (BarChartDataSet *)self.viewBarChart.data.dataSets[0];
141 set1.values = yVals; 142 set1.values = yVals;
142 143
143 NSMutableArray *color = [[NSMutableArray alloc] init]; 144 NSMutableArray *color = [[NSMutableArray alloc] init];
144 for(int i = 0; i < yVals.count; i++) { 145 for(int i = 0; i < yVals.count; i++) {
145 BarChartDataEntry *en = yVals[i]; 146 BarChartDataEntry *en = yVals[i];
146 if(obj.step != 0) { 147 if(obj.step != 0) {
147 double percent = en.y / obj.step * 100; 148 double percent = en.y / obj.step * 100;
148 if(percent > 80) { 149 if(percent > 80) {
149 [color addObject:[UIColor redColor]]; 150 [color addObject:[UIColor redColor]];
150 } 151 }
151 else if(percent > 60) { 152 else if(percent > 60) {
152 [color addObject:[UIColor yellowColor]]; 153 [color addObject:[UIColor yellowColor]];
153 } 154 }
154 else { 155 else {
155 [color addObject:[UIColor whiteColor]]; 156 [color addObject:[UIColor whiteColor]];
156 } 157 }
157 } 158 }
158 else { 159 else {
159 [color addObject:[UIColor whiteColor]]; 160 [color addObject:[UIColor whiteColor]];
160 } 161 }
161 } 162 }
162 [set1 setColors:color]; 163 [set1 setColors:color];
163 164
164 [self.viewBarChart.data notifyDataChanged]; 165 [self.viewBarChart.data notifyDataChanged];
165 [self.viewBarChart notifyDataSetChanged]; 166 [self.viewBarChart notifyDataSetChanged];
166 } 167 }
167 else 168 else
168 { 169 {
169 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""]; 170 set1 = [[BarChartDataSet alloc] initWithValues:yVals label:@""];
170 171
171 NSMutableArray *color = [[NSMutableArray alloc] init]; 172 NSMutableArray *color = [[NSMutableArray alloc] init];
172 for(int i = 0; i < yVals.count; i++) { 173 for(int i = 0; i < yVals.count; i++) {
173 BarChartDataEntry *en = yVals[i]; 174 BarChartDataEntry *en = yVals[i];
174 if(obj.step != 0) { 175 if(obj.step != 0) {
175 double percent = en.y / obj.step * 100; 176 double percent = en.y / obj.step * 100;
176 if(percent > 80) { 177 if(percent > 80) {
177 [color addObject:[UIColor redColor]]; 178 [color addObject:[UIColor redColor]];
178 } 179 }
179 else if(percent > 60) { 180 else if(percent > 60) {
180 [color addObject:[UIColor yellowColor]]; 181 [color addObject:[UIColor yellowColor]];
181 } 182 }
182 else { 183 else {
183 [color addObject:[UIColor whiteColor]]; 184 [color addObject:[UIColor whiteColor]];
184 } 185 }
185 } 186 }
186 else { 187 else {
187 [color addObject:[UIColor whiteColor]]; 188 [color addObject:[UIColor whiteColor]];
188 } 189 }
189 } 190 }
190 [set1 setColors:color]; 191 [set1 setColors:color];
191 NSMutableArray *dataSets = [[NSMutableArray alloc] init]; 192 NSMutableArray *dataSets = [[NSMutableArray alloc] init];
192 [dataSets addObject:set1]; 193 [dataSets addObject:set1];
193 194
194 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets]; 195 BarChartData *data = [[BarChartData alloc] initWithDataSets:dataSets];
195 data.barWidth = 0.5f; 196 data.barWidth = 0.5f;
196 197
197 self.viewBarChart.data = data; 198 self.viewBarChart.data = data;
198 } 199 }
199 } 200 }
200 201
201 -(void) checkRequestData { 202 -(void) checkRequestData {
202 if(self.tableBase.alpha == 0.0) { 203 if(self.tableBase.alpha == 0.0) {
203 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 204 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
204 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 205 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
205 [[ServerAPI server] requestHistory:token startDate:_startDate endDate:_endDate CompletionHandler:^(NSArray *array, NSError *error) { 206 [[ServerAPI server] requestHistory:token startDate:_startDate endDate:_endDate CompletionHandler:^(NSArray *array, NSError *error) {
206 HistoryViewController __weak *weakSelf = self; 207 HistoryViewController __weak *weakSelf = self;
207 dispatch_async(dispatch_get_main_queue(), ^{ 208 dispatch_async(dispatch_get_main_queue(), ^{
208 if(hudView != nil) { 209 if(hudView != nil) {
209 [hudView hideAnimated:true]; 210 [hudView hideAnimated:true];
210 } 211 }
211 }); 212 });
212 if(error == nil) { 213 if(error == nil) {
213 _curHisArray = array; 214 _curHisArray = array;
214 dispatch_async(dispatch_get_main_queue(), ^{ 215 dispatch_async(dispatch_get_main_queue(), ^{
215 [weakSelf updateView]; 216 [weakSelf updateView];
216 }); 217 });
217 } 218 }
218 else { 219 else {
219 dispatch_async(dispatch_get_main_queue(), ^{ 220 dispatch_async(dispatch_get_main_queue(), ^{
220 NSString *message = [error.userInfo objectForKey:@"message"]; 221 NSString *message = [error.userInfo objectForKey:@"message"];
221 [Utilities showErrorMessage:message withViewController:weakSelf]; 222 [Utilities showErrorMessage:message withViewController:weakSelf];
222 }); 223 });
223 } 224 }
224 }]; 225 }];
225 } 226 }
226 else { 227 else {
227 [self resetData]; 228 [self resetData];
228 } 229 }
229 } 230 }
230 231
231 -(void) callRequestToUpdateData { 232 -(void) callRequestToUpdateData {
232 [super callRequestToUpdateData]; 233 [super callRequestToUpdateData];
233 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 234 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
234 235
235 MBProgressHUD *hudView = nil; 236 MBProgressHUD *hudView = nil;
236 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 237 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
237 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 238 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
238 } 239 }
239 [[ServerAPI server] requestHistoryList:token startDate:_startDate endDate:_endDate CompletionHandler:^(NSArray *array, NSError *error) { 240 [[ServerAPI server] requestHistoryList:token startDate:_startDate endDate:_endDate CompletionHandler:^(NSArray *array, NSError *error) {
240 dispatch_async(dispatch_get_main_queue(), ^{ 241 dispatch_async(dispatch_get_main_queue(), ^{
241 if(hudView != nil) { 242 if(hudView != nil) {
242 [hudView hideAnimated:true]; 243 [hudView hideAnimated:true];
243 } 244 }
244 }); 245 });
245 HistoryViewController __weak *weakSelf = self; 246 HistoryViewController __weak *weakSelf = self;
246 if(error == nil) { 247 if(error == nil) {
247 _curListArray = array; 248 _curListArray = array;
248 NSArray * list = [array objectAtIndex:weakSelf.viewCollectionMode.getCurrentIndex]; 249 NSArray * list = [array objectAtIndex:weakSelf.viewCollectionMode.getCurrentIndex];
249 [weakSelf updateTableData:list error:error]; 250 [weakSelf updateTableData:list error:error];
250 } 251 }
251 else { 252 else {
252 [weakSelf updateTableData:array error:error]; 253 [weakSelf updateTableData:array error:error];
253 } 254 }
254 }]; 255 }];
255 } 256 }
256 257
257 - (void) changeDate { 258 - (void) changeDate {
258 switch (self.viewCollectionType.getCurrentIndex) { 259 switch (self.viewCollectionType.getCurrentIndex) {
259 case 1: 260 case 1:
260 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 7]; 261 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 7];
261 break; 262 break;
262 case 2: 263 case 2:
263 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30]; 264 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30];
264 break; 265 break;
265 case 3: 266 case 3:
266 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30 * 3]; 267 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30 * 3];
267 break; 268 break;
268 case 4: 269 case 4:
269 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30 * 6]; 270 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30 * 6];
270 break; 271 break;
271 default: 272 default:
272 _startDate = _endDate; 273 _startDate = _endDate;
273 break; 274 break;
274 } 275 }
275 if(_startDate == _endDate) { 276 if(_startDate == _endDate) {
276 self.lblDatetime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"]; 277 self.lblDatetime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
277 } 278 }
278 else { 279 else {
279 NSString * startDateString = [Utilities stringFromDate:_startDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"]; 280 NSString * startDateString = [Utilities stringFromDate:_startDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
280 NSString * endDateString = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"]; 281 NSString * endDateString = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
281 self.lblDatetime.text = [NSString stringWithFormat:@"%@-%@", startDateString, endDateString]; 282 self.lblDatetime.text = [NSString stringWithFormat:@"%@-%@", startDateString, endDateString];
282 } 283 }
283 [self checkRequestData]; 284 [self checkRequestData];
284 } 285 }
285 286
286 #pragma mark IBAction 287 #pragma mark IBAction
287 -(void) swipeAction:(UISwipeGestureRecognizer *)sender { 288 -(void) swipeAction:(UISwipeGestureRecognizer *)sender {
288 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0; 289 bool alphaValue = self.scrollView.alpha == 1.0 ? 1.0 : 0.0;
289 [UIView animateWithDuration:0.5 animations:^{ 290 [UIView animateWithDuration:0.5 animations:^{
290 self.tableBase.alpha = alphaValue; 291 self.tableBase.alpha = alphaValue;
291 self.scrollView.alpha = 1.0 - alphaValue; 292 self.scrollView.alpha = 1.0 - alphaValue;
292 } completion:^(BOOL completed) { 293 } completion:^(BOOL completed) {
293 [self checkRequestData]; 294 [self checkRequestData];
294 }]; 295 }];
295 } 296 }
296 297
297 - (IBAction)clickBackward:(UIButton *)sender { 298 - (IBAction)clickBackward:(UIButton *)sender {
298 _endDate = [_endDate dateByAddingTimeInterval:-86400]; 299 _endDate = [_endDate dateByAddingTimeInterval:-86400];
299 [self changeDate]; 300 [self changeDate];
300 } 301 }
301 302
302 - (IBAction)clickForward:(UIButton *)sender { 303 - (IBAction)clickForward:(UIButton *)sender {
303 _endDate = [_endDate dateByAddingTimeInterval:86400]; 304 _endDate = [_endDate dateByAddingTimeInterval:86400];
304 [self changeDate]; 305 [self changeDate];
305 } 306 }
306 307
307 -(void)gestureAction:(UITapGestureRecognizer *) sender 308 -(void)gestureAction:(UITapGestureRecognizer *) sender
308 { 309 {
309 CGPoint touchLocation = [sender locationOfTouch:0 inView:self.viewCollectionShare]; 310 CGPoint touchLocation = [sender locationOfTouch:0 inView:self.viewCollectionShare];
310 NSIndexPath *indexPath = [self.viewCollectionShare.collectionView indexPathForItemAtPoint:touchLocation]; 311 NSIndexPath *indexPath = [self.viewCollectionShare.collectionView indexPathForItemAtPoint:touchLocation];
311 NSString * content = @"Finish 500 steps"; 312 NSString * content = @"Finish 500 steps";
312 HistoryViewController __weak *weakSelf = self; 313 HistoryViewController __weak *weakSelf = self;
313 if(indexPath != NULL) { 314 if(indexPath != NULL) {
314 switch (indexPath.row) { 315 switch (indexPath.row) {
315 case 0: //share facebook 316 case 0: //share facebook
316 [Utilities shareFacebook:content withViewController:weakSelf]; 317 [Utilities shareFacebook:content withViewController:weakSelf];
317 break; 318 break;
318 case 1: //share twitter 319 case 1: //share twitter
319 [Utilities shareTwitter:content withViewController:weakSelf]; 320 [Utilities shareTwitter:content withViewController:weakSelf];
320 break; 321 break;
321 case 2 : //share line 322 case 2 : //share line
322 [Utilities shareLine:content withViewController:weakSelf]; 323 [Utilities shareLine:content withViewController:weakSelf];
323 break; 324 break;
324 case 3: // share email 325 case 3: // share email
325 [Utilities shareEmail:content withViewController:weakSelf]; 326 [Utilities shareEmail:content withViewController:weakSelf];
326 break; 327 break;
327 default: //share other 328 default: //share other
328 [Utilities shareOther:content withViewController:weakSelf]; 329 [Utilities shareOther:content withViewController:weakSelf];
329 break; 330 break;
330 } 331 }
331 } 332 }
332 } 333 }
333 334
334 #pragma mark UITableView Delegate 335 #pragma mark UITableView Delegate
335 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 336 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
336 HistoryListTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryListCell"]; 337 HistoryListTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryListCell"];
337 HistoryObject * obj = [_curDataList objectAtIndex:indexPath.row]; 338 HistoryObject * obj = [_curDataList objectAtIndex:indexPath.row];
338 cell.lblTitle.text = [Utilities stringFromDate:obj.date withFormat:@"dd日 (EEEE)" locale:@"ja_JP"]; 339 cell.lblTitle.text = [Utilities stringFromDate:obj.date withFormat:@"dd日 (EEEE)" locale:@"ja_JP"];
339 cell.lblStep.text = [NSString stringWithFormat:@"%d", obj.step]; 340 cell.lblStep.text = [NSString stringWithFormat:@"%d", obj.step];
340 cell.lblDiff.text = [NSString stringWithFormat:@"%d", obj.step_diff]; 341 cell.lblDiff.text = [NSString stringWithFormat:@"%d", obj.step_diff];
341 cell.imgArrow.image = (obj.step_diff > 0) ? [UIImage imageNamed:@"arrow_incre"] : [UIImage imageNamed:@"arrow_decre"]; 342 cell.imgArrow.image = (obj.step_diff > 0) ? [UIImage imageNamed:@"arrow_incre"] : [UIImage imageNamed:@"arrow_decre"];
342 cell.lblPower.text = [NSString stringWithFormat:@"%0.2f", obj.calories]; 343 cell.lblPower.text = [NSString stringWithFormat:@"%0.2f", obj.calories];
343 cell.lblDistance.text = [NSString stringWithFormat:@"%0.1f", obj.distance]; 344 cell.lblDistance.text = [NSString stringWithFormat:@"%0.1f", obj.distance];
344 cell.lblDuration.text = [Utilities convertSecondToShortTime:obj.time]; 345 cell.lblDuration.text = [Utilities convertSecondToShortTime:obj.time];
345 return cell; 346 return cell;
346 } 347 }
347 348
348 @end 349 @end
349 350
LifeLog/LifeLog/HistoryViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <deployment identifier="iOS"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/> 8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11 </dependencies> 11 </dependencies>
12 <objects> 12 <objects>
13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController"> 13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController">
14 <connections> 14 <connections>
15 <outlet property="lblCalories" destination="dAE-C8-QLr" id="WaS-S3-Qxh"/> 15 <outlet property="lblCalories" destination="dAE-C8-QLr" id="WaS-S3-Qxh"/>
16 <outlet property="lblCircleRemain" destination="Kr7-S0-Fpl" id="UQe-Bt-i0X"/> 16 <outlet property="lblCircleRemain" destination="Kr7-S0-Fpl" id="UQe-Bt-i0X"/>
17 <outlet property="lblCircleStep" destination="oWg-A8-aCr" id="Q9g-UY-hyv"/> 17 <outlet property="lblCircleStep" destination="oWg-A8-aCr" id="Q9g-UY-hyv"/>
18 <outlet property="lblDatetime" destination="EM7-vA-s1e" id="0fK-4u-TaK"/> 18 <outlet property="lblDatetime" destination="EM7-vA-s1e" id="0fK-4u-TaK"/>
19 <outlet property="lblDistance" destination="1tR-JC-pyw" id="q4s-Ru-vLO"/> 19 <outlet property="lblDistance" destination="1tR-JC-pyw" id="q4s-Ru-vLO"/>
20 <outlet property="lblPercent" destination="8Ru-Jc-Ouv" id="ZHn-Kt-0Qk"/> 20 <outlet property="lblPercent" destination="8Ru-Jc-Ouv" id="ZHn-Kt-0Qk"/>
21 <outlet property="lblRemaining" destination="1NH-b3-ST8" id="hFc-q9-b0h"/> 21 <outlet property="lblRemaining" destination="1NH-b3-ST8" id="hFc-q9-b0h"/>
22 <outlet property="lblStep" destination="0pf-fX-QXT" id="jK4-9Y-89Q"/> 22 <outlet property="lblStep" destination="0pf-fX-QXT" id="jK4-9Y-89Q"/>
23 <outlet property="lblTime" destination="PfZ-7x-LAR" id="NQv-fs-rl7"/> 23 <outlet property="lblTime" destination="PfZ-7x-LAR" id="NQv-fs-rl7"/>
24 <outlet property="scrollView" destination="rey-N3-l8b" id="s3w-fi-n5l"/> 24 <outlet property="scrollView" destination="rey-N3-l8b" id="s3w-fi-n5l"/>
25 <outlet property="tableBase" destination="FXQ-4O-sRc" id="UHy-Nk-f7u"/> 25 <outlet property="tableBase" destination="FXQ-4O-sRc" id="UHy-Nk-f7u"/>
26 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 26 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
27 <outlet property="viewBarChart" destination="VqD-Y3-cYQ" id="RdJ-G5-pPy"/> 27 <outlet property="viewBarChart" destination="VqD-Y3-cYQ" id="RdJ-G5-pPy"/>
28 <outlet property="viewCollectionMode" destination="BVv-qD-EHM" id="A6n-32-oxg"/> 28 <outlet property="viewCollectionMode" destination="BVv-qD-EHM" id="A6n-32-oxg"/>
29 <outlet property="viewCollectionShare" destination="Iw2-nW-e7g" id="LW3-j0-yEY"/> 29 <outlet property="viewCollectionShare" destination="Iw2-nW-e7g" id="LW3-j0-yEY"/>
30 <outlet property="viewCollectionType" destination="yxY-4d-tB6" id="K1D-Gc-kWV"/> 30 <outlet property="viewCollectionType" destination="yxY-4d-tB6" id="K1D-Gc-kWV"/>
31 <outlet property="viewHeader" destination="clL-JG-rbd" id="4NQ-RP-UeO"/>
31 </connections> 32 </connections>
32 </placeholder> 33 </placeholder>
33 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 34 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
34 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 35 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
35 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 36 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
36 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 37 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
37 <subviews> 38 <subviews>
39 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="3GJ-xw-Zoa">
40 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
41 </imageView>
38 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader"> 42 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader">
39 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 43 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
40 <subviews> 44 <subviews>
41 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="履歴" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF" customClass="AutoTransLabel"> 45 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="履歴" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF" customClass="AutoTransLabel">
42 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 46 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
43 <fontDescription key="fontDescription" type="system" pointSize="17"/> 47 <fontDescription key="fontDescription" type="system" pointSize="17"/>
44 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 48 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
45 <nil key="highlightedColor"/> 49 <nil key="highlightedColor"/>
46 <userDefinedRuntimeAttributes> 50 <userDefinedRuntimeAttributes>
47 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/> 51 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/>
48 </userDefinedRuntimeAttributes> 52 </userDefinedRuntimeAttributes>
49 </label> 53 </label>
50 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC"> 54 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC">
51 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 55 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
52 <constraints> 56 <constraints>
53 <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/> 57 <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/>
54 </constraints> 58 </constraints>
55 <state key="normal" image="today_back_button"/> 59 <state key="normal" image="today_back_button"/>
56 </button> 60 </button>
57 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CFx-sO-MAH"> 61 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CFx-sO-MAH">
58 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 62 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
59 <constraints> 63 <constraints>
60 <constraint firstAttribute="width" constant="45" id="V0g-Ii-pNQ"/> 64 <constraint firstAttribute="width" constant="45" id="V0g-Ii-pNQ"/>
61 </constraints> 65 </constraints>
62 <state key="normal" image="icon_menu"/> 66 <state key="normal" image="icon_menu"/>
63 </button> 67 </button>
64 </subviews> 68 </subviews>
65 <color key="backgroundColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 69 <color key="backgroundColor" red="0.0" green="0.0" blue="0.2196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
66 <constraints> 70 <constraints>
67 <constraint firstAttribute="trailing" secondItem="Ht6-rd-JXF" secondAttribute="trailing" id="Fr9-Yj-q5e"/> 71 <constraint firstAttribute="trailing" secondItem="Ht6-rd-JXF" secondAttribute="trailing" id="Fr9-Yj-q5e"/>
68 <constraint firstItem="ytc-zM-ZGC" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="LDb-Pq-Z5k"/> 72 <constraint firstItem="ytc-zM-ZGC" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="LDb-Pq-Z5k"/>
69 <constraint firstAttribute="trailing" secondItem="CFx-sO-MAH" secondAttribute="trailing" id="PTh-vI-2DI"/> 73 <constraint firstAttribute="trailing" secondItem="CFx-sO-MAH" secondAttribute="trailing" id="PTh-vI-2DI"/>
70 <constraint firstItem="Ht6-rd-JXF" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="URG-nj-C2r"/> 74 <constraint firstItem="Ht6-rd-JXF" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="URG-nj-C2r"/>
71 <constraint firstItem="CFx-sO-MAH" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="Uxg-Wl-DlF"/> 75 <constraint firstItem="CFx-sO-MAH" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="Uxg-Wl-DlF"/>
72 <constraint firstAttribute="bottom" secondItem="CFx-sO-MAH" secondAttribute="bottom" id="X9D-m3-QXF"/> 76 <constraint firstAttribute="bottom" secondItem="CFx-sO-MAH" secondAttribute="bottom" id="X9D-m3-QXF"/>
73 <constraint firstAttribute="bottom" secondItem="ytc-zM-ZGC" secondAttribute="bottom" constant="5" id="hWb-ga-1wm"/> 77 <constraint firstAttribute="bottom" secondItem="ytc-zM-ZGC" secondAttribute="bottom" constant="5" id="hWb-ga-1wm"/>
74 <constraint firstAttribute="bottom" secondItem="Ht6-rd-JXF" secondAttribute="bottom" id="iqI-Bi-QI1"/> 78 <constraint firstAttribute="bottom" secondItem="Ht6-rd-JXF" secondAttribute="bottom" id="iqI-Bi-QI1"/>
75 <constraint firstItem="Ht6-rd-JXF" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="uzc-SO-7mw"/> 79 <constraint firstItem="Ht6-rd-JXF" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="uzc-SO-7mw"/>
76 <constraint firstItem="ytc-zM-ZGC" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" constant="5" id="vFt-FE-klC"/> 80 <constraint firstItem="ytc-zM-ZGC" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" constant="5" id="vFt-FE-klC"/>
77 <constraint firstAttribute="height" constant="46" id="xGd-BD-bgs"/> 81 <constraint firstAttribute="height" constant="46" id="xGd-BD-bgs"/>
78 </constraints> 82 </constraints>
79 </view> 83 </view>
80 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cf1-lP-zbB" userLabel="ViewTime"> 84 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cf1-lP-zbB" userLabel="ViewTime">
81 <rect key="frame" x="10" y="46" width="355" height="35"/> 85 <rect key="frame" x="10" y="46" width="355" height="35"/>
82 <subviews> 86 <subviews>
83 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6T2-M9-9wV"> 87 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6T2-M9-9wV">
84 <rect key="frame" x="0.0" y="0.0" width="35" height="35"/> 88 <rect key="frame" x="0.0" y="0.0" width="35" height="35"/>
85 <constraints> 89 <constraints>
86 <constraint firstAttribute="width" secondItem="6T2-M9-9wV" secondAttribute="height" multiplier="1:1" id="RlM-6u-eer"/> 90 <constraint firstAttribute="width" secondItem="6T2-M9-9wV" secondAttribute="height" multiplier="1:1" id="RlM-6u-eer"/>
87 </constraints> 91 </constraints>
88 <state key="normal" backgroundImage="arrow_back"/> 92 <state key="normal" backgroundImage="arrow_back"/>
89 <connections> 93 <connections>
90 <action selector="clickBackward:" destination="-1" eventType="touchUpInside" id="pwN-yT-qyp"/> 94 <action selector="clickBackward:" destination="-1" eventType="touchUpInside" id="pwN-yT-qyp"/>
91 </connections> 95 </connections>
92 </button> 96 </button>
93 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cwb-8M-pDi"> 97 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cwb-8M-pDi">
94 <rect key="frame" x="320" y="0.0" width="35" height="35"/> 98 <rect key="frame" x="320" y="0.0" width="35" height="35"/>
95 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 99 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
96 <state key="normal" backgroundImage="arrow_next"/> 100 <state key="normal" backgroundImage="arrow_next"/>
97 <connections> 101 <connections>
98 <action selector="clickForward:" destination="-1" eventType="touchUpInside" id="1NC-km-Lfe"/> 102 <action selector="clickForward:" destination="-1" eventType="touchUpInside" id="1NC-km-Lfe"/>
99 </connections> 103 </connections>
100 </button> 104 </button>
101 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日 日曜日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EM7-vA-s1e"> 105 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日 日曜日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EM7-vA-s1e">
102 <rect key="frame" x="40" y="2" width="275" height="31"/> 106 <rect key="frame" x="40" y="2" width="275" height="31"/>
103 <fontDescription key="fontDescription" type="system" pointSize="15"/> 107 <fontDescription key="fontDescription" type="system" pointSize="15"/>
104 <nil key="textColor"/> 108 <nil key="textColor"/>
105 <nil key="highlightedColor"/> 109 <nil key="highlightedColor"/>
106 </label> 110 </label>
107 </subviews> 111 </subviews>
108 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 112 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
109 <constraints> 113 <constraints>
110 <constraint firstItem="Cwb-8M-pDi" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="4Jr-r7-y6d"/> 114 <constraint firstItem="Cwb-8M-pDi" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="4Jr-r7-y6d"/>
111 <constraint firstAttribute="bottom" secondItem="6T2-M9-9wV" secondAttribute="bottom" id="8bU-NI-m32"/> 115 <constraint firstAttribute="bottom" secondItem="6T2-M9-9wV" secondAttribute="bottom" id="8bU-NI-m32"/>
112 <constraint firstItem="EM7-vA-s1e" firstAttribute="leading" secondItem="6T2-M9-9wV" secondAttribute="trailing" constant="5" id="9G1-I6-nSV"/> 116 <constraint firstItem="EM7-vA-s1e" firstAttribute="leading" secondItem="6T2-M9-9wV" secondAttribute="trailing" constant="5" id="9G1-I6-nSV"/>
113 <constraint firstItem="EM7-vA-s1e" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" constant="2" id="9Yk-sv-gkx"/> 117 <constraint firstItem="EM7-vA-s1e" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" constant="2" id="9Yk-sv-gkx"/>
114 <constraint firstItem="Cwb-8M-pDi" firstAttribute="leading" secondItem="EM7-vA-s1e" secondAttribute="trailing" constant="5" id="JQI-18-cWP"/> 118 <constraint firstItem="Cwb-8M-pDi" firstAttribute="leading" secondItem="EM7-vA-s1e" secondAttribute="trailing" constant="5" id="JQI-18-cWP"/>
115 <constraint firstAttribute="height" constant="35" id="Pdg-IR-g8y"/> 119 <constraint firstAttribute="height" constant="35" id="Pdg-IR-g8y"/>
116 <constraint firstItem="6T2-M9-9wV" firstAttribute="leading" secondItem="Cf1-lP-zbB" secondAttribute="leading" id="Pgh-zZ-vrG"/> 120 <constraint firstItem="6T2-M9-9wV" firstAttribute="leading" secondItem="Cf1-lP-zbB" secondAttribute="leading" id="Pgh-zZ-vrG"/>
117 <constraint firstAttribute="bottom" secondItem="Cwb-8M-pDi" secondAttribute="bottom" id="WWs-Ey-osm"/> 121 <constraint firstAttribute="bottom" secondItem="Cwb-8M-pDi" secondAttribute="bottom" id="WWs-Ey-osm"/>
118 <constraint firstItem="Cwb-8M-pDi" firstAttribute="width" secondItem="Cwb-8M-pDi" secondAttribute="height" multiplier="1:1" id="YHa-MU-GKi"/> 122 <constraint firstItem="Cwb-8M-pDi" firstAttribute="width" secondItem="Cwb-8M-pDi" secondAttribute="height" multiplier="1:1" id="YHa-MU-GKi"/>
119 <constraint firstItem="6T2-M9-9wV" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="fiM-o3-Us0"/> 123 <constraint firstItem="6T2-M9-9wV" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="fiM-o3-Us0"/>
120 <constraint firstAttribute="trailing" secondItem="Cwb-8M-pDi" secondAttribute="trailing" id="oCE-RP-EmX"/> 124 <constraint firstAttribute="trailing" secondItem="Cwb-8M-pDi" secondAttribute="trailing" id="oCE-RP-EmX"/>
121 <constraint firstAttribute="bottom" secondItem="EM7-vA-s1e" secondAttribute="bottom" constant="2" id="oOd-ip-MZy"/> 125 <constraint firstAttribute="bottom" secondItem="EM7-vA-s1e" secondAttribute="bottom" constant="2" id="oOd-ip-MZy"/>
122 </constraints> 126 </constraints>
123 </view> 127 </view>
124 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yxY-4d-tB6" customClass="CollectionView"> 128 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yxY-4d-tB6" customClass="CollectionView">
125 <rect key="frame" x="2" y="96" width="371" height="40"/> 129 <rect key="frame" x="2" y="96" width="371" height="40"/>
126 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 130 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
127 <constraints> 131 <constraints>
128 <constraint firstAttribute="height" constant="40" id="U7Q-wa-CDi"/> 132 <constraint firstAttribute="height" constant="40" id="U7Q-wa-CDi"/>
129 </constraints> 133 </constraints>
130 </view> 134 </view>
131 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVv-qD-EHM" customClass="CollectionView"> 135 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVv-qD-EHM" customClass="CollectionView">
132 <rect key="frame" x="0.0" y="577" width="375" height="40"/> 136 <rect key="frame" x="0.0" y="577" width="375" height="40"/>
133 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 137 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
134 <constraints> 138 <constraints>
135 <constraint firstAttribute="height" constant="40" id="6wc-NQ-UAH"/> 139 <constraint firstAttribute="height" constant="40" id="6wc-NQ-UAH"/>
136 </constraints> 140 </constraints>
137 </view> 141 </view>
138 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLa-rV-Aas" userLabel="ViewContent"> 142 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLa-rV-Aas" userLabel="ViewContent">
139 <rect key="frame" x="0.0" y="151" width="375" height="421"/> 143 <rect key="frame" x="0.0" y="151" width="375" height="421"/>
140 <subviews> 144 <subviews>
141 <tableView clipsSubviews="YES" alpha="0.0" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FXQ-4O-sRc"> 145 <tableView clipsSubviews="YES" alpha="0.0" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FXQ-4O-sRc">
142 <rect key="frame" x="5" y="0.0" width="365" height="421"/> 146 <rect key="frame" x="5" y="0.0" width="365" height="421"/>
143 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 147 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
144 <connections> 148 <connections>
145 <outlet property="dataSource" destination="-1" id="GQy-lg-1Af"/> 149 <outlet property="dataSource" destination="-1" id="GQy-lg-1Af"/>
146 <outlet property="delegate" destination="-1" id="Jka-Ij-zNq"/> 150 <outlet property="delegate" destination="-1" id="Jka-Ij-zNq"/>
147 </connections> 151 </connections>
148 </tableView> 152 </tableView>
149 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rey-N3-l8b"> 153 <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rey-N3-l8b">
150 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/> 154 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/>
151 <subviews> 155 <subviews>
152 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cam-ML-IEO"> 156 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cam-ML-IEO">
153 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/> 157 <rect key="frame" x="0.0" y="0.0" width="375" height="421"/>
154 <subviews> 158 <subviews>
155 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kzk-mN-AOf"> 159 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kzk-mN-AOf">
156 <rect key="frame" x="20" y="30" width="120" height="120"/> 160 <rect key="frame" x="20" y="30" width="120" height="120"/>
157 <subviews> 161 <subviews>
158 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oWg-A8-aCr"> 162 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oWg-A8-aCr">
159 <rect key="frame" x="18" y="35" width="82" height="21"/> 163 <rect key="frame" x="18" y="35" width="82" height="21"/>
160 <constraints> 164 <constraints>
161 <constraint firstAttribute="height" constant="21" id="zOX-0d-IVv"/> 165 <constraint firstAttribute="height" constant="21" id="zOX-0d-IVv"/>
162 </constraints> 166 </constraints>
163 <fontDescription key="fontDescription" type="system" pointSize="17"/> 167 <fontDescription key="fontDescription" type="system" pointSize="17"/>
164 <nil key="textColor"/> 168 <nil key="textColor"/>
165 <nil key="highlightedColor"/> 169 <nil key="highlightedColor"/>
166 </label> 170 </label>
167 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kr7-S0-Fpl"> 171 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kr7-S0-Fpl">
168 <rect key="frame" x="20" y="61" width="80" height="42"/> 172 <rect key="frame" x="20" y="61" width="80" height="42"/>
169 <constraints> 173 <constraints>
170 <constraint firstAttribute="width" constant="80" id="IOc-sB-dA2"/> 174 <constraint firstAttribute="width" constant="80" id="IOc-sB-dA2"/>
171 <constraint firstAttribute="height" constant="42" id="zRP-Fu-qZ9"/> 175 <constraint firstAttribute="height" constant="42" id="zRP-Fu-qZ9"/>
172 </constraints> 176 </constraints>
173 <string key="text">目標まであと 177 <string key="text">目標まであと
174 0 stepです</string> 178 0 stepです</string>
175 <fontDescription key="fontDescription" type="system" pointSize="11"/> 179 <fontDescription key="fontDescription" type="system" pointSize="11"/>
176 <nil key="textColor"/> 180 <nil key="textColor"/>
177 <nil key="highlightedColor"/> 181 <nil key="highlightedColor"/>
178 </label> 182 </label>
179 </subviews> 183 </subviews>
180 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 184 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
181 <constraints> 185 <constraints>
182 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="top" secondItem="oWg-A8-aCr" secondAttribute="bottom" constant="5" id="2KK-Lm-h74"/> 186 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="top" secondItem="oWg-A8-aCr" secondAttribute="bottom" constant="5" id="2KK-Lm-h74"/>
183 <constraint firstItem="oWg-A8-aCr" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="leading" constant="18" id="CdG-qa-ud5"/> 187 <constraint firstItem="oWg-A8-aCr" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="leading" constant="18" id="CdG-qa-ud5"/>
184 <constraint firstAttribute="width" constant="120" id="E48-cC-dsc"/> 188 <constraint firstAttribute="width" constant="120" id="E48-cC-dsc"/>
185 <constraint firstAttribute="height" constant="120" id="SlY-sr-tR9"/> 189 <constraint firstAttribute="height" constant="120" id="SlY-sr-tR9"/>
186 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="centerX" secondItem="Kzk-mN-AOf" secondAttribute="centerX" id="jJV-RH-pk1"/> 190 <constraint firstItem="Kr7-S0-Fpl" firstAttribute="centerX" secondItem="Kzk-mN-AOf" secondAttribute="centerX" id="jJV-RH-pk1"/>
187 <constraint firstItem="oWg-A8-aCr" firstAttribute="top" secondItem="Kzk-mN-AOf" secondAttribute="top" constant="35" id="oBl-zo-td5"/> 191 <constraint firstItem="oWg-A8-aCr" firstAttribute="top" secondItem="Kzk-mN-AOf" secondAttribute="top" constant="35" id="oBl-zo-td5"/>
188 <constraint firstAttribute="trailing" secondItem="oWg-A8-aCr" secondAttribute="trailing" constant="20" id="xgh-d4-jOF"/> 192 <constraint firstAttribute="trailing" secondItem="oWg-A8-aCr" secondAttribute="trailing" constant="20" id="xgh-d4-jOF"/>
189 </constraints> 193 </constraints>
190 <userDefinedRuntimeAttributes> 194 <userDefinedRuntimeAttributes>
191 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 195 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
192 <integer key="value" value="60"/> 196 <integer key="value" value="60"/>
193 </userDefinedRuntimeAttribute> 197 </userDefinedRuntimeAttribute>
194 </userDefinedRuntimeAttributes> 198 </userDefinedRuntimeAttributes>
195 </view> 199 </view>
196 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ix-HE-d9T"> 200 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ix-HE-d9T">
197 <rect key="frame" x="148" y="30" width="219" height="120"/> 201 <rect key="frame" x="148" y="30" width="219" height="120"/>
198 <subviews> 202 <subviews>
199 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YE6-wh-77T" customClass="AutoTransLabel"> 203 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YE6-wh-77T" customClass="AutoTransLabel">
200 <rect key="frame" x="10" y="38" width="45" height="15"/> 204 <rect key="frame" x="10" y="38" width="45" height="15"/>
201 <constraints> 205 <constraints>
202 <constraint firstAttribute="width" constant="45" id="6Ce-YE-wbx"/> 206 <constraint firstAttribute="width" constant="45" id="6Ce-YE-wbx"/>
203 <constraint firstAttribute="height" constant="15" id="eFR-Ao-75U"/> 207 <constraint firstAttribute="height" constant="15" id="eFR-Ao-75U"/>
204 </constraints> 208 </constraints>
205 <fontDescription key="fontDescription" type="system" pointSize="12"/> 209 <fontDescription key="fontDescription" type="system" pointSize="12"/>
206 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 210 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
207 <nil key="highlightedColor"/> 211 <nil key="highlightedColor"/>
208 <userDefinedRuntimeAttributes> 212 <userDefinedRuntimeAttributes>
209 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.total"/> 213 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.total"/>
210 </userDefinedRuntimeAttributes> 214 </userDefinedRuntimeAttributes>
211 </label> 215 </label>
212 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOl-Tj-xiT" customClass="AutoTransLabel"> 216 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="HOl-Tj-xiT" customClass="AutoTransLabel">
213 <rect key="frame" x="10" y="53" width="45" height="15"/> 217 <rect key="frame" x="10" y="53" width="45" height="15"/>
214 <fontDescription key="fontDescription" type="system" pointSize="12"/> 218 <fontDescription key="fontDescription" type="system" pointSize="12"/>
215 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 219 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
216 <nil key="highlightedColor"/> 220 <nil key="highlightedColor"/>
217 <userDefinedRuntimeAttributes> 221 <userDefinedRuntimeAttributes>
218 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.remaining"/> 222 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.remaining"/>
219 </userDefinedRuntimeAttributes> 223 </userDefinedRuntimeAttributes>
220 </label> 224 </label>
221 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l0h-qA-2Ai" customClass="AutoTransLabel"> 225 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l0h-qA-2Ai" customClass="AutoTransLabel">
222 <rect key="frame" x="10" y="68" width="45" height="15"/> 226 <rect key="frame" x="10" y="68" width="45" height="15"/>
223 <fontDescription key="fontDescription" type="system" pointSize="12"/> 227 <fontDescription key="fontDescription" type="system" pointSize="12"/>
224 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 228 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
225 <nil key="highlightedColor"/> 229 <nil key="highlightedColor"/>
226 <userDefinedRuntimeAttributes> 230 <userDefinedRuntimeAttributes>
227 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.percent"/> 231 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.percent"/>
228 </userDefinedRuntimeAttributes> 232 </userDefinedRuntimeAttributes>
229 </label> 233 </label>
230 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0pf-fX-QXT"> 234 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0pf-fX-QXT">
231 <rect key="frame" x="63" y="38" width="118" height="15"/> 235 <rect key="frame" x="63" y="38" width="118" height="15"/>
232 <constraints> 236 <constraints>
233 <constraint firstAttribute="height" constant="15" id="Z6o-LI-Eu9"/> 237 <constraint firstAttribute="height" constant="15" id="Z6o-LI-Eu9"/>
234 </constraints> 238 </constraints>
235 <fontDescription key="fontDescription" type="system" pointSize="12"/> 239 <fontDescription key="fontDescription" type="system" pointSize="12"/>
236 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 240 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
237 <nil key="highlightedColor"/> 241 <nil key="highlightedColor"/>
238 </label> 242 </label>
239 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1NH-b3-ST8"> 243 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1NH-b3-ST8">
240 <rect key="frame" x="63" y="53" width="118" height="15"/> 244 <rect key="frame" x="63" y="53" width="118" height="15"/>
241 <fontDescription key="fontDescription" type="system" pointSize="12"/> 245 <fontDescription key="fontDescription" type="system" pointSize="12"/>
242 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 246 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
243 <nil key="highlightedColor"/> 247 <nil key="highlightedColor"/>
244 </label> 248 </label>
245 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 %" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ru-Jc-Ouv"> 249 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 %" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ru-Jc-Ouv">
246 <rect key="frame" x="63" y="68" width="118" height="15"/> 250 <rect key="frame" x="63" y="68" width="118" height="15"/>
247 <fontDescription key="fontDescription" type="system" pointSize="12"/> 251 <fontDescription key="fontDescription" type="system" pointSize="12"/>
248 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 252 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
249 <nil key="highlightedColor"/> 253 <nil key="highlightedColor"/>
250 </label> 254 </label>
251 </subviews> 255 </subviews>
252 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 256 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
253 <constraints> 257 <constraints>
254 <constraint firstItem="l0h-qA-2Ai" firstAttribute="top" secondItem="HOl-Tj-xiT" secondAttribute="bottom" id="0dv-3h-eHs"/> 258 <constraint firstItem="l0h-qA-2Ai" firstAttribute="top" secondItem="HOl-Tj-xiT" secondAttribute="bottom" id="0dv-3h-eHs"/>
255 <constraint firstItem="l0h-qA-2Ai" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="7z3-ph-BM4"/> 259 <constraint firstItem="l0h-qA-2Ai" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="7z3-ph-BM4"/>
256 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="ACu-BV-ieg"/> 260 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="ACu-BV-ieg"/>
257 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="top" secondItem="1NH-b3-ST8" secondAttribute="bottom" id="Abh-FK-4X7"/> 261 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="top" secondItem="1NH-b3-ST8" secondAttribute="bottom" id="Abh-FK-4X7"/>
258 <constraint firstItem="1NH-b3-ST8" firstAttribute="top" secondItem="0pf-fX-QXT" secondAttribute="bottom" id="B3I-n2-Oks"/> 262 <constraint firstItem="1NH-b3-ST8" firstAttribute="top" secondItem="0pf-fX-QXT" secondAttribute="bottom" id="B3I-n2-Oks"/>
259 <constraint firstItem="1NH-b3-ST8" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="BAn-7O-jBX"/> 263 <constraint firstItem="1NH-b3-ST8" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="BAn-7O-jBX"/>
260 <constraint firstItem="0pf-fX-QXT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="trailing" constant="8" id="G20-xx-HEH"/> 264 <constraint firstItem="0pf-fX-QXT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="trailing" constant="8" id="G20-xx-HEH"/>
261 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="NIm-Zw-fnf"/> 265 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="NIm-Zw-fnf"/>
262 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="PdQ-qd-Sqc"/> 266 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="PdQ-qd-Sqc"/>
263 <constraint firstItem="HOl-Tj-xiT" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="WpC-o9-bDa"/> 267 <constraint firstItem="HOl-Tj-xiT" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="WpC-o9-bDa"/>
264 <constraint firstItem="l0h-qA-2Ai" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="bR8-Ki-lS1"/> 268 <constraint firstItem="l0h-qA-2Ai" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="bR8-Ki-lS1"/>
265 <constraint firstItem="HOl-Tj-xiT" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="c0u-hz-5O9"/> 269 <constraint firstItem="HOl-Tj-xiT" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="c0u-hz-5O9"/>
266 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="chf-kb-ClX"/> 270 <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="chf-kb-ClX"/>
267 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="din-4T-V5w"/> 271 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="din-4T-V5w"/>
268 <constraint firstItem="l0h-qA-2Ai" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="eo0-xw-d1f"/> 272 <constraint firstItem="l0h-qA-2Ai" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="eo0-xw-d1f"/>
269 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="gjt-3e-Pkx"/> 273 <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="gjt-3e-Pkx"/>
270 <constraint firstItem="1NH-b3-ST8" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="kOM-6S-Amv"/> 274 <constraint firstItem="1NH-b3-ST8" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="kOM-6S-Amv"/>
271 <constraint firstItem="HOl-Tj-xiT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="oOc-TB-k4j"/> 275 <constraint firstItem="HOl-Tj-xiT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="oOc-TB-k4j"/>
272 <constraint firstItem="1NH-b3-ST8" firstAttribute="centerY" secondItem="HOl-Tj-xiT" secondAttribute="centerY" id="pGW-dw-56G"/> 276 <constraint firstItem="1NH-b3-ST8" firstAttribute="centerY" secondItem="HOl-Tj-xiT" secondAttribute="centerY" id="pGW-dw-56G"/>
273 <constraint firstItem="HOl-Tj-xiT" firstAttribute="top" secondItem="YE6-wh-77T" secondAttribute="bottom" id="s6n-mU-Sp6"/> 277 <constraint firstItem="HOl-Tj-xiT" firstAttribute="top" secondItem="YE6-wh-77T" secondAttribute="bottom" id="s6n-mU-Sp6"/>
274 <constraint firstItem="HOl-Tj-xiT" firstAttribute="centerY" secondItem="4ix-HE-d9T" secondAttribute="centerY" id="vB9-RR-pao"/> 278 <constraint firstItem="HOl-Tj-xiT" firstAttribute="centerY" secondItem="4ix-HE-d9T" secondAttribute="centerY" id="vB9-RR-pao"/>
275 <constraint firstAttribute="trailing" secondItem="0pf-fX-QXT" secondAttribute="trailing" constant="38" id="xiP-fg-Ozi"/> 279 <constraint firstAttribute="trailing" secondItem="0pf-fX-QXT" secondAttribute="trailing" constant="38" id="xiP-fg-Ozi"/>
276 <constraint firstItem="YE6-wh-77T" firstAttribute="leading" secondItem="4ix-HE-d9T" secondAttribute="leading" constant="10" id="xj6-In-ihz"/> 280 <constraint firstItem="YE6-wh-77T" firstAttribute="leading" secondItem="4ix-HE-d9T" secondAttribute="leading" constant="10" id="xj6-In-ihz"/>
277 </constraints> 281 </constraints>
278 </view> 282 </view>
279 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iEh-Ze-suq"> 283 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iEh-Ze-suq">
280 <rect key="frame" x="20" y="158" width="335" height="35"/> 284 <rect key="frame" x="20" y="158" width="335" height="35"/>
281 <subviews> 285 <subviews>
282 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UwA-5Q-gdv"> 286 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UwA-5Q-gdv">
283 <rect key="frame" x="0.0" y="0.0" width="111.5" height="35"/> 287 <rect key="frame" x="0.0" y="0.0" width="111.5" height="35"/>
284 <subviews> 288 <subviews>
285 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="消費カロリー" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zRU-L6-Ed4" customClass="AutoTransLabel"> 289 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="消費カロリー" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zRU-L6-Ed4" customClass="AutoTransLabel">
286 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/> 290 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
287 <constraints> 291 <constraints>
288 <constraint firstAttribute="height" constant="18" id="Ywp-RA-6am"/> 292 <constraint firstAttribute="height" constant="18" id="Ywp-RA-6am"/>
289 </constraints> 293 </constraints>
290 <fontDescription key="fontDescription" type="system" pointSize="12"/> 294 <fontDescription key="fontDescription" type="system" pointSize="12"/>
291 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 295 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
292 <nil key="highlightedColor"/> 296 <nil key="highlightedColor"/>
293 <userDefinedRuntimeAttributes> 297 <userDefinedRuntimeAttributes>
294 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.calories"/> 298 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.calories"/>
295 </userDefinedRuntimeAttributes> 299 </userDefinedRuntimeAttributes>
296 </label> 300 </label>
297 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dAE-C8-QLr"> 301 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dAE-C8-QLr">
298 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/> 302 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
299 <constraints> 303 <constraints>
300 <constraint firstAttribute="height" constant="18" id="r0d-xi-3u7"/> 304 <constraint firstAttribute="height" constant="18" id="r0d-xi-3u7"/>
301 </constraints> 305 </constraints>
302 <fontDescription key="fontDescription" type="system" pointSize="12"/> 306 <fontDescription key="fontDescription" type="system" pointSize="12"/>
303 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 307 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
304 <nil key="highlightedColor"/> 308 <nil key="highlightedColor"/>
305 </label> 309 </label>
306 </subviews> 310 </subviews>
307 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 311 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
308 <constraints> 312 <constraints>
309 <constraint firstItem="zRU-L6-Ed4" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="Zbe-7f-cuR"/> 313 <constraint firstItem="zRU-L6-Ed4" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="Zbe-7f-cuR"/>
310 <constraint firstAttribute="bottom" secondItem="dAE-C8-QLr" secondAttribute="bottom" id="aZH-zh-M1V"/> 314 <constraint firstAttribute="bottom" secondItem="dAE-C8-QLr" secondAttribute="bottom" id="aZH-zh-M1V"/>
311 <constraint firstItem="zRU-L6-Ed4" firstAttribute="top" secondItem="UwA-5Q-gdv" secondAttribute="top" id="bsw-KU-Tcu"/> 315 <constraint firstItem="zRU-L6-Ed4" firstAttribute="top" secondItem="UwA-5Q-gdv" secondAttribute="top" id="bsw-KU-Tcu"/>
312 <constraint firstAttribute="trailing" secondItem="zRU-L6-Ed4" secondAttribute="trailing" id="iMB-ch-u4B"/> 316 <constraint firstAttribute="trailing" secondItem="zRU-L6-Ed4" secondAttribute="trailing" id="iMB-ch-u4B"/>
313 <constraint firstItem="dAE-C8-QLr" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="qNu-WH-Jjj"/> 317 <constraint firstItem="dAE-C8-QLr" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="qNu-WH-Jjj"/>
314 <constraint firstAttribute="trailing" secondItem="dAE-C8-QLr" secondAttribute="trailing" id="wRF-1x-XC1"/> 318 <constraint firstAttribute="trailing" secondItem="dAE-C8-QLr" secondAttribute="trailing" id="wRF-1x-XC1"/>
315 </constraints> 319 </constraints>
316 </view> 320 </view>
317 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVs-KG-fDF"> 321 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVs-KG-fDF">
318 <rect key="frame" x="111.5" y="0.0" width="112" height="35"/> 322 <rect key="frame" x="111.5" y="0.0" width="112" height="35"/>
319 <subviews> 323 <subviews>
320 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XGt-pc-sd7" customClass="AutoTransLabel"> 324 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="XGt-pc-sd7" customClass="AutoTransLabel">
321 <rect key="frame" x="0.0" y="0.0" width="112" height="18"/> 325 <rect key="frame" x="0.0" y="0.0" width="112" height="18"/>
322 <constraints> 326 <constraints>
323 <constraint firstAttribute="height" constant="18" id="tct-pY-7wo"/> 327 <constraint firstAttribute="height" constant="18" id="tct-pY-7wo"/>
324 </constraints> 328 </constraints>
325 <fontDescription key="fontDescription" type="system" pointSize="12"/> 329 <fontDescription key="fontDescription" type="system" pointSize="12"/>
326 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 330 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
327 <nil key="highlightedColor"/> 331 <nil key="highlightedColor"/>
328 <userDefinedRuntimeAttributes> 332 <userDefinedRuntimeAttributes>
329 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.distance"/> 333 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.distance"/>
330 </userDefinedRuntimeAttributes> 334 </userDefinedRuntimeAttributes>
331 </label> 335 </label>
332 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0.0 KM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tR-JC-pyw"> 336 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0.0 KM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tR-JC-pyw">
333 <rect key="frame" x="0.0" y="17" width="112" height="18"/> 337 <rect key="frame" x="0.0" y="17" width="112" height="18"/>
334 <constraints> 338 <constraints>
335 <constraint firstAttribute="height" constant="18" id="sNT-xl-BKH"/> 339 <constraint firstAttribute="height" constant="18" id="sNT-xl-BKH"/>
336 </constraints> 340 </constraints>
337 <fontDescription key="fontDescription" type="system" pointSize="12"/> 341 <fontDescription key="fontDescription" type="system" pointSize="12"/>
338 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 342 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
339 <nil key="highlightedColor"/> 343 <nil key="highlightedColor"/>
340 </label> 344 </label>
341 </subviews> 345 </subviews>
342 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 346 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
343 <constraints> 347 <constraints>
344 <constraint firstItem="XGt-pc-sd7" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="Bd8-ZX-shc"/> 348 <constraint firstItem="XGt-pc-sd7" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="Bd8-ZX-shc"/>
345 <constraint firstAttribute="trailing" secondItem="1tR-JC-pyw" secondAttribute="trailing" id="Mrw-gb-r3n"/> 349 <constraint firstAttribute="trailing" secondItem="1tR-JC-pyw" secondAttribute="trailing" id="Mrw-gb-r3n"/>
346 <constraint firstAttribute="trailing" secondItem="XGt-pc-sd7" secondAttribute="trailing" id="cTc-te-Pc1"/> 350 <constraint firstAttribute="trailing" secondItem="XGt-pc-sd7" secondAttribute="trailing" id="cTc-te-Pc1"/>
347 <constraint firstItem="XGt-pc-sd7" firstAttribute="top" secondItem="BVs-KG-fDF" secondAttribute="top" id="cs1-A7-e5C"/> 351 <constraint firstItem="XGt-pc-sd7" firstAttribute="top" secondItem="BVs-KG-fDF" secondAttribute="top" id="cs1-A7-e5C"/>
348 <constraint firstAttribute="bottom" secondItem="1tR-JC-pyw" secondAttribute="bottom" id="vsZ-FE-X5m"/> 352 <constraint firstAttribute="bottom" secondItem="1tR-JC-pyw" secondAttribute="bottom" id="vsZ-FE-X5m"/>
349 <constraint firstItem="1tR-JC-pyw" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="xOd-ZK-rZn"/> 353 <constraint firstItem="1tR-JC-pyw" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="xOd-ZK-rZn"/>
350 </constraints> 354 </constraints>
351 </view> 355 </view>
352 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5h-QD-Igf"> 356 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5h-QD-Igf">
353 <rect key="frame" x="223.5" y="0.0" width="111.5" height="35"/> 357 <rect key="frame" x="223.5" y="0.0" width="111.5" height="35"/>
354 <subviews> 358 <subviews>
355 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OEO-l8-Ibg" customClass="AutoTransLabel"> 359 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OEO-l8-Ibg" customClass="AutoTransLabel">
356 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/> 360 <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
357 <constraints> 361 <constraints>
358 <constraint firstAttribute="height" constant="18" id="EVe-qW-qqp"/> 362 <constraint firstAttribute="height" constant="18" id="EVe-qW-qqp"/>
359 </constraints> 363 </constraints>
360 <fontDescription key="fontDescription" type="system" pointSize="12"/> 364 <fontDescription key="fontDescription" type="system" pointSize="12"/>
361 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 365 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
362 <nil key="highlightedColor"/> 366 <nil key="highlightedColor"/>
363 <userDefinedRuntimeAttributes> 367 <userDefinedRuntimeAttributes>
364 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.time"/> 368 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title.time"/>
365 </userDefinedRuntimeAttributes> 369 </userDefinedRuntimeAttributes>
366 </label> 370 </label>
367 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-7x-LAR"> 371 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="00:00" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-7x-LAR">
368 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/> 372 <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
369 <constraints> 373 <constraints>
370 <constraint firstAttribute="height" constant="18" id="lno-Dx-ZNm"/> 374 <constraint firstAttribute="height" constant="18" id="lno-Dx-ZNm"/>
371 </constraints> 375 </constraints>
372 <fontDescription key="fontDescription" type="system" pointSize="12"/> 376 <fontDescription key="fontDescription" type="system" pointSize="12"/>
373 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 377 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
374 <nil key="highlightedColor"/> 378 <nil key="highlightedColor"/>
375 </label> 379 </label>
376 </subviews> 380 </subviews>
377 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 381 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
378 <constraints> 382 <constraints>
379 <constraint firstAttribute="trailing" secondItem="PfZ-7x-LAR" secondAttribute="trailing" id="3Ir-mZ-xmI"/> 383 <constraint firstAttribute="trailing" secondItem="PfZ-7x-LAR" secondAttribute="trailing" id="3Ir-mZ-xmI"/>
380 <constraint firstItem="OEO-l8-Ibg" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="5oW-CQ-vWi"/> 384 <constraint firstItem="OEO-l8-Ibg" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="5oW-CQ-vWi"/>
381 <constraint firstItem="PfZ-7x-LAR" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="Qur-SO-10d"/> 385 <constraint firstItem="PfZ-7x-LAR" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="Qur-SO-10d"/>
382 <constraint firstAttribute="trailing" secondItem="OEO-l8-Ibg" secondAttribute="trailing" id="WQn-Gv-plQ"/> 386 <constraint firstAttribute="trailing" secondItem="OEO-l8-Ibg" secondAttribute="trailing" id="WQn-Gv-plQ"/>
383 <constraint firstItem="OEO-l8-Ibg" firstAttribute="top" secondItem="j5h-QD-Igf" secondAttribute="top" id="lt7-Qt-rBM"/> 387 <constraint firstItem="OEO-l8-Ibg" firstAttribute="top" secondItem="j5h-QD-Igf" secondAttribute="top" id="lt7-Qt-rBM"/>
384 <constraint firstAttribute="bottom" secondItem="PfZ-7x-LAR" secondAttribute="bottom" id="qcA-M9-NYS"/> 388 <constraint firstAttribute="bottom" secondItem="PfZ-7x-LAR" secondAttribute="bottom" id="qcA-M9-NYS"/>
385 </constraints> 389 </constraints>
386 </view> 390 </view>
387 </subviews> 391 </subviews>
388 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 392 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
389 <constraints> 393 <constraints>
390 <constraint firstAttribute="bottom" secondItem="j5h-QD-Igf" secondAttribute="bottom" id="IsO-UX-w9t"/> 394 <constraint firstAttribute="bottom" secondItem="j5h-QD-Igf" secondAttribute="bottom" id="IsO-UX-w9t"/>
391 <constraint firstItem="j5h-QD-Igf" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Msr-oS-nFH"/> 395 <constraint firstItem="j5h-QD-Igf" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Msr-oS-nFH"/>
392 <constraint firstItem="BVs-KG-fDF" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Ohk-mJ-oCK"/> 396 <constraint firstItem="BVs-KG-fDF" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Ohk-mJ-oCK"/>
393 <constraint firstItem="UwA-5Q-gdv" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Pue-sC-wfB"/> 397 <constraint firstItem="UwA-5Q-gdv" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Pue-sC-wfB"/>
394 <constraint firstAttribute="height" constant="35" id="WDe-uC-4Qb"/> 398 <constraint firstAttribute="height" constant="35" id="WDe-uC-4Qb"/>
395 <constraint firstItem="BVs-KG-fDF" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="trailing" id="f8Q-F0-hjc"/> 399 <constraint firstItem="BVs-KG-fDF" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="trailing" id="f8Q-F0-hjc"/>
396 <constraint firstItem="BVs-KG-fDF" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="fdz-YH-1kJ"/> 400 <constraint firstItem="BVs-KG-fDF" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="fdz-YH-1kJ"/>
397 <constraint firstAttribute="bottom" secondItem="UwA-5Q-gdv" secondAttribute="bottom" id="gxD-wy-TgL"/> 401 <constraint firstAttribute="bottom" secondItem="UwA-5Q-gdv" secondAttribute="bottom" id="gxD-wy-TgL"/>
398 <constraint firstItem="j5h-QD-Igf" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="i3o-n4-fZN"/> 402 <constraint firstItem="j5h-QD-Igf" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="i3o-n4-fZN"/>
399 <constraint firstAttribute="trailing" secondItem="j5h-QD-Igf" secondAttribute="trailing" id="nT6-nS-H9z"/> 403 <constraint firstAttribute="trailing" secondItem="j5h-QD-Igf" secondAttribute="trailing" id="nT6-nS-H9z"/>
400 <constraint firstAttribute="bottom" secondItem="BVs-KG-fDF" secondAttribute="bottom" id="nqB-N3-F3F"/> 404 <constraint firstAttribute="bottom" secondItem="BVs-KG-fDF" secondAttribute="bottom" id="nqB-N3-F3F"/>
401 <constraint firstItem="UwA-5Q-gdv" firstAttribute="leading" secondItem="iEh-Ze-suq" secondAttribute="leading" id="oV9-IH-tYC"/> 405 <constraint firstItem="UwA-5Q-gdv" firstAttribute="leading" secondItem="iEh-Ze-suq" secondAttribute="leading" id="oV9-IH-tYC"/>
402 <constraint firstItem="j5h-QD-Igf" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="trailing" id="zOb-WE-3CI"/> 406 <constraint firstItem="j5h-QD-Igf" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="trailing" id="zOb-WE-3CI"/>
403 </constraints> 407 </constraints>
404 </view> 408 </view>
405 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VqD-Y3-cYQ" customClass="BarChartView" customModule="Charts"> 409 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VqD-Y3-cYQ" customClass="BarChartView" customModule="Charts">
406 <rect key="frame" x="0.0" y="201" width="375" height="100"/> 410 <rect key="frame" x="0.0" y="201" width="375" height="100"/>
407 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 411 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
408 <constraints> 412 <constraints>
409 <constraint firstAttribute="height" constant="100" id="aQR-hf-MhR"/> 413 <constraint firstAttribute="height" constant="100" id="aQR-hf-MhR"/>
410 </constraints> 414 </constraints>
411 </view> 415 </view>
412 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iw2-nW-e7g" customClass="CollectionView"> 416 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iw2-nW-e7g" customClass="CollectionView">
413 <rect key="frame" x="20" y="316" width="335" height="50"/> 417 <rect key="frame" x="20" y="316" width="335" height="50"/>
414 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 418 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
415 <constraints> 419 <constraints>
416 <constraint firstAttribute="height" constant="50" id="Yzh-hD-r0n"/> 420 <constraint firstAttribute="height" constant="50" id="Yzh-hD-r0n"/>
417 </constraints> 421 </constraints>
418 </view> 422 </view>
419 </subviews> 423 </subviews>
420 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 424 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
421 <constraints> 425 <constraints>
422 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="bottom" constant="8" id="0BA-6p-JLT"/> 426 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="bottom" constant="8" id="0BA-6p-JLT"/>
423 <constraint firstItem="Iw2-nW-e7g" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="2lH-sF-Mp0"/> 427 <constraint firstItem="Iw2-nW-e7g" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="2lH-sF-Mp0"/>
424 <constraint firstItem="iEh-Ze-suq" firstAttribute="top" secondItem="4ix-HE-d9T" secondAttribute="bottom" constant="8" id="9Sm-IQ-feL"/> 428 <constraint firstItem="iEh-Ze-suq" firstAttribute="top" secondItem="4ix-HE-d9T" secondAttribute="bottom" constant="8" id="9Sm-IQ-feL"/>
425 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" id="Gbd-bD-rFf"/> 429 <constraint firstItem="VqD-Y3-cYQ" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" id="Gbd-bD-rFf"/>
426 <constraint firstItem="4ix-HE-d9T" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="JyQ-KD-MhR"/> 430 <constraint firstItem="4ix-HE-d9T" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="JyQ-KD-MhR"/>
427 <constraint firstAttribute="trailing" secondItem="iEh-Ze-suq" secondAttribute="trailing" constant="20" id="RcZ-yN-56e"/> 431 <constraint firstAttribute="trailing" secondItem="iEh-Ze-suq" secondAttribute="trailing" constant="20" id="RcZ-yN-56e"/>
428 <constraint firstAttribute="trailing" secondItem="Iw2-nW-e7g" secondAttribute="trailing" constant="20" id="Xso-Or-Fgf"/> 432 <constraint firstAttribute="trailing" secondItem="Iw2-nW-e7g" secondAttribute="trailing" constant="20" id="Xso-Or-Fgf"/>
429 <constraint firstItem="Kzk-mN-AOf" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="YzU-Mb-veC"/> 433 <constraint firstItem="Kzk-mN-AOf" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="YzU-Mb-veC"/>
430 <constraint firstAttribute="trailing" secondItem="4ix-HE-d9T" secondAttribute="trailing" constant="8" id="del-xz-Tos"/> 434 <constraint firstAttribute="trailing" secondItem="4ix-HE-d9T" secondAttribute="trailing" constant="8" id="del-xz-Tos"/>
431 <constraint firstItem="4ix-HE-d9T" firstAttribute="height" secondItem="Kzk-mN-AOf" secondAttribute="height" id="duV-wT-9wp"/> 435 <constraint firstItem="4ix-HE-d9T" firstAttribute="height" secondItem="Kzk-mN-AOf" secondAttribute="height" id="duV-wT-9wp"/>
432 <constraint firstItem="Iw2-nW-e7g" firstAttribute="top" secondItem="VqD-Y3-cYQ" secondAttribute="bottom" constant="15" id="ekR-kS-L5v"/> 436 <constraint firstItem="Iw2-nW-e7g" firstAttribute="top" secondItem="VqD-Y3-cYQ" secondAttribute="bottom" constant="15" id="ekR-kS-L5v"/>
433 <constraint firstItem="Kzk-mN-AOf" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="hFq-WM-gLq"/> 437 <constraint firstItem="Kzk-mN-AOf" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="hFq-WM-gLq"/>
434 <constraint firstItem="4ix-HE-d9T" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="trailing" constant="8" id="hzO-hA-cNG"/> 438 <constraint firstItem="4ix-HE-d9T" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="trailing" constant="8" id="hzO-hA-cNG"/>
435 <constraint firstAttribute="trailing" secondItem="VqD-Y3-cYQ" secondAttribute="trailing" id="ptF-2O-CNR"/> 439 <constraint firstAttribute="trailing" secondItem="VqD-Y3-cYQ" secondAttribute="trailing" id="ptF-2O-CNR"/>
436 <constraint firstItem="iEh-Ze-suq" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="u5o-P4-qkL"/> 440 <constraint firstItem="iEh-Ze-suq" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="u5o-P4-qkL"/>
437 </constraints> 441 </constraints>
438 </view> 442 </view>
439 </subviews> 443 </subviews>
440 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 444 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
441 <constraints> 445 <constraints>
442 <constraint firstItem="Cam-ML-IEO" firstAttribute="centerY" secondItem="rey-N3-l8b" secondAttribute="centerY" id="0WD-1q-SWm"/> 446 <constraint firstItem="Cam-ML-IEO" firstAttribute="centerY" secondItem="rey-N3-l8b" secondAttribute="centerY" id="0WD-1q-SWm"/>
443 <constraint firstItem="Cam-ML-IEO" firstAttribute="width" secondItem="rey-N3-l8b" secondAttribute="width" id="LbF-3h-cxa"/> 447 <constraint firstItem="Cam-ML-IEO" firstAttribute="width" secondItem="rey-N3-l8b" secondAttribute="width" id="LbF-3h-cxa"/>
444 <constraint firstAttribute="trailing" secondItem="Cam-ML-IEO" secondAttribute="trailing" id="UHb-6d-wF8"/> 448 <constraint firstAttribute="trailing" secondItem="Cam-ML-IEO" secondAttribute="trailing" id="UHb-6d-wF8"/>
445 <constraint firstItem="Cam-ML-IEO" firstAttribute="leading" secondItem="rey-N3-l8b" secondAttribute="leading" id="Y4U-kD-V28"/> 449 <constraint firstItem="Cam-ML-IEO" firstAttribute="leading" secondItem="rey-N3-l8b" secondAttribute="leading" id="Y4U-kD-V28"/>
446 <constraint firstItem="Cam-ML-IEO" firstAttribute="top" secondItem="rey-N3-l8b" secondAttribute="top" id="ohS-iH-IIM"/> 450 <constraint firstItem="Cam-ML-IEO" firstAttribute="top" secondItem="rey-N3-l8b" secondAttribute="top" id="ohS-iH-IIM"/>
447 <constraint firstAttribute="bottom" secondItem="Cam-ML-IEO" secondAttribute="bottom" id="th8-dH-zv1"/> 451 <constraint firstAttribute="bottom" secondItem="Cam-ML-IEO" secondAttribute="bottom" id="th8-dH-zv1"/>
448 </constraints> 452 </constraints>
449 <connections> 453 <connections>
450 <outlet property="delegate" destination="-1" id="3Fl-Qy-gjm"/> 454 <outlet property="delegate" destination="-1" id="3Fl-Qy-gjm"/>
451 </connections> 455 </connections>
452 </scrollView> 456 </scrollView>
453 </subviews> 457 </subviews>
454 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 458 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
455 <constraints> 459 <constraints>
456 <constraint firstAttribute="trailing" secondItem="FXQ-4O-sRc" secondAttribute="trailing" constant="5" id="5y0-NC-rHp"/> 460 <constraint firstAttribute="trailing" secondItem="FXQ-4O-sRc" secondAttribute="trailing" constant="5" id="5y0-NC-rHp"/>
457 <constraint firstItem="FXQ-4O-sRc" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" constant="5" id="C0U-21-SKl"/> 461 <constraint firstItem="FXQ-4O-sRc" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" constant="5" id="C0U-21-SKl"/>
458 <constraint firstItem="FXQ-4O-sRc" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="CB0-VD-h5m"/> 462 <constraint firstItem="FXQ-4O-sRc" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="CB0-VD-h5m"/>
459 <constraint firstAttribute="bottom" secondItem="FXQ-4O-sRc" secondAttribute="bottom" id="FbP-FY-h1E"/> 463 <constraint firstAttribute="bottom" secondItem="FXQ-4O-sRc" secondAttribute="bottom" id="FbP-FY-h1E"/>
460 <constraint firstAttribute="trailing" secondItem="rey-N3-l8b" secondAttribute="trailing" id="KFD-f5-xci"/> 464 <constraint firstAttribute="trailing" secondItem="rey-N3-l8b" secondAttribute="trailing" id="KFD-f5-xci"/>
461 <constraint firstItem="rey-N3-l8b" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="SpB-31-H3a"/> 465 <constraint firstItem="rey-N3-l8b" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="SpB-31-H3a"/>
462 <constraint firstItem="rey-N3-l8b" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" id="YvS-I2-8Dg"/> 466 <constraint firstItem="rey-N3-l8b" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" id="YvS-I2-8Dg"/>
463 <constraint firstAttribute="bottom" secondItem="rey-N3-l8b" secondAttribute="bottom" id="enX-7g-Eib"/> 467 <constraint firstAttribute="bottom" secondItem="rey-N3-l8b" secondAttribute="bottom" id="enX-7g-Eib"/>
464 </constraints> 468 </constraints>
465 <connections> 469 <connections>
466 <outletCollection property="gestureRecognizers" destination="Qjg-St-rCc" appends="YES" id="egt-sX-aBC"/> 470 <outletCollection property="gestureRecognizers" destination="Qjg-St-rCc" appends="YES" id="egt-sX-aBC"/>
467 <outletCollection property="gestureRecognizers" destination="VSZ-i0-Jhb" appends="YES" id="UKr-c3-9pp"/> 471 <outletCollection property="gestureRecognizers" destination="VSZ-i0-Jhb" appends="YES" id="UKr-c3-9pp"/>
468 </connections> 472 </connections>
469 </view> 473 </view>
470 </subviews> 474 </subviews>
471 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 475 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
472 <gestureRecognizers/> 476 <gestureRecognizers/>
473 <constraints> 477 <constraints>
474 <constraint firstAttribute="trailing" secondItem="Cf1-lP-zbB" secondAttribute="trailing" constant="10" id="20C-UL-MCu"/> 478 <constraint firstAttribute="trailing" secondItem="Cf1-lP-zbB" secondAttribute="trailing" constant="10" id="20C-UL-MCu"/>
475 <constraint firstItem="clL-JG-rbd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3tf-ab-v41"/> 479 <constraint firstItem="clL-JG-rbd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3tf-ab-v41"/>
476 <constraint firstItem="Cf1-lP-zbB" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="bottom" id="5vy-x5-G38"/> 480 <constraint firstItem="Cf1-lP-zbB" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="bottom" id="5vy-x5-G38"/>
477 <constraint firstItem="Cf1-lP-zbB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="974-wJ-aRb"/> 481 <constraint firstItem="Cf1-lP-zbB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="974-wJ-aRb"/>
482 <constraint firstItem="3GJ-xw-Zoa" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="HBx-Na-cDr"/>
478 <constraint firstItem="yxY-4d-tB6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="2" id="Jqg-nE-6dv"/> 483 <constraint firstItem="yxY-4d-tB6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="2" id="Jqg-nE-6dv"/>
479 <constraint firstAttribute="trailing" secondItem="BVv-qD-EHM" secondAttribute="trailing" id="MCi-Tl-hSp"/> 484 <constraint firstAttribute="trailing" secondItem="BVv-qD-EHM" secondAttribute="trailing" id="MCi-Tl-hSp"/>
485 <constraint firstAttribute="trailing" secondItem="3GJ-xw-Zoa" secondAttribute="trailing" id="Moq-8p-WQZ"/>
480 <constraint firstAttribute="trailing" secondItem="yxY-4d-tB6" secondAttribute="trailing" constant="2" id="Qs5-ky-nmB"/> 486 <constraint firstAttribute="trailing" secondItem="yxY-4d-tB6" secondAttribute="trailing" constant="2" id="Qs5-ky-nmB"/>
481 <constraint firstAttribute="bottom" secondItem="BVv-qD-EHM" secondAttribute="bottom" constant="50" placeholder="YES" id="SbT-PG-8MJ"/> 487 <constraint firstAttribute="bottom" secondItem="BVv-qD-EHM" secondAttribute="bottom" constant="50" placeholder="YES" id="SbT-PG-8MJ"/>
482 <constraint firstItem="BVv-qD-EHM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="SqH-AA-Z2K"/> 488 <constraint firstItem="BVv-qD-EHM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="SqH-AA-Z2K"/>
489 <constraint firstItem="3GJ-xw-Zoa" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="bcl-n4-1Vp"/>
483 <constraint firstItem="FLa-rV-Aas" firstAttribute="top" secondItem="yxY-4d-tB6" secondAttribute="bottom" constant="15" id="cWw-RX-1Kp"/> 490 <constraint firstItem="FLa-rV-Aas" firstAttribute="top" secondItem="yxY-4d-tB6" secondAttribute="bottom" constant="15" id="cWw-RX-1Kp"/>
484 <constraint firstItem="yxY-4d-tB6" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="bottom" constant="15" id="dSN-ey-gQ7"/> 491 <constraint firstItem="yxY-4d-tB6" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="bottom" constant="15" id="dSN-ey-gQ7"/>
485 <constraint firstItem="clL-JG-rbd" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="i5Z-XR-Msb"/> 492 <constraint firstItem="clL-JG-rbd" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="i5Z-XR-Msb"/>
486 <constraint firstItem="FLa-rV-Aas" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iiN-Zj-1uu"/> 493 <constraint firstItem="FLa-rV-Aas" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iiN-Zj-1uu"/>
487 <constraint firstAttribute="trailing" secondItem="FLa-rV-Aas" secondAttribute="trailing" id="jme-cz-cFt"/> 494 <constraint firstAttribute="trailing" secondItem="FLa-rV-Aas" secondAttribute="trailing" id="jme-cz-cFt"/>
488 <constraint firstItem="BVv-qD-EHM" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="bottom" constant="5" id="qbT-yT-phN"/> 495 <constraint firstItem="BVv-qD-EHM" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="bottom" constant="5" id="qbT-yT-phN"/>
489 <constraint firstAttribute="trailing" secondItem="clL-JG-rbd" secondAttribute="trailing" id="ri5-LG-xJH"/> 496 <constraint firstAttribute="trailing" secondItem="clL-JG-rbd" secondAttribute="trailing" id="ri5-LG-xJH"/>
497 <constraint firstAttribute="bottom" secondItem="3GJ-xw-Zoa" secondAttribute="bottom" id="uCd-co-Zew"/>
490 </constraints> 498 </constraints>
491 <point key="canvasLocation" x="26.5" y="52.5"/> 499 <point key="canvasLocation" x="26.5" y="52.5"/>
492 </view> 500 </view>
493 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="left" id="Qjg-St-rCc"> 501 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="left" id="Qjg-St-rCc">
494 <connections> 502 <connections>
495 <action selector="swipeAction:" destination="-1" id="2Vl-bM-Ta7"/> 503 <action selector="swipeAction:" destination="-1" id="2Vl-bM-Ta7"/>
496 </connections> 504 </connections>
497 </swipeGestureRecognizer> 505 </swipeGestureRecognizer>
498 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="right" id="VSZ-i0-Jhb"> 506 <swipeGestureRecognizer cancelsTouchesInView="NO" direction="right" id="VSZ-i0-Jhb">
499 <connections> 507 <connections>
500 <action selector="swipeAction:" destination="-1" id="hoY-6M-DoS"/> 508 <action selector="swipeAction:" destination="-1" id="hoY-6M-DoS"/>
501 </connections> 509 </connections>
502 </swipeGestureRecognizer> 510 </swipeGestureRecognizer>
503 </objects> 511 </objects>
504 <resources> 512 <resources>
505 <image name="arrow_back" width="22" height="22"/> 513 <image name="arrow_back" width="22" height="22"/>
506 <image name="arrow_next" width="22" height="22"/> 514 <image name="arrow_next" width="22" height="22"/>
515 <image name="background" width="1563" height="2778"/>
507 <image name="icon_menu" width="30" height="30"/> 516 <image name="icon_menu" width="30" height="30"/>
508 <image name="today_back_button" width="73" height="37"/> 517 <image name="today_back_button" width="73" height="37"/>
509 </resources> 518 </resources>
510 </document> 519 </document>
511 520
LifeLog/LifeLog/HomeViewConb troller.m
1 // File was deleted
2 // HomeViewController.m
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "HomeViewController.h"
10 #import "NSDate+helper.h"
11 #import <CoreMotion/CoreMotion.h>
12 #import "CMMotionActivityExtra.h"
13 #import "TodayViewController.h"
14 #import "Utilities.h"
15 #import <MBProgressHUD/MBProgressHUD.h>
16 #import "ServerAPI.h"
17
18 static NSInteger maxRequest = 20;
19 static NSInteger numberTotal = 10000;
20
21 @interface HomeViewController ()
22 {
23 MBProgressHUD *progressHud;
24 NSInteger targetStep;
25 }
26 @property (nonatomic, weak) IBOutlet UILabel *lblTitle;
27 @property (nonatomic, weak) IBOutlet UIImageView *avatar;
28 @property (nonatomic, weak) IBOutlet UILabel *lblDateCurrent;
29 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep;
30 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep;
31 @property (nonatomic, weak) IBOutlet UILabel *lblValueStepOther;
32 @property (nonatomic, weak) IBOutlet UILabel *lblPercent;
33 @property (nonatomic, weak) IBOutlet UILabel *lblNotice;
34 @property (weak, nonatomic) IBOutlet UISegmentedControl *segmentHome;
35 @property (weak, nonatomic) IBOutlet UITextView *tvNotice;
36
37 @property (nonatomic, strong) CMPedometer *pedometer;
38 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager;
39 @property (nonatomic, strong) NSOperationQueue *operationQueue;
40 @property (nonatomic, strong) NSTimer *timer;
41 @property (nonatomic, assign) NSInteger bike;
42 @property (nonatomic, assign) NSInteger walking;
43 @property (nonatomic, assign) NSInteger running;
44 @property (nonatomic, strong) NSDate *dateCurrent;
45
46 @property (nonatomic, assign) int totalRequest;
47 @property (nonatomic, assign) int countComplete;
48 @property (nonatomic, assign) int currentIndex;
49
50 @end
51
52 @implementation HomeViewController
53
54 - (void)viewDidLoad {
55 [super viewDidLoad];
56
57 self.lblTitle.text = NSLocalizedString(@"lifelog.home.title", nil);
58
59 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.lblTitle attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
60 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.segmentHome attribute:NSLayoutAttributeBottom multiplier:1 constant:20]];
61
62 self.avatar.backgroundColor = [UIColor whiteColor];
63 self.avatar.layer.borderWidth = 2.0f;
64 self.avatar.layer.borderColor = [[UIColor whiteColor] CGColor];
65 self.avatar.layer.cornerRadius = self.avatar.frame.size.width/2.0f;
66 self.avatar.layer.masksToBounds = YES;
67 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
68 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
69 if (user != nil) {
70 NSString *linkImage = [NSString stringWithFormat:@"%@%@", kServerAddress, user.profile_image];
71 NSURL *urlImage = [NSURL URLWithString:linkImage];
72 NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
73 sessionConfig.timeoutIntervalForRequest = 30.0;
74 sessionConfig.timeoutIntervalForResource = 60.0;
75 sessionConfig.HTTPMaximumConnectionsPerHost = 20;
76 sessionConfig.allowsCellularAccess = YES;
77 HomeViewController __weak *weakSelf = self;
78 NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
79 NSURLSessionDataTask *downloadPhotoTask = [session
80 dataTaskWithURL:urlImage completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
81 if (weakSelf == nil)
82 {
83 return;
84 }
85 if (error == nil) {
86 UIImage *image = [[UIImage alloc] initWithData:data];
87 [[NSOperationQueue mainQueue] addOperationWithBlock:^{
88 weakSelf.avatar.image = image;
89 }];
90 }
91 }];
92 [downloadPhotoTask resume];
93 }
94
95 self.lblNotice.text = NSLocalizedString(@"lifelog.home.notice", nil);
96
97 _dateCurrent = [NSDate date];
98 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
99
100 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil);
101
102 if ([CMPedometer isStepCountingAvailable]) {
103 _pedometer = [[CMPedometer alloc] init];
104 }
105 if ([CMMotionActivityManager isActivityAvailable]) {
106 _motionActivityManager = [[CMMotionActivityManager alloc] init];
107 }
108 _operationQueue = [[NSOperationQueue alloc] init];
109 _bike = 0;
110 _walking = 0;
111 _running = 0;
112 _segmentHome.selectedSegmentIndex = 1;
113 _totalRequest = 0;
114 _countComplete = 0;
115
116 progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
117 progressHud.mode = MBProgressHUDModeIndeterminate;
118 progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil);
119 // [self saveDataStep7LastDay];
120 targetStep = numberTotal;
121 [self requestNotice];
122 }
123
124 - (void)requestNotice
125 {
126 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
127 [dateFormatter setDateFormat:@"yyyy-MM-dd"];
128 NSString *dateString = [dateFormatter stringFromDate:_dateCurrent];
129 HomeViewController __weak *weakSelf = self;
130 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
131 //Do background work
132 [[ServerAPI server] getNoticeByDate:dateString CompletionHandler:^(NSArray *arrResults, NSError *error) {
133 if(weakSelf == nil) {
134 return ;
135 }
136 if (error == nil) {
137 // NSLog(@"List Notices: %@", arrResults);
138 dispatch_async(dispatch_get_main_queue(), ^{
139 NSString *stringNotice = @"";
140 for (NSString *noticeInfor in arrResults) {
141 NSString *noticeString = [NSString stringWithFormat:@"%@\n", noticeInfor];
142 stringNotice = [stringNotice stringByAppendingString:noticeString];
143 }
144 weakSelf.tvNotice.text = stringNotice;
145 });
146 }
147 else {
148 dispatch_async(dispatch_get_main_queue(), ^{
149 weakSelf.tvNotice.text = @"";
150 /*
151 NSString *message = [error.userInfo objectForKey:@"message"];
152 [Utilities showErrorMessage:message withViewController:weakSelf];
153 */
154 });
155 }
156 }];
157 });
158 }
159
160 - (void)viewWillAppear:(BOOL)animated {
161 [super viewWillAppear:animated];
162 NSDate *dateNow = [NSDate date];
163 [self saveStepForDay:dateNow];
164 }
165
166 - (void)requestTopByDate:(NSDate *)date {
167 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
168 [dateFormatter setDateFormat:@"yyyy-MM-dd"];
169 NSString *dateString = [dateFormatter stringFromDate:date];
170 [progressHud showAnimated:YES];
171 [progressHud setHidden:NO];
172 HomeViewController __weak *weakSelf = self;
173 int mode = 1;
174 switch (_segmentHome.selectedSegmentIndex) {
175 case 0:
176 mode = 3;
177 break;
178
179 case 1:
180 mode = 1;
181 break;
182
183 case 2:
184 mode = 2;
185 break;
186
187 default:
188 break;
189 }
190 [[ServerAPI server] requestTopWithMode:mode andDate:dateString CompletionHandler:^(TopObject *topObject, NSError *error) {
191 if(weakSelf == nil) {
192 return ;
193 }
194 if (error == nil) {
195 NSLog(@"TopObject: %@", topObject);
196 dispatch_async(dispatch_get_main_queue(), ^{
197 [weakSelf updateStepUI:topObject.targetInfor];
198 });
199 }
200 else {
201 dispatch_async(dispatch_get_main_queue(), ^{
202 NSString *message = [error.userInfo objectForKey:@"message"];
203 [Utilities showErrorMessage:message withViewController:weakSelf];
204 });
205 }
206 dispatch_async(dispatch_get_main_queue(), ^{
207 [progressHud setHidden:YES];
208 });
209 }];
210 /*
211 [[ServerAPI server] requestHomeWithMode:mode andDate:dateString CompletionHandler:^(HomeObject *homeObject, NSError *error) {
212 if(weakSelf == nil) {
213 return ;
214 }
215 if (error == nil) {
216 NSLog(@"List Notices: %@", homeObject.listNotice);
217 for (NoticeInfor *noticeInfor in homeObject.listNotice) {
218 NSLog(@"noticeInfor: %@", noticeInfor.notice_content);
219 }
220 dispatch_async(dispatch_get_main_queue(), ^{
221 [weakSelf updateNoticeUI:homeObject];
222 });
223 }
224 else {
225 dispatch_async(dispatch_get_main_queue(), ^{
226 NSString *message = [error.userInfo objectForKey:@"message"];
227 [Utilities showErrorMessage:message withViewController:weakSelf];
228 });
229 }
230 dispatch_async(dispatch_get_main_queue(), ^{
231 [progressHud setHidden:YES];
232 });
233 }];
234 */
235 }
236
237 - (void)viewWillDisappear:(BOOL)animated {
238 [super viewWillDisappear:animated];
239 }
240
241 - (void)didReceiveMemoryWarning {
242 [super didReceiveMemoryWarning];
243 // Dispose of any resources that can be recreated.
244 }
245
246 #pragma mark - IBAction
247 - (IBAction)menuButtonTouchUpInside:(id)sender
248 {
249
250 }
251
252 - (IBAction)todayButtonTouchUpInside:(id)sender
253 {
254 TodayViewController *todayVC = [[TodayViewController alloc] initWithNibName:@"TodayViewController" bundle:nil];
255 todayVC.targetStep = targetStep;
256 [self.navigationController pushViewController:todayVC animated:YES];
257 }
258
259 - (IBAction)leftButtonTouchUpInside:(id)sender
260 {
261 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)];
262 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
263 [self resetStepUI];
264 [self saveStepForDay:self.dateCurrent];
265 [self requestNotice];
266 }
267
268 - (IBAction)rightButtonTouchUpInside:(id)sender
269 {
270 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60];
271 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
272 [self resetStepUI];
273 //[self saveStepForDay:self.dateCurrent];
274 [self requestTopByDate:self.dateCurrent];
275 [self requestNotice];
276 }
277
278 - (IBAction)segmentValueChange:(id)sender {
279 [self resetStepUI];
280 [self requestTopByDate:self.dateCurrent];
281 }
282
283 #pragma mark - Functions Private
284 - (void)saveStepForDay:(NSDate *)date
285 {
286 if ([CMMotionActivityManager isActivityAvailable] == YES) {
287 [progressHud showAnimated:YES];
288 [progressHud setHidden:NO];
289 self.bike = 0;
290 self.walking = 0;
291 self.running = 0;
292 NSDate *startDate = [date beginningAtMidnightOfDay];
293 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)];
294
295 HomeViewController __weak *weakSelf = self;
296 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.forDay", NULL);
297 dispatch_async(myQueue, ^{
298 if (weakSelf == nil) {
299 return ;
300 }
301
302 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
303 if (error || activities.count <= 0) {
304 dispatch_async(dispatch_get_main_queue(), ^{
305 [weakSelf updateStepUI];
306 });
307 return ;
308 }
309 // set EndDate
310 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
311 for (int i = 0; i < activities.count; i++) {
312 CMMotionActivity *activity = [activities objectAtIndex:i];
313 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init];
314 activityExtra.activity = activity;
315 if (i == activities.count - 1) {
316 activityExtra.endDate = endDate;
317 }
318 else {
319 CMMotionActivity *activityNext = [activities objectAtIndex:i+1];
320 // activityExtra.endDate = [activityNext.startDate dateByAddingTimeInterval:-1];
321 activityExtra.endDate = activityNext.startDate;
322 }
323 [arrayActivities addObject:activityExtra];
324 }
325 // PhongNV
326 weakSelf.currentIndex = 0;
327 [weakSelf save20objectOfActivityExtras:arrayActivities];
328 }];
329 });
330 }
331 else {
332 [self updateStepUI];
333 }
334 }
335
336 - (void)complete20Request:(NSArray *)activities {
337 if (self.totalRequest == self.countComplete) {
338 self.totalRequest = 0;
339 self.countComplete = 0;
340 self.currentIndex++;
341 [self save20objectOfActivityExtras:activities];
342 }
343 }
344 - (void)save20objectOfActivityExtras:(NSArray *)activities
345 {
346 int result = floor(activities.count / maxRequest);
347 if (activities.count <= 0 || self.currentIndex > result) {
348 self.totalRequest = 0;
349 self.countComplete = 0;
350 self.currentIndex = 0;
351 dispatch_async(dispatch_get_main_queue(), ^{
352 [self updateStepUI];
353 });
354 return;
355 }
356
357 HomeViewController __weak *weakSelf = self;
358 for (NSInteger index = self.currentIndex*maxRequest; index < self.currentIndex*maxRequest + maxRequest; index++) {
359 if ((self.currentIndex*maxRequest + maxRequest) >= activities.count) {
360 self.totalRequest = (int)(activities.count - self.currentIndex*maxRequest);
361 if (self.totalRequest <= 0) {
362 [weakSelf complete20Request:activities];
363 }
364 }
365 else {
366 self.totalRequest = (int)maxRequest;
367 }
368 if (index < activities.count) {
369 CMMotionActivityExtra *activityExtra = [activities objectAtIndex:index];
370 [self.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
371 if (weakSelf == nil) {
372 return ;
373 }
374 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
375 int mode = 1;
376 if (activityExtra.activity.cycling) {
377 mode = 3;
378 }
379 else if (activityExtra.activity.walking) {
380 mode = 1;
381 }
382 else if (activityExtra.activity.running) {
383 mode = 2;
384 }
385 else {
386 // unknown
387 }
388 // save step to server
389 if (numberStep > 0) {
390 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
391 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
392 NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate];
393 NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate];
394 // NSLog(@"dateBegin: %@ | dateEnd: %@ | numberStep: %li", dateBegin, dateEnd, numberStep);
395 [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) {
396 if (error) {
397 NSLog(@"Error: %@", error);
398 }
399 weakSelf.countComplete++;
400 [weakSelf complete20Request:activities];
401 }];
402 }
403 else {
404 weakSelf.countComplete++;
405 [weakSelf complete20Request:activities];
406 }
407 }];
408 }
409 }
410 }
411
412 - (void)updateStepUI
413 {
414 [self requestTopByDate:self.dateCurrent];
415 }
416
417 - (void)saveDataStep7LastDay
418 {
419 NSDate *dateNow = [NSDate date];
420 for (int index = 0; index < 7; index++) {
421 dateNow = [dateNow dateByAddingTimeInterval:-(24*60*60)];
422 [self saveStepByDate:dateNow];
423 }
424 }
425
426 - (void)saveStepByDate:(NSDate *)date
427 {
428 if ([CMMotionActivityManager isActivityAvailable]) {
429 NSDate *startDate = [date beginningAtMidnightOfDay];
430 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)];
431
432 HomeViewController __weak *weakSelf = self;
433 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.7lastday", NULL);
434 dispatch_async(myQueue, ^{
435 if (weakSelf == nil) {
436 return ;
437 }
438
439 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
440 if (error || activities.count <= 0) {
441 return ;
442 }
443 // set EndDate
444 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
445 for (int i = 0; i < activities.count; i++) {
446 CMMotionActivity *activity = [activities objectAtIndex:i];
447 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init];
448 activityExtra.activity = activity;
449 if (i == activities.count - 1) {
450 activityExtra.endDate = endDate;
451 }
452 else {
453 CMMotionActivity *activityNext = [activities objectAtIndex:i+1];
454 activityExtra.endDate = [activityNext.startDate dateByAddingTimeInterval:-1];
455 }
456 [arrayActivities addObject:activityExtra];
457 }
458
459 for (CMMotionActivityExtra *activityExtra in arrayActivities) {
460 [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
461 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
462 int mode = 1;
463 if (activityExtra.activity.cycling) {
464 mode = 3;
465 }
466 else if (activityExtra.activity.walking) {
467 mode = 1;
468 }
469 else if (activityExtra.activity.running) {
470 mode = 2;
471 }
472 else {
473 // unknown
474 }
475
476 // save step to server
477 if (numberStep > 0) {
478 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
479 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
480 NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate];
481 NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate];
482 [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) {
483 if (error) {
484 NSLog(@"Error: %@", error);
485 }
486 }];
487 }
488 }];
489 }
490 }];
491 });
492 }
493 }
494
495 - (void)updateStepUI:(TargetInfor *)targetInfor
496 {
497 NSString *stringTargetStep = [targetInfor.target_step stringByReplacingOccurrencesOfString:@"," withString:@""];
498 targetStep = [stringTargetStep integerValue];
499 self.lblValueStep.text = targetInfor.num_step;
500 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %@", NSLocalizedString(@"lifelog.today.remaining.other", nil), targetInfor.remaining_step];
501 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), [targetInfor.complete_percent intValue], NSLocalizedString(@"lifelog.today.percent", nil)];
502 }
503
504 - (void)updateNoticeUI:(HomeObject *)homeObject
505 {
506 NSString *stringNotice = @"";
507 for (NoticeInfor *notice in homeObject.listNotice) {
508 NSString *noticeString = [NSString stringWithFormat:@"%@\n", notice.notice_content];
509 stringNotice = [stringNotice stringByAppendingString:noticeString];
510 }
511 _tvNotice.text = stringNotice;
512 }
513
514 - (void)resetStepUI
515 {
516 self.lblValueStep.text = @"";
517 self.lblValueStepOther.text = @"";
518 self.lblPercent.text = @"";
519 }
520
521 @end
522 1 //
LifeLog/LifeLog/HomeViewController.m
File was created 1 //
2 // HomeViewController.m
3 // LifeLog
4 //
5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved.
7 //
8
9 #import "HomeViewController.h"
10 #import "NSDate+helper.h"
11 #import <CoreMotion/CoreMotion.h>
12 #import "CMMotionActivityExtra.h"
13 #import "TodayViewController.h"
14 #import "Utilities.h"
15 #import <MBProgressHUD/MBProgressHUD.h>
16 #import "ServerAPI.h"
17
18 static NSInteger maxRequest = 20;
19 static NSInteger numberTotal = 10000;
20
21 @interface HomeViewController ()
22 {
23 MBProgressHUD *progressHud;
24 NSInteger targetStep;
25 }
26 @property (nonatomic, weak) IBOutlet UILabel *lblTitle;
27 @property (nonatomic, weak) IBOutlet UIImageView *avatar;
28 @property (nonatomic, weak) IBOutlet UILabel *lblDateCurrent;
29 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep;
30 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep;
31 @property (nonatomic, weak) IBOutlet UILabel *lblValueStepOther;
32 @property (nonatomic, weak) IBOutlet UILabel *lblPercent;
33 @property (nonatomic, weak) IBOutlet UILabel *lblNotice;
34 @property (weak, nonatomic) IBOutlet UISegmentedControl *segmentHome;
35 @property (weak, nonatomic) IBOutlet UITextView *tvNotice;
36
37 @property (nonatomic, strong) CMPedometer *pedometer;
38 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager;
39 @property (nonatomic, strong) NSOperationQueue *operationQueue;
40 @property (nonatomic, strong) NSTimer *timer;
41 @property (nonatomic, assign) NSInteger bike;
42 @property (nonatomic, assign) NSInteger walking;
43 @property (nonatomic, assign) NSInteger running;
44 @property (nonatomic, strong) NSDate *dateCurrent;
45
46 @property (nonatomic, assign) int totalRequest;
47 @property (nonatomic, assign) int countComplete;
48 @property (nonatomic, assign) int currentIndex;
49
50 @end
51
52 @implementation HomeViewController
53
54 - (void)viewDidLoad {
55 [super viewDidLoad];
56
57 self.lblTitle.text = NSLocalizedString(@"lifelog.home.title", nil);
58
59 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.lblTitle attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
60 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.segmentHome attribute:NSLayoutAttributeBottom multiplier:1 constant:20]];
61
62 self.avatar.backgroundColor = [UIColor whiteColor];
63 self.avatar.layer.borderWidth = 2.0f;
64 self.avatar.layer.borderColor = [[UIColor whiteColor] CGColor];
65 self.avatar.layer.cornerRadius = self.avatar.frame.size.width/2.0f;
66 self.avatar.layer.masksToBounds = YES;
67 NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:kUser];
68 User *user = (User *)[NSKeyedUnarchiver unarchiveObjectWithData:data];
69 if (user != nil) {
70 NSString *linkImage = [NSString stringWithFormat:@"%@%@", kServerAddress, user.profile_image];
71 NSURL *urlImage = [NSURL URLWithString:linkImage];
72 NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
73 sessionConfig.timeoutIntervalForRequest = 30.0;
74 sessionConfig.timeoutIntervalForResource = 60.0;
75 sessionConfig.HTTPMaximumConnectionsPerHost = 20;
76 sessionConfig.allowsCellularAccess = YES;
77 HomeViewController __weak *weakSelf = self;
78 NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig];
79 NSURLSessionDataTask *downloadPhotoTask = [session
80 dataTaskWithURL:urlImage completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
81 if (weakSelf == nil)
82 {
83 return;
84 }
85 if (error == nil) {
86 UIImage *image = [[UIImage alloc] initWithData:data];
87 [[NSOperationQueue mainQueue] addOperationWithBlock:^{
88 weakSelf.avatar.image = image;
89 }];
90 }
91 }];
92 [downloadPhotoTask resume];
93 }
94
95 self.lblNotice.text = NSLocalizedString(@"lifelog.home.notice", nil);
96
97 _dateCurrent = [NSDate date];
98 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
99
100 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil);
101
102 if ([CMPedometer isStepCountingAvailable]) {
103 _pedometer = [[CMPedometer alloc] init];
104 }
105 if ([CMMotionActivityManager isActivityAvailable]) {
106 _motionActivityManager = [[CMMotionActivityManager alloc] init];
107 }
108 _operationQueue = [[NSOperationQueue alloc] init];
109 _bike = 0;
110 _walking = 0;
111 _running = 0;
112 _segmentHome.selectedSegmentIndex = 1;
113 _totalRequest = 0;
114 _countComplete = 0;
115
116 progressHud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
117 progressHud.mode = MBProgressHUDModeIndeterminate;
118 progressHud.detailsLabel.text = NSLocalizedString(@"lifelog.home.progressHud.title", nil);
119 // [self saveDataStep7LastDay];
120 targetStep = numberTotal;
121 [self requestNotice];
122 }
123
124 - (void)requestNotice
125 {
126 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
127 [dateFormatter setDateFormat:@"yyyy-MM-dd"];
128 NSString *dateString = [dateFormatter stringFromDate:_dateCurrent];
129 HomeViewController __weak *weakSelf = self;
130 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
131 //Do background work
132 [[ServerAPI server] getNoticeByDate:dateString CompletionHandler:^(NSArray *arrResults, NSError *error) {
133 if(weakSelf == nil) {
134 return ;
135 }
136 if (error == nil) {
137 // NSLog(@"List Notices: %@", arrResults);
138 dispatch_async(dispatch_get_main_queue(), ^{
139 NSString *stringNotice = @"";
140 for (NSString *noticeInfor in arrResults) {
141 NSString *noticeString = [NSString stringWithFormat:@"%@\n", noticeInfor];
142 stringNotice = [stringNotice stringByAppendingString:noticeString];
143 }
144 weakSelf.tvNotice.text = stringNotice;
145 });
146 }
147 else {
148 dispatch_async(dispatch_get_main_queue(), ^{
149 weakSelf.tvNotice.text = @"";
150 /*
151 NSString *message = [error.userInfo objectForKey:@"message"];
152 [Utilities showErrorMessage:message withViewController:weakSelf];
153 */
154 });
155 }
156 }];
157 });
158 }
159
160 - (void)viewWillAppear:(BOOL)animated {
161 [super viewWillAppear:animated];
162 NSDate *dateNow = [NSDate date];
163 [self saveStepForDay:dateNow];
164 }
165
166 - (void)requestTopByDate:(NSDate *)date {
167 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
168 [dateFormatter setDateFormat:@"yyyy-MM-dd"];
169 NSString *dateString = [dateFormatter stringFromDate:date];
170 [progressHud showAnimated:YES];
171 [progressHud setHidden:NO];
172 HomeViewController __weak *weakSelf = self;
173 int mode = 1;
174 switch (_segmentHome.selectedSegmentIndex) {
175 case 0:
176 mode = 3;
177 break;
178
179 case 1:
180 mode = 1;
181 break;
182
183 case 2:
184 mode = 2;
185 break;
186
187 default:
188 break;
189 }
190 [[ServerAPI server] requestTopWithMode:mode andDate:dateString CompletionHandler:^(TopObject *topObject, NSError *error) {
191 if(weakSelf == nil) {
192 return ;
193 }
194 if (error == nil) {
195 NSLog(@"TopObject: %@", topObject);
196 dispatch_async(dispatch_get_main_queue(), ^{
197 [weakSelf updateStepUI:topObject.targetInfor];
198 });
199 }
200 else {
201 dispatch_async(dispatch_get_main_queue(), ^{
202 NSString *message = [error.userInfo objectForKey:@"message"];
203 [Utilities showErrorMessage:message withViewController:weakSelf];
204 });
205 }
206 dispatch_async(dispatch_get_main_queue(), ^{
207 [progressHud setHidden:YES];
208 });
209 }];
210 /*
211 [[ServerAPI server] requestHomeWithMode:mode andDate:dateString CompletionHandler:^(HomeObject *homeObject, NSError *error) {
212 if(weakSelf == nil) {
213 return ;
214 }
215 if (error == nil) {
216 NSLog(@"List Notices: %@", homeObject.listNotice);
217 for (NoticeInfor *noticeInfor in homeObject.listNotice) {
218 NSLog(@"noticeInfor: %@", noticeInfor.notice_content);
219 }
220 dispatch_async(dispatch_get_main_queue(), ^{
221 [weakSelf updateNoticeUI:homeObject];
222 });
223 }
224 else {
225 dispatch_async(dispatch_get_main_queue(), ^{
226 NSString *message = [error.userInfo objectForKey:@"message"];
227 [Utilities showErrorMessage:message withViewController:weakSelf];
228 });
229 }
230 dispatch_async(dispatch_get_main_queue(), ^{
231 [progressHud setHidden:YES];
232 });
233 }];
234 */
235 }
236
237 - (void)viewWillDisappear:(BOOL)animated {
238 [super viewWillDisappear:animated];
239 }
240
241 - (void)didReceiveMemoryWarning {
242 [super didReceiveMemoryWarning];
243 // Dispose of any resources that can be recreated.
244 }
245
246 #pragma mark - IBAction
247 - (IBAction)menuButtonTouchUpInside:(id)sender
248 {
249
250 }
251
252 - (IBAction)todayButtonTouchUpInside:(id)sender
253 {
254 TodayViewController *todayVC = [[TodayViewController alloc] initWithNibName:@"TodayViewController" bundle:nil];
255 todayVC.targetStep = targetStep;
256 [self.navigationController pushViewController:todayVC animated:YES];
257 }
258
259 - (IBAction)leftButtonTouchUpInside:(id)sender
260 {
261 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:-(24*60*60)];
262 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
263 [self resetStepUI];
264 [self saveStepForDay:self.dateCurrent];
265 [self requestNotice];
266 }
267
268 - (IBAction)rightButtonTouchUpInside:(id)sender
269 {
270 self.dateCurrent = [self.dateCurrent dateByAddingTimeInterval:24*60*60];
271 self.lblDateCurrent.text = [NSString stringWithFormat:@"%ld%@%ld%@%ld%@", (long)[_dateCurrent getYear], NSLocalizedString(@"lifelog.common.year", nil), (long)[_dateCurrent getMonth], NSLocalizedString(@"lifelog.common.month", nil), (long)[_dateCurrent getDay], NSLocalizedString(@"lifelog.common.day", nil)];
272 [self resetStepUI];
273 //[self saveStepForDay:self.dateCurrent];
274 [self requestTopByDate:self.dateCurrent];
275 [self requestNotice];
276 }
277
278 - (IBAction)segmentValueChange:(id)sender {
279 [self resetStepUI];
280 [self requestTopByDate:self.dateCurrent];
281 }
282
283 #pragma mark - Functions Private
284 - (void)saveStepForDay:(NSDate *)date
285 {
286 if ([CMMotionActivityManager isActivityAvailable] == YES) {
287 [progressHud showAnimated:YES];
288 [progressHud setHidden:NO];
289 self.bike = 0;
290 self.walking = 0;
291 self.running = 0;
292 NSDate *startDate = [date beginningAtMidnightOfDay];
293 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)];
294
295 HomeViewController __weak *weakSelf = self;
296 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.forDay", NULL);
297 dispatch_async(myQueue, ^{
298 if (weakSelf == nil) {
299 return ;
300 }
301
302 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
303 if (error || activities.count <= 0) {
304 dispatch_async(dispatch_get_main_queue(), ^{
305 [weakSelf updateStepUI];
306 });
307 return ;
308 }
309 // set EndDate
310 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
311 for (int i = 0; i < activities.count; i++) {
312 CMMotionActivity *activity = [activities objectAtIndex:i];
313 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init];
314 activityExtra.activity = activity;
315 if (i == activities.count - 1) {
316 activityExtra.endDate = endDate;
317 }
318 else {
319 CMMotionActivity *activityNext = [activities objectAtIndex:i+1];
320 // activityExtra.endDate = [activityNext.startDate dateByAddingTimeInterval:-1];
321 activityExtra.endDate = activityNext.startDate;
322 }
323 [arrayActivities addObject:activityExtra];
324 }
325 // PhongNV
326 weakSelf.currentIndex = 0;
327 [weakSelf save20objectOfActivityExtras:arrayActivities];
328 }];
329 });
330 }
331 else {
332 [self updateStepUI];
333 }
334 }
335
336 - (void)complete20Request:(NSArray *)activities {
337 if (self.totalRequest == self.countComplete) {
338 self.totalRequest = 0;
339 self.countComplete = 0;
340 self.currentIndex++;
341 [self save20objectOfActivityExtras:activities];
342 }
343 }
344 - (void)save20objectOfActivityExtras:(NSArray *)activities
345 {
346 int result = floor(activities.count / maxRequest);
347 if (activities.count <= 0 || self.currentIndex > result) {
348 self.totalRequest = 0;
349 self.countComplete = 0;
350 self.currentIndex = 0;
351 dispatch_async(dispatch_get_main_queue(), ^{
352 [self updateStepUI];
353 });
354 return;
355 }
356
357 HomeViewController __weak *weakSelf = self;
358 for (NSInteger index = self.currentIndex*maxRequest; index < self.currentIndex*maxRequest + maxRequest; index++) {
359 if ((self.currentIndex*maxRequest + maxRequest) >= activities.count) {
360 self.totalRequest = (int)(activities.count - self.currentIndex*maxRequest);
361 if (self.totalRequest <= 0) {
362 [weakSelf complete20Request:activities];
363 }
364 }
365 else {
366 self.totalRequest = (int)maxRequest;
367 }
368 if (index < activities.count) {
369 CMMotionActivityExtra *activityExtra = [activities objectAtIndex:index];
370 [self.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
371 if (weakSelf == nil) {
372 return ;
373 }
374 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
375 int mode = 1;
376 if (activityExtra.activity.cycling) {
377 mode = 3;
378 }
379 else if (activityExtra.activity.walking) {
380 mode = 1;
381 }
382 else if (activityExtra.activity.running) {
383 mode = 2;
384 }
385 else {
386 // unknown
387 }
388 // save step to server
389 if (numberStep > 0) {
390 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
391 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
392 NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate];
393 NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate];
394 // NSLog(@"dateBegin: %@ | dateEnd: %@ | numberStep: %li", dateBegin, dateEnd, numberStep);
395 [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) {
396 if (error) {
397 NSLog(@"Error: %@", error);
398 }
399 weakSelf.countComplete++;
400 [weakSelf complete20Request:activities];
401 }];
402 }
403 else {
404 weakSelf.countComplete++;
405 [weakSelf complete20Request:activities];
406 }
407 }];
408 }
409 }
410 }
411
412 - (void)updateStepUI
413 {
414 [self requestTopByDate:self.dateCurrent];
415 }
416
417 - (void)saveDataStep7LastDay
418 {
419 NSDate *dateNow = [NSDate date];
420 for (int index = 0; index < 7; index++) {
421 dateNow = [dateNow dateByAddingTimeInterval:-(24*60*60)];
422 [self saveStepByDate:dateNow];
423 }
424 }
425
426 - (void)saveStepByDate:(NSDate *)date
427 {
428 if ([CMMotionActivityManager isActivityAvailable]) {
429 NSDate *startDate = [date beginningAtMidnightOfDay];
430 NSDate *endDate = [startDate dateByAddingTimeInterval:(24*60*60 - 1)];
431
432 HomeViewController __weak *weakSelf = self;
433 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog.7lastday", NULL);
434 dispatch_async(myQueue, ^{
435 if (weakSelf == nil) {
436 return ;
437 }
438
439 [weakSelf.motionActivityManager queryActivityStartingFromDate:startDate toDate:endDate toQueue:_operationQueue withHandler:^(NSArray<CMMotionActivity *> * _Nullable activities, NSError * _Nullable error) {
440 if (error || activities.count <= 0) {
441 return ;
442 }
443 // set EndDate
444 NSMutableArray *arrayActivities = [[NSMutableArray alloc] init];
445 for (int i = 0; i < activities.count; i++) {
446 CMMotionActivity *activity = [activities objectAtIndex:i];
447 CMMotionActivityExtra *activityExtra = [[CMMotionActivityExtra alloc] init];
448 activityExtra.activity = activity;
449 if (i == activities.count - 1) {
450 activityExtra.endDate = endDate;
451 }
452 else {
453 CMMotionActivity *activityNext = [activities objectAtIndex:i+1];
454 activityExtra.endDate = [activityNext.startDate dateByAddingTimeInterval:-1];
455 }
456 [arrayActivities addObject:activityExtra];
457 }
458
459 for (CMMotionActivityExtra *activityExtra in arrayActivities) {
460 [weakSelf.pedometer queryPedometerDataFromDate:activityExtra.activity.startDate toDate:activityExtra.endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
461 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
462 int mode = 1;
463 if (activityExtra.activity.cycling) {
464 mode = 3;
465 }
466 else if (activityExtra.activity.walking) {
467 mode = 1;
468 }
469 else if (activityExtra.activity.running) {
470 mode = 2;
471 }
472 else {
473 // unknown
474 }
475
476 // save step to server
477 if (numberStep > 0) {
478 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
479 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
480 NSString *dateBegin = [dateFormatter stringFromDate:activityExtra.activity.startDate];
481 NSString *dateEnd = [dateFormatter stringFromDate:activityExtra.endDate];
482 [[ServerAPI server] requestCreateLog:mode withStep:(int)numberStep startDate:dateBegin endDate:dateEnd CompletionHandler:^(NSError *error) {
483 if (error) {
484 NSLog(@"Error: %@", error);
485 }
486 }];
487 }
488 }];
489 }
490 }];
491 });
492 }
493 }
494
495 - (void)updateStepUI:(TargetInfor *)targetInfor
496 {
497 NSString *stringTargetStep = [targetInfor.target_step stringByReplacingOccurrencesOfString:@"," withString:@""];
498 targetStep = [stringTargetStep integerValue];
499 self.lblValueStep.text = targetInfor.num_step;
500 self.lblValueStepOther.text = [NSString stringWithFormat:@"%@ %@", NSLocalizedString(@"lifelog.today.remaining.other", nil), targetInfor.remaining_step];
501 self.lblPercent.text = [NSString stringWithFormat:@"%@ %i%@", NSLocalizedString(@"lifelog.today.text.percent", nil), [targetInfor.complete_percent intValue], NSLocalizedString(@"lifelog.today.percent", nil)];
502 }
503
504 - (void)updateNoticeUI:(HomeObject *)homeObject
505 {
506 NSString *stringNotice = @"";
507 for (NoticeInfor *notice in homeObject.listNotice) {
508 NSString *noticeString = [NSString stringWithFormat:@"%@\n", notice.notice_content];
509 stringNotice = [stringNotice stringByAppendingString:noticeString];
510 }
511 _tvNotice.text = stringNotice;
512 }
513
514 - (void)resetStepUI
515 {
516 self.lblValueStep.text = @"";
517 self.lblValueStepOther.text = @"";
518 self.lblPercent.text = @"";
519 }
520
521 @end
522
LifeLog/LifeLog/HomeViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <deployment identifier="iOS"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/> 8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11 </dependencies> 11 </dependencies>
12 <objects> 12 <objects>
13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HomeViewController"> 13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HomeViewController">
14 <connections> 14 <connections>
15 <outlet property="avatar" destination="J2A-tf-wH0" id="FdR-Zg-4ye"/> 15 <outlet property="avatar" destination="J2A-tf-wH0" id="FdR-Zg-4ye"/>
16 <outlet property="lblDateCurrent" destination="IaR-IO-4RA" id="nVS-KW-X4d"/> 16 <outlet property="lblDateCurrent" destination="IaR-IO-4RA" id="nVS-KW-X4d"/>
17 <outlet property="lblNotice" destination="lnt-4H-Ao8" id="aoM-JS-VHg"/> 17 <outlet property="lblNotice" destination="lnt-4H-Ao8" id="aoM-JS-VHg"/>
18 <outlet property="lblPercent" destination="DuE-Dh-nEe" id="Yz4-VO-P2h"/> 18 <outlet property="lblPercent" destination="DuE-Dh-nEe" id="Yz4-VO-P2h"/>
19 <outlet property="lblTitle" destination="u3S-9u-GMZ" id="7C6-gv-vPu"/> 19 <outlet property="lblTitle" destination="u3S-9u-GMZ" id="7C6-gv-vPu"/>
20 <outlet property="lblUnitStep" destination="wfu-aB-xXm" id="4Ms-pS-D2m"/> 20 <outlet property="lblUnitStep" destination="wfu-aB-xXm" id="4Ms-pS-D2m"/>
21 <outlet property="lblValueStep" destination="TUf-Tp-93t" id="qAh-fl-oW4"/> 21 <outlet property="lblValueStep" destination="TUf-Tp-93t" id="qAh-fl-oW4"/>
22 <outlet property="lblValueStepOther" destination="3Xj-IB-96h" id="yXj-HA-fDR"/> 22 <outlet property="lblValueStepOther" destination="3Xj-IB-96h" id="yXj-HA-fDR"/>
23 <outlet property="segmentHome" destination="ibb-Yl-iqu" id="lE6-pr-GgT"/> 23 <outlet property="segmentHome" destination="ibb-Yl-iqu" id="lE6-pr-GgT"/>
24 <outlet property="tvNotice" destination="kdD-rj-BtX" id="t6k-l8-l2N"/> 24 <outlet property="tvNotice" destination="kdD-rj-BtX" id="t6k-l8-l2N"/>
25 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 25 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
26 </connections> 26 </connections>
27 </placeholder> 27 </placeholder>
28 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 28 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
29 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 29 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
30 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 30 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
31 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 31 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
32 <subviews> 32 <subviews>
33 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="1z5-6l-aht">
34 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
35 </imageView>
33 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="HOME" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3S-9u-GMZ" userLabel="LabelTitle"> 36 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="HOME" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="u3S-9u-GMZ" userLabel="LabelTitle">
34 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 37 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
35 <color key="backgroundColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 38 <color key="backgroundColor" red="0.0" green="0.0" blue="0.2196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
36 <constraints> 39 <constraints>
37 <constraint firstAttribute="height" constant="44" id="8z2-GM-1iE"/> 40 <constraint firstAttribute="height" constant="44" id="8z2-GM-1iE"/>
38 </constraints> 41 </constraints>
39 <fontDescription key="fontDescription" type="system" pointSize="23"/> 42 <fontDescription key="fontDescription" type="system" pointSize="23"/>
40 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 43 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
41 <nil key="highlightedColor"/> 44 <nil key="highlightedColor"/>
42 </label> 45 </label>
43 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LPY-Zl-cOp" userLabel="ButtonMenu"> 46 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LPY-Zl-cOp" userLabel="ButtonMenu">
44 <rect key="frame" x="335" y="7" width="30" height="30"/> 47 <rect key="frame" x="335" y="7" width="30" height="30"/>
45 <constraints> 48 <constraints>
46 <constraint firstAttribute="width" constant="30" id="5Ve-P6-6G7"/> 49 <constraint firstAttribute="width" constant="30" id="5Ve-P6-6G7"/>
47 <constraint firstAttribute="width" secondItem="LPY-Zl-cOp" secondAttribute="height" multiplier="1:1" id="6V0-0o-71r"/> 50 <constraint firstAttribute="width" secondItem="LPY-Zl-cOp" secondAttribute="height" multiplier="1:1" id="6V0-0o-71r"/>
48 </constraints> 51 </constraints>
49 <state key="normal" image="icon_menu"/> 52 <state key="normal" image="icon_menu"/>
50 <connections> 53 <connections>
51 <action selector="menuButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="HrU-er-jwh"/> 54 <action selector="menuButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="HrU-er-jwh"/>
52 </connections> 55 </connections>
53 </button> 56 </button>
54 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="J2A-tf-wH0" userLabel="avatar"> 57 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="J2A-tf-wH0" userLabel="avatar">
55 <rect key="frame" x="8" y="54" width="80" height="80"/> 58 <rect key="frame" x="8" y="54" width="80" height="80"/>
56 <constraints> 59 <constraints>
57 <constraint firstAttribute="width" secondItem="J2A-tf-wH0" secondAttribute="height" multiplier="1:1" id="TVn-eB-Jhs"/> 60 <constraint firstAttribute="width" secondItem="J2A-tf-wH0" secondAttribute="height" multiplier="1:1" id="TVn-eB-Jhs"/>
58 <constraint firstAttribute="width" constant="80" id="YGa-LO-1Mu"/> 61 <constraint firstAttribute="width" constant="80" id="YGa-LO-1Mu"/>
59 </constraints> 62 </constraints>
60 </imageView> 63 </imageView>
61 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_left" translatesAutoresizingMaskIntoConstraints="NO" id="vRa-cr-YTe" userLabel="icon_left"> 64 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_left" translatesAutoresizingMaskIntoConstraints="NO" id="vRa-cr-YTe" userLabel="icon_left">
62 <rect key="frame" x="98" y="79" width="30" height="30"/> 65 <rect key="frame" x="98" y="79" width="30" height="30"/>
63 <constraints> 66 <constraints>
64 <constraint firstAttribute="width" constant="30" id="UZi-wZ-The"/> 67 <constraint firstAttribute="width" constant="30" id="UZi-wZ-The"/>
65 <constraint firstAttribute="width" secondItem="vRa-cr-YTe" secondAttribute="height" multiplier="1:1" id="itE-d2-PsT"/> 68 <constraint firstAttribute="width" secondItem="vRa-cr-YTe" secondAttribute="height" multiplier="1:1" id="itE-d2-PsT"/>
66 </constraints> 69 </constraints>
67 </imageView> 70 </imageView>
68 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b6V-Bi-4oz" userLabel="ButtonLeft"> 71 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b6V-Bi-4oz" userLabel="ButtonLeft">
69 <rect key="frame" x="88" y="69" width="50" height="50"/> 72 <rect key="frame" x="88" y="69" width="50" height="50"/>
70 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 73 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
71 <constraints> 74 <constraints>
72 <constraint firstAttribute="width" secondItem="b6V-Bi-4oz" secondAttribute="height" multiplier="1:1" id="GYG-2B-e1R"/> 75 <constraint firstAttribute="width" secondItem="b6V-Bi-4oz" secondAttribute="height" multiplier="1:1" id="GYG-2B-e1R"/>
73 <constraint firstAttribute="width" constant="50" id="bgQ-rD-KZD"/> 76 <constraint firstAttribute="width" constant="50" id="bgQ-rD-KZD"/>
74 </constraints> 77 </constraints>
75 <connections> 78 <connections>
76 <action selector="leftButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="Bzk-y5-Lre"/> 79 <action selector="leftButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="Bzk-y5-Lre"/>
77 </connections> 80 </connections>
78 </button> 81 </button>
79 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_right" translatesAutoresizingMaskIntoConstraints="NO" id="Low-8n-pqa" userLabel="icon_right"> 82 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_right" translatesAutoresizingMaskIntoConstraints="NO" id="Low-8n-pqa" userLabel="icon_right">
80 <rect key="frame" x="335" y="79" width="30" height="30"/> 83 <rect key="frame" x="335" y="79" width="30" height="30"/>
81 <constraints> 84 <constraints>
82 <constraint firstAttribute="width" constant="30" id="jTd-Xb-RdV"/> 85 <constraint firstAttribute="width" constant="30" id="jTd-Xb-RdV"/>
83 <constraint firstAttribute="width" secondItem="Low-8n-pqa" secondAttribute="height" multiplier="1:1" id="pft-kU-wDw"/> 86 <constraint firstAttribute="width" secondItem="Low-8n-pqa" secondAttribute="height" multiplier="1:1" id="pft-kU-wDw"/>
84 </constraints> 87 </constraints>
85 </imageView> 88 </imageView>
86 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="at8-co-gC4" userLabel="ButtonRight"> 89 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="at8-co-gC4" userLabel="ButtonRight">
87 <rect key="frame" x="325" y="69" width="50" height="50"/> 90 <rect key="frame" x="325" y="69" width="50" height="50"/>
88 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 91 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
89 <constraints> 92 <constraints>
90 <constraint firstAttribute="width" constant="50" id="dpm-ie-7c4"/> 93 <constraint firstAttribute="width" constant="50" id="dpm-ie-7c4"/>
91 <constraint firstAttribute="width" secondItem="at8-co-gC4" secondAttribute="height" multiplier="1:1" id="wDO-Tw-aYK"/> 94 <constraint firstAttribute="width" secondItem="at8-co-gC4" secondAttribute="height" multiplier="1:1" id="wDO-Tw-aYK"/>
92 </constraints> 95 </constraints>
93 <connections> 96 <connections>
94 <action selector="rightButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="0jR-UP-2ia"/> 97 <action selector="rightButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="0jR-UP-2ia"/>
95 </connections> 98 </connections>
96 </button> 99 </button>
97 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IaR-IO-4RA"> 100 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2017年1月1日" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IaR-IO-4RA">
98 <rect key="frame" x="136" y="79" width="191" height="30"/> 101 <rect key="frame" x="136" y="79" width="191" height="30"/>
99 <constraints> 102 <constraints>
100 <constraint firstAttribute="height" constant="30" id="MsO-aD-MZ3"/> 103 <constraint firstAttribute="height" constant="30" id="MsO-aD-MZ3"/>
101 </constraints> 104 </constraints>
102 <fontDescription key="fontDescription" type="system" pointSize="22"/> 105 <fontDescription key="fontDescription" type="system" pointSize="22"/>
103 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 106 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
104 <nil key="highlightedColor"/> 107 <nil key="highlightedColor"/>
105 </label> 108 </label>
106 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TUf-Tp-93t" userLabel="valueStep"> 109 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TUf-Tp-93t" userLabel="valueStep">
107 <rect key="frame" x="20" y="139" width="275" height="40"/> 110 <rect key="frame" x="20" y="139" width="275" height="40"/>
108 <constraints> 111 <constraints>
109 <constraint firstAttribute="height" constant="40" id="6Wd-CK-kPs"/> 112 <constraint firstAttribute="height" constant="40" id="6Wd-CK-kPs"/>
110 </constraints> 113 </constraints>
111 <fontDescription key="fontDescription" type="system" pointSize="45"/> 114 <fontDescription key="fontDescription" type="system" pointSize="45"/>
112 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 115 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
113 <nil key="highlightedColor"/> 116 <nil key="highlightedColor"/>
114 </label> 117 </label>
115 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wfu-aB-xXm" userLabel="unitStep"> 118 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wfu-aB-xXm" userLabel="unitStep">
116 <rect key="frame" x="305" y="149" width="50" height="30"/> 119 <rect key="frame" x="305" y="149" width="50" height="30"/>
117 <constraints> 120 <constraints>
118 <constraint firstAttribute="width" constant="50" id="oQw-JM-dmo"/> 121 <constraint firstAttribute="width" constant="50" id="oQw-JM-dmo"/>
119 <constraint firstAttribute="height" constant="30" id="pV2-7i-dZB"/> 122 <constraint firstAttribute="height" constant="30" id="pV2-7i-dZB"/>
120 </constraints> 123 </constraints>
121 <fontDescription key="fontDescription" type="system" pointSize="25"/> 124 <fontDescription key="fontDescription" type="system" pointSize="25"/>
122 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 125 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
123 <nil key="highlightedColor"/> 126 <nil key="highlightedColor"/>
124 </label> 127 </label>
125 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VAz-hq-dvR"> 128 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VAz-hq-dvR">
126 <rect key="frame" x="157" y="525" width="60" height="30"/> 129 <rect key="frame" x="157" y="525" width="60" height="30"/>
127 <constraints> 130 <constraints>
128 <constraint firstAttribute="width" constant="60" id="KzL-jP-qZn"/> 131 <constraint firstAttribute="width" constant="60" id="KzL-jP-qZn"/>
129 <constraint firstAttribute="height" constant="30" id="kdw-th-wDS"/> 132 <constraint firstAttribute="height" constant="30" id="kdw-th-wDS"/>
130 </constraints> 133 </constraints>
131 <state key="normal" title="TODAY"> 134 <state key="normal" title="TODAY">
132 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 135 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
133 </state> 136 </state>
134 <connections> 137 <connections>
135 <action selector="todayButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="KoT-el-kxw"/> 138 <action selector="todayButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="KoT-el-kxw"/>
136 </connections> 139 </connections>
137 </button> 140 </button>
138 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Xj-IB-96h"> 141 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Xj-IB-96h">
139 <rect key="frame" x="8" y="187" width="359" height="30"/> 142 <rect key="frame" x="8" y="187" width="359" height="30"/>
140 <constraints> 143 <constraints>
141 <constraint firstAttribute="height" constant="30" id="B7Z-yO-b6M"/> 144 <constraint firstAttribute="height" constant="30" id="B7Z-yO-b6M"/>
142 </constraints> 145 </constraints>
143 <fontDescription key="fontDescription" type="system" pointSize="20"/> 146 <fontDescription key="fontDescription" type="system" pointSize="20"/>
144 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 147 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
145 <nil key="highlightedColor"/> 148 <nil key="highlightedColor"/>
146 </label> 149 </label>
147 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DuE-Dh-nEe"> 150 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DuE-Dh-nEe">
148 <rect key="frame" x="8" y="225" width="359" height="30"/> 151 <rect key="frame" x="8" y="225" width="359" height="30"/>
149 <constraints> 152 <constraints>
150 <constraint firstAttribute="height" constant="30" id="6YJ-rf-mz3"/> 153 <constraint firstAttribute="height" constant="30" id="6YJ-rf-mz3"/>
151 </constraints> 154 </constraints>
152 <fontDescription key="fontDescription" type="system" pointSize="20"/> 155 <fontDescription key="fontDescription" type="system" pointSize="20"/>
153 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 156 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
154 <nil key="highlightedColor"/> 157 <nil key="highlightedColor"/>
155 </label> 158 </label>
156 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="お知らせ" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lnt-4H-Ao8"> 159 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="お知らせ" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lnt-4H-Ao8">
157 <rect key="frame" x="8" y="275" width="359" height="30"/> 160 <rect key="frame" x="8" y="275" width="359" height="30"/>
158 <constraints> 161 <constraints>
159 <constraint firstAttribute="height" constant="30" id="isj-iQ-BcF"/> 162 <constraint firstAttribute="height" constant="30" id="isj-iQ-BcF"/>
160 </constraints> 163 </constraints>
161 <fontDescription key="fontDescription" type="system" pointSize="25"/> 164 <fontDescription key="fontDescription" type="system" pointSize="25"/>
162 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 165 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
163 <nil key="highlightedColor"/> 166 <nil key="highlightedColor"/>
164 </label> 167 </label>
165 <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ibb-Yl-iqu"> 168 <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ibb-Yl-iqu">
166 <rect key="frame" x="75" y="575" width="224" height="29"/> 169 <rect key="frame" x="75" y="575" width="224" height="29"/>
167 <segments> 170 <segments>
168 <segment title="BIKE"/> 171 <segment title="BIKE"/>
169 <segment title="WALKING"/> 172 <segment title="WALKING"/>
170 <segment title="RUNNING"/> 173 <segment title="RUNNING"/>
171 </segments> 174 </segments>
172 <color key="tintColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 175 <color key="tintColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
173 <connections> 176 <connections>
174 <action selector="segmentValueChange:" destination="-1" eventType="valueChanged" id="kL2-mI-baG"/> 177 <action selector="segmentValueChange:" destination="-1" eventType="valueChanged" id="kL2-mI-baG"/>
175 </connections> 178 </connections>
176 </segmentedControl> 179 </segmentedControl>
177 <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" textAlignment="natural" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kdD-rj-BtX" userLabel="tvNotice"> 180 <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" textAlignment="natural" selectable="NO" translatesAutoresizingMaskIntoConstraints="NO" id="kdD-rj-BtX" userLabel="tvNotice">
178 <rect key="frame" x="8" y="313" width="359" height="204"/> 181 <rect key="frame" x="8" y="313" width="359" height="204"/>
179 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 182 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
180 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 183 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
181 <fontDescription key="fontDescription" type="system" pointSize="17"/> 184 <fontDescription key="fontDescription" type="system" pointSize="17"/>
182 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> 185 <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
183 </textView> 186 </textView>
184 </subviews> 187 </subviews>
185 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 188 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
186 <constraints> 189 <constraints>
187 <constraint firstItem="IaR-IO-4RA" firstAttribute="leading" secondItem="vRa-cr-YTe" secondAttribute="trailing" constant="8" id="010-mM-SLU"/> 190 <constraint firstItem="IaR-IO-4RA" firstAttribute="leading" secondItem="vRa-cr-YTe" secondAttribute="trailing" constant="8" id="010-mM-SLU"/>
188 <constraint firstAttribute="trailing" secondItem="Low-8n-pqa" secondAttribute="trailing" constant="10" id="0OY-h0-Rgg"/> 191 <constraint firstAttribute="trailing" secondItem="Low-8n-pqa" secondAttribute="trailing" constant="10" id="0OY-h0-Rgg"/>
189 <constraint firstAttribute="trailing" secondItem="kdD-rj-BtX" secondAttribute="trailing" constant="8" id="3bP-sY-1pI"/> 192 <constraint firstAttribute="trailing" secondItem="kdD-rj-BtX" secondAttribute="trailing" constant="8" id="3bP-sY-1pI"/>
190 <constraint firstItem="u3S-9u-GMZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="4TN-aJ-vQh"/> 193 <constraint firstItem="u3S-9u-GMZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="4TN-aJ-vQh"/>
194 <constraint firstItem="1z5-6l-aht" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="6F9-oQ-tmg"/>
191 <constraint firstAttribute="trailing" secondItem="u3S-9u-GMZ" secondAttribute="trailing" id="8KH-Mn-IUf"/> 195 <constraint firstAttribute="trailing" secondItem="u3S-9u-GMZ" secondAttribute="trailing" id="8KH-Mn-IUf"/>
192 <constraint firstItem="DuE-Dh-nEe" firstAttribute="top" secondItem="3Xj-IB-96h" secondAttribute="bottom" constant="8" id="9h2-XH-Dd7"/> 196 <constraint firstItem="DuE-Dh-nEe" firstAttribute="top" secondItem="3Xj-IB-96h" secondAttribute="bottom" constant="8" id="9h2-XH-Dd7"/>
193 <constraint firstItem="kdD-rj-BtX" firstAttribute="top" secondItem="lnt-4H-Ao8" secondAttribute="bottom" constant="8" id="BCi-jo-C0A"/> 197 <constraint firstItem="kdD-rj-BtX" firstAttribute="top" secondItem="lnt-4H-Ao8" secondAttribute="bottom" constant="8" id="BCi-jo-C0A"/>
198 <constraint firstAttribute="trailing" secondItem="1z5-6l-aht" secondAttribute="trailing" id="CAn-98-y2W"/>
194 <constraint firstAttribute="trailing" secondItem="LPY-Zl-cOp" secondAttribute="trailing" constant="10" id="CX3-BL-hNh"/> 199 <constraint firstAttribute="trailing" secondItem="LPY-Zl-cOp" secondAttribute="trailing" constant="10" id="CX3-BL-hNh"/>
195 <constraint firstItem="vRa-cr-YTe" firstAttribute="leading" secondItem="J2A-tf-wH0" secondAttribute="trailing" constant="10" id="Cax-pu-Kp7"/> 200 <constraint firstItem="vRa-cr-YTe" firstAttribute="leading" secondItem="J2A-tf-wH0" secondAttribute="trailing" constant="10" id="Cax-pu-Kp7"/>
196 <constraint firstItem="3Xj-IB-96h" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="E8R-qO-PtJ"/> 201 <constraint firstItem="3Xj-IB-96h" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="E8R-qO-PtJ"/>
197 <constraint firstItem="b6V-Bi-4oz" firstAttribute="centerX" secondItem="vRa-cr-YTe" secondAttribute="centerX" id="EEt-Ct-vxb"/> 202 <constraint firstItem="b6V-Bi-4oz" firstAttribute="centerX" secondItem="vRa-cr-YTe" secondAttribute="centerX" id="EEt-Ct-vxb"/>
198 <constraint firstItem="u3S-9u-GMZ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" placeholder="YES" id="GbN-me-UEd"/> 203 <constraint firstItem="u3S-9u-GMZ" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" placeholder="YES" id="GbN-me-UEd"/>
204 <constraint firstItem="1z5-6l-aht" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Gg0-mA-0AM"/>
199 <constraint firstItem="b6V-Bi-4oz" firstAttribute="centerY" secondItem="vRa-cr-YTe" secondAttribute="centerY" id="HXS-oH-EPB"/> 205 <constraint firstItem="b6V-Bi-4oz" firstAttribute="centerY" secondItem="vRa-cr-YTe" secondAttribute="centerY" id="HXS-oH-EPB"/>
200 <constraint firstItem="vRa-cr-YTe" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="IDF-HZ-fqt"/> 206 <constraint firstItem="vRa-cr-YTe" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="IDF-HZ-fqt"/>
201 <constraint firstAttribute="trailing" secondItem="lnt-4H-Ao8" secondAttribute="trailing" constant="8" id="IEA-1V-AZx"/> 207 <constraint firstAttribute="trailing" secondItem="lnt-4H-Ao8" secondAttribute="trailing" constant="8" id="IEA-1V-AZx"/>
202 <constraint firstItem="ibb-Yl-iqu" firstAttribute="top" secondItem="VAz-hq-dvR" secondAttribute="bottom" constant="20" id="Ib2-KY-3A7"/> 208 <constraint firstItem="ibb-Yl-iqu" firstAttribute="top" secondItem="VAz-hq-dvR" secondAttribute="bottom" constant="20" id="Ib2-KY-3A7"/>
203 <constraint firstAttribute="bottom" secondItem="ibb-Yl-iqu" secondAttribute="bottom" constant="64" placeholder="YES" id="Iv8-Al-1Ff"/> 209 <constraint firstAttribute="bottom" secondItem="ibb-Yl-iqu" secondAttribute="bottom" constant="64" placeholder="YES" id="Iv8-Al-1Ff"/>
204 <constraint firstItem="DuE-Dh-nEe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="Rum-yc-3Ym"/> 210 <constraint firstItem="DuE-Dh-nEe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="Rum-yc-3Ym"/>
211 <constraint firstAttribute="trailing" secondItem="1z5-6l-aht" secondAttribute="trailing" id="Vdm-Es-9gL"/>
205 <constraint firstItem="Low-8n-pqa" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="W7b-Hb-9ME"/> 212 <constraint firstItem="Low-8n-pqa" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="W7b-Hb-9ME"/>
206 <constraint firstItem="IaR-IO-4RA" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="b4I-Me-4xZ"/> 213 <constraint firstItem="IaR-IO-4RA" firstAttribute="centerY" secondItem="J2A-tf-wH0" secondAttribute="centerY" id="b4I-Me-4xZ"/>
207 <constraint firstItem="wfu-aB-xXm" firstAttribute="top" secondItem="IaR-IO-4RA" secondAttribute="bottom" constant="40" id="bH1-l5-YRA"/> 214 <constraint firstItem="wfu-aB-xXm" firstAttribute="top" secondItem="IaR-IO-4RA" secondAttribute="bottom" constant="40" id="bH1-l5-YRA"/>
208 <constraint firstItem="lnt-4H-Ao8" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="ea3-Dx-s4s"/> 215 <constraint firstItem="lnt-4H-Ao8" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="ea3-Dx-s4s"/>
216 <constraint firstItem="1z5-6l-aht" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="h15-0H-1uW"/>
209 <constraint firstItem="at8-co-gC4" firstAttribute="centerX" secondItem="Low-8n-pqa" secondAttribute="centerX" id="h5o-Cj-Z7s"/> 217 <constraint firstItem="at8-co-gC4" firstAttribute="centerX" secondItem="Low-8n-pqa" secondAttribute="centerX" id="h5o-Cj-Z7s"/>
210 <constraint firstAttribute="trailing" secondItem="DuE-Dh-nEe" secondAttribute="trailing" constant="8" id="iyi-TY-Wfe"/> 218 <constraint firstAttribute="trailing" secondItem="DuE-Dh-nEe" secondAttribute="trailing" constant="8" id="iyi-TY-Wfe"/>
211 <constraint firstItem="LPY-Zl-cOp" firstAttribute="centerY" secondItem="u3S-9u-GMZ" secondAttribute="centerY" id="jBf-Ck-YYj"/> 219 <constraint firstItem="LPY-Zl-cOp" firstAttribute="centerY" secondItem="u3S-9u-GMZ" secondAttribute="centerY" id="jBf-Ck-YYj"/>
212 <constraint firstItem="TUf-Tp-93t" firstAttribute="centerY" secondItem="wfu-aB-xXm" secondAttribute="centerY" constant="-5" id="k3n-lY-8K1"/> 220 <constraint firstItem="TUf-Tp-93t" firstAttribute="centerY" secondItem="wfu-aB-xXm" secondAttribute="centerY" constant="-5" id="k3n-lY-8K1"/>
213 <constraint firstItem="J2A-tf-wH0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="mVQ-bZ-JBW"/> 221 <constraint firstItem="J2A-tf-wH0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="mVQ-bZ-JBW"/>
214 <constraint firstAttribute="trailing" secondItem="wfu-aB-xXm" secondAttribute="trailing" constant="20" id="mtA-2Q-ssH"/> 222 <constraint firstAttribute="trailing" secondItem="wfu-aB-xXm" secondAttribute="trailing" constant="20" id="mtA-2Q-ssH"/>
223 <constraint firstAttribute="bottom" secondItem="1z5-6l-aht" secondAttribute="bottom" id="nJy-I1-hpu"/>
215 <constraint firstItem="ibb-Yl-iqu" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="nOT-Ic-JU1"/> 224 <constraint firstItem="ibb-Yl-iqu" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="nOT-Ic-JU1"/>
216 <constraint firstItem="J2A-tf-wH0" firstAttribute="top" secondItem="u3S-9u-GMZ" secondAttribute="bottom" constant="10" id="nu9-Lj-5xz"/> 225 <constraint firstItem="J2A-tf-wH0" firstAttribute="top" secondItem="u3S-9u-GMZ" secondAttribute="bottom" constant="10" id="nu9-Lj-5xz"/>
217 <constraint firstAttribute="trailing" secondItem="3Xj-IB-96h" secondAttribute="trailing" constant="8" id="pF6-db-UUi"/> 226 <constraint firstAttribute="trailing" secondItem="3Xj-IB-96h" secondAttribute="trailing" constant="8" id="pF6-db-UUi"/>
218 <constraint firstItem="3Xj-IB-96h" firstAttribute="top" secondItem="wfu-aB-xXm" secondAttribute="bottom" constant="8" id="psY-0r-fPJ"/> 227 <constraint firstItem="3Xj-IB-96h" firstAttribute="top" secondItem="wfu-aB-xXm" secondAttribute="bottom" constant="8" id="psY-0r-fPJ"/>
219 <constraint firstItem="kdD-rj-BtX" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="q4Z-No-KmH"/> 228 <constraint firstItem="kdD-rj-BtX" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="q4Z-No-KmH"/>
220 <constraint firstItem="TUf-Tp-93t" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="sC4-Kr-3bN"/> 229 <constraint firstItem="TUf-Tp-93t" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="sC4-Kr-3bN"/>
221 <constraint firstItem="at8-co-gC4" firstAttribute="centerY" secondItem="Low-8n-pqa" secondAttribute="centerY" id="tav-ge-tCT"/> 230 <constraint firstItem="at8-co-gC4" firstAttribute="centerY" secondItem="Low-8n-pqa" secondAttribute="centerY" id="tav-ge-tCT"/>
222 <constraint firstItem="VAz-hq-dvR" firstAttribute="top" secondItem="kdD-rj-BtX" secondAttribute="bottom" constant="8" id="ujL-1z-cUf"/> 231 <constraint firstItem="VAz-hq-dvR" firstAttribute="top" secondItem="kdD-rj-BtX" secondAttribute="bottom" constant="8" id="ujL-1z-cUf"/>
223 <constraint firstItem="lnt-4H-Ao8" firstAttribute="top" secondItem="DuE-Dh-nEe" secondAttribute="bottom" constant="20" id="w4w-Z4-Jzk"/> 232 <constraint firstItem="lnt-4H-Ao8" firstAttribute="top" secondItem="DuE-Dh-nEe" secondAttribute="bottom" constant="20" id="w4w-Z4-Jzk"/>
224 <constraint firstItem="wfu-aB-xXm" firstAttribute="leading" secondItem="TUf-Tp-93t" secondAttribute="trailing" constant="10" id="x51-DA-4Le"/> 233 <constraint firstItem="wfu-aB-xXm" firstAttribute="leading" secondItem="TUf-Tp-93t" secondAttribute="trailing" constant="10" id="x51-DA-4Le"/>
225 <constraint firstItem="VAz-hq-dvR" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="xE7-ro-k8m"/> 234 <constraint firstItem="VAz-hq-dvR" firstAttribute="centerX" secondItem="i5M-Pr-FkT" secondAttribute="centerX" id="xE7-ro-k8m"/>
235 <constraint firstAttribute="bottom" secondItem="1z5-6l-aht" secondAttribute="bottom" id="xXu-0F-pzQ"/>
226 <constraint firstItem="Low-8n-pqa" firstAttribute="leading" secondItem="IaR-IO-4RA" secondAttribute="trailing" constant="8" id="y6e-6A-hjn"/> 236 <constraint firstItem="Low-8n-pqa" firstAttribute="leading" secondItem="IaR-IO-4RA" secondAttribute="trailing" constant="8" id="y6e-6A-hjn"/>
237 <constraint firstItem="1z5-6l-aht" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="yK2-RH-eNB"/>
227 </constraints> 238 </constraints>
228 <point key="canvasLocation" x="33.5" y="97.5"/> 239 <point key="canvasLocation" x="33.5" y="97.5"/>
229 </view> 240 </view>
230 </objects> 241 </objects>
231 <resources> 242 <resources>
232 <image name="avatar_default" width="80" height="80"/> 243 <image name="avatar_default" width="127" height="136"/>
244 <image name="background" width="1563" height="2778"/>
233 <image name="icon_left" width="30" height="30"/> 245 <image name="icon_left" width="30" height="30"/>
234 <image name="icon_menu" width="30" height="30"/> 246 <image name="icon_menu" width="30" height="30"/>
235 <image name="icon_right" width="30" height="30"/> 247 <image name="icon_right" width="30" height="30"/>
236 </resources> 248 </resources>
237 </document> 249 </document>
238 250
LifeLog/LifeLog/LabelCollectionViewCell.h
1 // 1 //
2 // LabelCollectionViewCell.h 2 // LabelCollectionViewCell.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/3/17. 5 // Created by nvtu on 8/3/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 @interface LabelCollectionViewCell : UICollectionViewCell 11 @interface LabelCollectionViewCell : UICollectionViewCell
12 @property (weak, nonatomic) IBOutlet UILabel *lblTitle; 12 @property (weak, nonatomic) IBOutlet UILabel *lblTitle;
13 @property (weak, nonatomic) IBOutlet UIImageView *imgIcon;
13 @end 14 @end
14 15
LifeLog/LifeLog/LabelCollectionViewCell.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <objects> 11 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
12 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 13 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
13 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="LabelCell" id="gTV-IL-0wX" customClass="LabelCollectionViewCell"> 14 <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="LabelCell" id="gTV-IL-0wX" customClass="LabelCollectionViewCell">
14 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/> 15 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
15 <autoresizingMask key="autoresizingMask"/> 16 <autoresizingMask key="autoresizingMask"/>
16 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> 17 <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
17 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/> 18 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
18 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 19 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
19 <subviews> 20 <subviews>
20 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="R7x-TO-3nQ"> 21 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="R7x-TO-3nQ">
21 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/> 22 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
22 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 23 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
23 <fontDescription key="fontDescription" type="system" pointSize="13"/> 24 <fontDescription key="fontDescription" type="system" pointSize="13"/>
24 <nil key="textColor"/> 25 <nil key="textColor"/>
25 <nil key="highlightedColor"/> 26 <nil key="highlightedColor"/>
26 </label> 27 </label>
28 <imageView hidden="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="ls0-bk-ldb">
29 <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
30 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
31 </imageView>
27 </subviews> 32 </subviews>
28 </view> 33 </view>
29 <constraints> 34 <constraints>
35 <constraint firstAttribute="trailing" secondItem="ls0-bk-ldb" secondAttribute="trailing" id="Cfz-rI-IEI"/>
30 <constraint firstItem="R7x-TO-3nQ" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="FsP-if-zJU"/> 36 <constraint firstItem="R7x-TO-3nQ" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="FsP-if-zJU"/>
31 <constraint firstAttribute="trailing" secondItem="R7x-TO-3nQ" secondAttribute="trailing" id="RXy-Ax-f7c"/> 37 <constraint firstAttribute="trailing" secondItem="R7x-TO-3nQ" secondAttribute="trailing" id="RXy-Ax-f7c"/>
38 <constraint firstItem="ls0-bk-ldb" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="Ysx-ug-OWw"/>
32 <constraint firstAttribute="bottom" secondItem="R7x-TO-3nQ" secondAttribute="bottom" id="bir-WN-giG"/> 39 <constraint firstAttribute="bottom" secondItem="R7x-TO-3nQ" secondAttribute="bottom" id="bir-WN-giG"/>
40 <constraint firstAttribute="bottom" secondItem="ls0-bk-ldb" secondAttribute="bottom" id="jPv-Kj-zFK"/>
33 <constraint firstItem="R7x-TO-3nQ" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="nEO-eg-OOM"/> 41 <constraint firstItem="R7x-TO-3nQ" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="nEO-eg-OOM"/>
42 <constraint firstItem="ls0-bk-ldb" firstAttribute="leading" secondItem="gTV-IL-0wX" secondAttribute="leading" id="nqo-ds-9ou"/>
34 </constraints> 43 </constraints>
35 <size key="customSize" width="246" height="175"/> 44 <size key="customSize" width="246" height="175"/>
36 <connections> 45 <connections>
37 <outlet property="lblTitle" destination="R7x-TO-3nQ" id="Iuz-tJ-aWb"/> 46 <outlet property="imgIcon" destination="ls0-bk-ldb" id="pLg-1p-9sI"/>
47 <outlet property="lblTitle" destination="R7x-TO-3nQ" id="YkO-eX-8rQ"/>
38 </connections> 48 </connections>
39 <point key="canvasLocation" x="123" y="114.5"/> 49 <point key="canvasLocation" x="123" y="114.5"/>
40 </collectionViewCell> 50 </collectionViewCell>
41 </objects> 51 </objects>
42 </document> 52 </document>
43 53
LifeLog/LifeLog/MapViewController.m
1 // 1 //
2 // MapViewController.m 2 // MapViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "MapViewController.h" 9 #import "MapViewController.h"
10 #import <MapKit/MapKit.h> 10 #import <MapKit/MapKit.h>
11 #import<CoreLocation/CoreLocation.h> 11 #import<CoreLocation/CoreLocation.h>
12 #import <CoreMotion/CoreMotion.h> 12 #import <CoreMotion/CoreMotion.h>
13 #import "NSDate+helper.h" 13 #import "NSDate+helper.h"
14 #import "Utilities.h" 14 #import "Utilities.h"
15 15
16 @interface MapViewController ()<CLLocationManagerDelegate, MKMapViewDelegate> 16 @interface MapViewController ()<CLLocationManagerDelegate, MKMapViewDelegate>
17 { 17 {
18 CLGeocoder *geocoder; 18 CLGeocoder *geocoder;
19 CLPlacemark *placemark; 19 CLPlacemark *placemark;
20 CLLocation *previousLocation; 20 CLLocation *previousLocation;
21 } 21 }
22 @property (weak, nonatomic) IBOutlet MKMapView *mapView; 22 @property (weak, nonatomic) IBOutlet MKMapView *mapView;
23 @property (weak, nonatomic) IBOutlet UILabel *lblTime; 23 @property (weak, nonatomic) IBOutlet UILabel *lblTime;
24 @property (weak, nonatomic) IBOutlet UISlider *slider; 24 @property (weak, nonatomic) IBOutlet UISlider *slider;
25 25
26 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep; 26 @property (nonatomic, weak) IBOutlet UILabel *lblValueStep;
27 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep; 27 @property (nonatomic, weak) IBOutlet UILabel *lblUnitStep;
28 @property (weak, nonatomic) IBOutlet UIView *viewOther; 28 @property (weak, nonatomic) IBOutlet UIView *viewOther;
29 29
30 @property (strong, nonatomic) CLLocationManager *locationManager; 30 @property (strong, nonatomic) CLLocationManager *locationManager;
31 31
32 @property (nonatomic, strong) CMPedometer *pedometer; 32 @property (nonatomic, strong) CMPedometer *pedometer;
33 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager; 33 @property (nonatomic, strong) CMMotionActivityManager *motionActivityManager;
34 @property (nonatomic, strong) NSOperationQueue *operationQueue; 34 @property (nonatomic, strong) NSOperationQueue *operationQueue;
35 @property (nonatomic, strong) NSTimer *timer; 35 @property (nonatomic, strong) NSTimer *timer;
36 @property (nonatomic) int countTime; 36 @property (nonatomic) int countTime;
37 @property (nonatomic, assign) BOOL isRequesting; 37 @property (nonatomic, assign) BOOL isRequesting;
38 @end 38 @end
39 39
40 @implementation MapViewController 40 @implementation MapViewController
41 41
42 - (void)viewDidLoad { 42 - (void)viewDidLoad {
43 [super viewDidLoad]; 43 [super viewDidLoad];
44 // Do any additional setup after loading the view from its nib. 44 // Do any additional setup after loading the view from its nib.
45 self.title = NSLocalizedString(@"lifelog.tapbar.map", nil); 45 // self.title = NSLocalizedString(@"lifelog.tapbar.map", nil);
46 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.mapView attribute:NSLayoutAttributeTop multiplier:1 constant:0]]; 46 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.mapView attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
47 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.mapView attribute:NSLayoutAttributeBottom multiplier:1 constant:44]]; 47 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.mapView attribute:NSLayoutAttributeBottom multiplier:1 constant:44]];
48 geocoder = [[CLGeocoder alloc] init]; 48 geocoder = [[CLGeocoder alloc] init];
49 [self setupLocation]; 49 [self setupLocation];
50 [self setupMapView]; 50 [self setupMapView];
51 previousLocation = nil; 51 previousLocation = nil;
52 52
53 if ([CMPedometer isStepCountingAvailable]) { 53 if ([CMPedometer isStepCountingAvailable]) {
54 _pedometer = [[CMPedometer alloc] init]; 54 _pedometer = [[CMPedometer alloc] init];
55 } 55 }
56 if ([CMMotionActivityManager isActivityAvailable]) { 56 if ([CMMotionActivityManager isActivityAvailable]) {
57 _motionActivityManager = [[CMMotionActivityManager alloc] init]; 57 _motionActivityManager = [[CMMotionActivityManager alloc] init];
58 } 58 }
59 self.isRequesting = NO; 59 self.isRequesting = NO;
60 _countTime = 0; 60 _countTime = 0;
61 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil); 61 self.lblUnitStep.text = NSLocalizedString(@"lifelog.home.unit.step", nil);
62 } 62 }
63 63
64 - (void)didReceiveMemoryWarning { 64 - (void)didReceiveMemoryWarning {
65 [super didReceiveMemoryWarning]; 65 [super didReceiveMemoryWarning];
66 // Dispose of any resources that can be recreated. 66 // Dispose of any resources that can be recreated.
67 } 67 }
68 68
69 - (void)viewWillAppear:(BOOL)animated { 69 - (void)viewWillAppear:(BOOL)animated {
70 [super viewWillAppear:animated]; 70 [super viewWillAppear:animated];
71 _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(countStep) userInfo:nil repeats:YES]; 71 _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(countStep) userInfo:nil repeats:YES];
72 [_timer fire]; 72 [_timer fire];
73 } 73 }
74 74
75 //- (void)viewWillDisappear:(BOOL)animated { 75 //- (void)viewWillDisappear:(BOOL)animated {
76 // [super viewWillDisappear:animated]; 76 // [super viewWillDisappear:animated];
77 // [_timer invalidate]; 77 // [_timer invalidate];
78 //} 78 //}
79 79
80 #pragma mark - CLLocationManagerDelegate 80 #pragma mark - CLLocationManagerDelegate
81 -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 81 -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
82 82
83 CLLocation *newLocation = [locations lastObject]; 83 CLLocation *newLocation = [locations lastObject];
84 if (previousLocation == nil) { 84 if (previousLocation == nil) {
85 [self addAnnotationsOnMap:newLocation]; 85 [self addAnnotationsOnMap:newLocation];
86 } 86 }
87 else { 87 else {
88 CLLocationCoordinate2D area[2]; 88 CLLocationCoordinate2D area[2];
89 area[0] = previousLocation.coordinate; 89 area[0] = previousLocation.coordinate;
90 area[1] = newLocation.coordinate; 90 area[1] = newLocation.coordinate;
91 MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:area count:2]; 91 MKPolyline *polyLine = [MKPolyline polylineWithCoordinates:area count:2];
92 [_mapView addOverlay:polyLine]; 92 [_mapView addOverlay:polyLine];
93 } 93 }
94 94
95 previousLocation = newLocation; 95 previousLocation = newLocation;
96 } 96 }
97 97
98 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error 98 - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
99 { 99 {
100 NSLog(@"Cannot find the location."); 100 NSLog(@"Cannot find the location.");
101 } 101 }
102 102
103 #pragma mark - MKMapViewDelegate 103 #pragma mark - MKMapViewDelegate
104 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay 104 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id <MKOverlay>)overlay
105 { 105 {
106 if ([overlay isKindOfClass:[MKPolyline class]]) { 106 if ([overlay isKindOfClass:[MKPolyline class]]) {
107 MKPolylineRenderer *pr = [[MKPolylineRenderer alloc] initWithOverlay:overlay]; 107 MKPolylineRenderer *pr = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
108 pr.strokeColor = [UIColor redColor]; 108 pr.strokeColor = [UIColor redColor];
109 pr.lineWidth = 5; 109 pr.lineWidth = 5;
110 return pr; 110 return pr;
111 } 111 }
112 return nil; 112 return nil;
113 } 113 }
114 114
115 #pragma mark - Functions Private 115 #pragma mark - Functions Private
116 116
117 - (void)addAnnotationsOnMap:(CLLocation *)locationToPoint { 117 - (void)addAnnotationsOnMap:(CLLocation *)locationToPoint {
118 MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init]; 118 MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
119 annotation.coordinate = locationToPoint.coordinate; 119 annotation.coordinate = locationToPoint.coordinate;
120 [geocoder reverseGeocodeLocation:locationToPoint completionHandler:^(NSArray *placemarks, NSError *error) { 120 [geocoder reverseGeocodeLocation:locationToPoint completionHandler:^(NSArray *placemarks, NSError *error) {
121 if (error == nil && [placemarks count] >0) { 121 if (error == nil && [placemarks count] >0) {
122 placemark = [placemarks firstObject]; 122 placemark = [placemarks firstObject];
123 NSDictionary *addressDict = placemark.addressDictionary; 123 NSDictionary *addressDict = placemark.addressDictionary;
124 annotation.title = [NSString stringWithFormat:@"%@", addressDict[@"Name"]]; 124 annotation.title = [NSString stringWithFormat:@"%@", addressDict[@"Name"]];
125 [_mapView addAnnotation:annotation]; 125 [_mapView addAnnotation:annotation];
126 } 126 }
127 }]; 127 }];
128 } 128 }
129 129
130 - (void)setupLocation { 130 - (void)setupLocation {
131 _locationManager = [[CLLocationManager alloc] init]; 131 _locationManager = [[CLLocationManager alloc] init];
132 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; 132 _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
133 _locationManager.delegate = self; 133 _locationManager.delegate = self;
134 CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; 134 CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
135 if (status == kCLAuthorizationStatusNotDetermined || status == kCLAuthorizationStatusDenied || status == kCLAuthorizationStatusAuthorizedWhenInUse) { 135 if (status == kCLAuthorizationStatusNotDetermined || status == kCLAuthorizationStatusDenied || status == kCLAuthorizationStatusAuthorizedWhenInUse) {
136 [_locationManager requestWhenInUseAuthorization]; 136 [_locationManager requestWhenInUseAuthorization];
137 [_locationManager requestAlwaysAuthorization]; 137 [_locationManager requestAlwaysAuthorization];
138 } 138 }
139 [_locationManager startUpdatingLocation]; 139 [_locationManager startUpdatingLocation];
140 [_locationManager startUpdatingHeading]; 140 [_locationManager startUpdatingHeading];
141 } 141 }
142 142
143 - (void)setupMapView { 143 - (void)setupMapView {
144 _mapView.delegate = self; 144 _mapView.delegate = self;
145 _mapView.showsUserLocation = YES; 145 _mapView.showsUserLocation = YES;
146 _mapView.mapType = MKMapTypeStandard; 146 _mapView.mapType = MKMapTypeStandard;
147 _mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading; 147 _mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
148 } 148 }
149 149
150 #pragma mark - Functions Private 150 #pragma mark - Functions Private
151 - (void)countStep 151 - (void)countStep
152 { 152 {
153 _countTime++; 153 _countTime++;
154 _lblTime.text = [self convertTime:_countTime]; 154 _lblTime.text = [self convertTime:_countTime];
155 _slider.value = _countTime; 155 _slider.value = _countTime;
156 if (self.isRequesting == YES) { 156 if (self.isRequesting == YES) {
157 return; 157 return;
158 } 158 }
159 if ([CMMotionActivityManager isActivityAvailable]) { 159 if ([CMMotionActivityManager isActivityAvailable]) {
160 self.isRequesting = YES; 160 self.isRequesting = YES;
161 NSDate *endDate = [NSDate date]; 161 NSDate *endDate = [NSDate date];
162 NSDate *startDate = [endDate beginningAtMidnightOfDay]; 162 NSDate *startDate = [endDate beginningAtMidnightOfDay];
163 MapViewController __weak *weakSelf = self; 163 MapViewController __weak *weakSelf = self;
164 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog", NULL); 164 dispatch_queue_t myQueue = dispatch_queue_create("mobileworld.jp.lifelog", NULL);
165 dispatch_async(myQueue, ^{ 165 dispatch_async(myQueue, ^{
166 if (weakSelf == nil) { 166 if (weakSelf == nil) {
167 return ; 167 return ;
168 } 168 }
169 [weakSelf.pedometer queryPedometerDataFromDate:startDate toDate:endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) { 169 [weakSelf.pedometer queryPedometerDataFromDate:startDate toDate:endDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
170 NSInteger numberStep = [pedometerData.numberOfSteps integerValue]; 170 NSInteger numberStep = [pedometerData.numberOfSteps integerValue];
171 dispatch_async(dispatch_get_main_queue(), ^{ 171 dispatch_async(dispatch_get_main_queue(), ^{
172 [weakSelf updateStepUI:numberStep]; 172 [weakSelf updateStepUI:numberStep];
173 }); 173 });
174 }]; 174 }];
175 }); 175 });
176 } 176 }
177 } 177 }
178 178
179 - (NSString *)convertTime:(int)time 179 - (NSString *)convertTime:(int)time
180 { 180 {
181 NSString *result = @""; 181 NSString *result = @"";
182 int hour = time/3600; 182 int hour = time/3600;
183 int minute = time/60; 183 int minute = time/60;
184 int second = time % 60; 184 int second = time % 60;
185 result = [NSString stringWithFormat:@"%02d:%02d:%02d", hour, minute, second]; 185 result = [NSString stringWithFormat:@"%02d:%02d:%02d", hour, minute, second];
186 return result; 186 return result;
187 } 187 }
188 188
189 - (void)updateStepUI:(NSInteger)numberStep 189 - (void)updateStepUI:(NSInteger)numberStep
190 { 190 {
191 // NSLog(@"Number of step: %ld", numberStep); 191 // NSLog(@"Number of step: %ld", numberStep);
192 self.isRequesting = NO; 192 self.isRequesting = NO;
193 self.lblValueStep.text = [Utilities addCommaFromNumber:numberStep]; 193 self.lblValueStep.text = [Utilities addCommaFromNumber:numberStep];
194 } 194 }
195 195
196 @end 196 @end
197 197
LifeLog/LifeLog/MyGroupViewController.h
1 // 1 //
2 // MyGroupViewController.h 2 // MyGroupViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/20/17. 5 // Created by nvtu on 8/20/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "GroupDetailViewController.h" 10 #import "GroupDetailViewController.h"
11 #import "AutoTransButton.h" 11 #import "AutoTransButton.h"
12 #import "Entities.h" 12 #import "Entities.h"
13 13
14 @interface MyGroupViewController : GroupDetailViewController { 14 @interface MyGroupViewController : GroupDetailViewController {
15 NSMutableArray *_curListGrp; 15 NSMutableArray *_curListGrp;
16 } 16 }
17 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
17 18
18 @property (weak, nonatomic) IBOutlet UITableView *tableGrp; 19 @property (weak, nonatomic) IBOutlet UITableView *tableGrp;
19 @property (weak, nonatomic) IBOutlet UIButton *btShowGrp; 20 @property (weak, nonatomic) IBOutlet UIButton *btShowGrp;
20 21
21 - (IBAction)clickShowGrp:(id)sender; 22 - (IBAction)clickShowGrp:(id)sender;
22 23
23 @end 24 @end
24 25
LifeLog/LifeLog/MyGroupViewController.m
1 // 1 //
2 // MyGroupViewController.m 2 // MyGroupViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/20/17. 5 // Created by nvtu on 8/20/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "MyGroupViewController.h" 9 #import "MyGroupViewController.h"
10 10
11 #import "Utilities.h" 11 #import "Utilities.h"
12 #import "ServerAPI.h" 12 #import "ServerAPI.h"
13 #import "SNSRecentTopicTableViewCell.h" 13 #import "SNSRecentTopicTableViewCell.h"
14 14
15 @interface MyGroupViewController () 15 @interface MyGroupViewController ()
16 16
17 @end 17 @end
18 18
19 @implementation MyGroupViewController 19 @implementation MyGroupViewController
20 20
21 - (void)viewDidLoad { 21 - (void)viewDidLoad {
22 [super viewDidLoad]; 22 [super viewDidLoad];
23 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
24
23 isMemberList = false; 25 isMemberList = false;
24 _curListGrp = [[NSMutableArray alloc] init]; 26 _curListGrp = [[NSMutableArray alloc] init];
25 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 27 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
26 28
27 [self requestGroupList]; 29 [self requestGroupList];
28 // Do any additional setup after loading the view from its nib. 30 // Do any additional setup after loading the view from its nib.
29 } 31 }
30 32
31 - (void)didReceiveMemoryWarning { 33 - (void)didReceiveMemoryWarning {
32 [super didReceiveMemoryWarning]; 34 [super didReceiveMemoryWarning];
33 // Dispose of any resources that can be recreated. 35 // Dispose of any resources that can be recreated.
34 } 36 }
35 37
36 #pragma mark IBAction 38 #pragma mark IBAction
37 39
38 - (IBAction)clickBack:(id)sender { 40 - (IBAction)clickBack:(id)sender {
39 [self.navigationController popViewControllerAnimated:true]; 41 [self.navigationController popViewControllerAnimated:true];
40 } 42 }
41 43
42 - (IBAction)clickShowGrp:(id)sender { 44 - (IBAction)clickShowGrp:(id)sender {
43 self.tableGrp.hidden = !self.tableGrp.isHidden; 45 self.tableGrp.hidden = !self.tableGrp.isHidden;
44 } 46 }
45 47
46 - (IBAction)clickSwitch:(id)sender { 48 - (IBAction)clickSwitch:(id)sender {
47 isMemberList = !isMemberList; 49 isMemberList = !isMemberList;
48 if(isMemberList) { 50 if(isMemberList) {
49 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal]; 51 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewTweet", nil) forState:UIControlStateNormal];
50 } 52 }
51 else { 53 else {
52 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal]; 54 [sender setTitle:NSLocalizedString(@"lifelog.grDetail.bt.viewMem", nil) forState:UIControlStateNormal];
53 } 55 }
54 [sender setUserInteractionEnabled:false]; 56 [sender setUserInteractionEnabled:false];
55 [self resetData]; 57 [self resetData];
56 } 58 }
57 59
58 #pragma mark UITableView Delegate 60 #pragma mark UITableView Delegate
59 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView { 61 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
60 if(tableView == self.tableGrp) 62 if(tableView == self.tableGrp)
61 return 1; 63 return 1;
62 else 64 else
63 return [super numberOfSectionsInTableView:tableView]; 65 return [super numberOfSectionsInTableView:tableView];
64 } 66 }
65 67
66 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 68 - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
67 if(tableView == self.tableGrp) 69 if(tableView == self.tableGrp)
68 return _curListGrp.count; 70 return _curListGrp.count;
69 else 71 else
70 return [super tableView:tableView numberOfRowsInSection:section]; 72 return [super tableView:tableView numberOfRowsInSection:section];
71 } 73 }
72 74
73 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 75 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
74 if(tableView == self.tableGrp) { 76 if(tableView == self.tableGrp) {
75 UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"GroupCell"]; 77 UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"GroupCell"];
76 if(cell == nil) { 78 if(cell == nil) {
77 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"GroupCell"]; 79 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"GroupCell"];
78 } 80 }
79 GroupObject *object = [_curListGrp objectAtIndex:indexPath.row]; 81 GroupObject *object = [_curListGrp objectAtIndex:indexPath.row];
80 cell.textLabel.text = object.name; 82 cell.textLabel.text = object.name;
81 return cell; 83 return cell;
82 } 84 }
83 else { 85 else {
84 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 86 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
85 if(isMemberList) { 87 if(isMemberList) {
86 MemberObject *object = [_curDataList objectAtIndex:indexPath.row]; 88 MemberObject *object = [_curDataList objectAtIndex:indexPath.row];
87 [cell setMemberData:object]; 89 [cell setMemberData:object];
88 } 90 }
89 else { 91 else {
90 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 92 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
91 [cell setTweetsData:object]; 93 [cell setTweetsData:object];
92 } 94 }
93 return cell; 95 return cell;
94 } 96 }
95 } 97 }
96 98
97 - (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 99 - (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
98 if(tableView == self.tableGrp) { 100 if(tableView == self.tableGrp) {
99 return; 101 return;
100 } 102 }
101 [super tableView:tableView willDisplayCell:cell forRowAtIndexPath:indexPath]; 103 [super tableView:tableView willDisplayCell:cell forRowAtIndexPath:indexPath];
102 } 104 }
103 105
104 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 106 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
105 if(tableView == self.tableGrp) { 107 if(tableView == self.tableGrp) {
106 [tableView setHidden:true]; 108 [tableView setHidden:true];
107 [self resetGroupData:indexPath.row]; 109 [self resetGroupData:indexPath.row];
108 } 110 }
109 } 111 }
110 112
111 #pragma mark Private Function 113 #pragma mark Private Function
112 114
113 - (void) resetGroupData : (int) index { 115 - (void) resetGroupData : (int) index {
114 _curGroup = [_curListGrp objectAtIndex:index]; 116 _curGroup = [_curListGrp objectAtIndex:index];
115 self.lblGrpName.text = _curGroup.name; 117 self.lblGrpName.text = _curGroup.name;
116 [_curDataList removeAllObjects]; 118 [_curDataList removeAllObjects];
117 [self.tableBase reloadData]; 119 [self.tableBase reloadData];
118 [self requestGroupDetail]; 120 [self requestGroupDetail];
119 } 121 }
120 122
121 - (void) requestGroupList { 123 - (void) requestGroupList {
122 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 124 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
123 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 125 MBProgressHUD *hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
124 [[ServerAPI server] requestGroupList:token CompletionHandler:^(NSArray *array, NSError *error) { 126 [[ServerAPI server] requestGroupList:token CompletionHandler:^(NSArray *array, NSError *error) {
125 dispatch_async(dispatch_get_main_queue(), ^{ 127 dispatch_async(dispatch_get_main_queue(), ^{
126 [hudView hideAnimated:true]; 128 [hudView hideAnimated:true];
127 }); 129 });
128 if(error == nil) { 130 if(error == nil) {
129 [_curListGrp removeAllObjects]; 131 [_curListGrp removeAllObjects];
130 [_curListGrp addObjectsFromArray:array]; 132 [_curListGrp addObjectsFromArray:array];
131 MyGroupViewController __weak *weakSelf = self; 133 MyGroupViewController __weak *weakSelf = self;
132 dispatch_async(dispatch_get_main_queue(), ^{ 134 dispatch_async(dispatch_get_main_queue(), ^{
133 [hudView hideAnimated:true]; 135 [hudView hideAnimated:true];
134 [self.tableGrp reloadData]; 136 [self.tableGrp reloadData];
135 if(_curListGrp.count > 0) { 137 if(_curListGrp.count > 0) {
136 [weakSelf resetGroupData:0]; 138 [weakSelf resetGroupData:0];
137 } 139 }
138 else { 140 else {
139 weakSelf.lblGrpName.text = @"No Group"; 141 weakSelf.lblGrpName.text = @"No Group";
140 } 142 }
141 [weakSelf.btShowGrp setEnabled:(_curListGrp.count > 0)]; 143 [weakSelf.btShowGrp setEnabled:(_curListGrp.count > 0)];
142 }); 144 });
143 } 145 }
144 }]; 146 }];
145 } 147 }
146 148
147 @end 149 @end
148 150
LifeLog/LifeLog/MyGroupViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <objects> 11 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MyGroupViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MyGroupViewController">
12 <connections> 13 <connections>
13 <outlet property="btShowGrp" destination="MvK-5R-njL" id="bcb-N7-jbu"/> 14 <outlet property="btShowGrp" destination="MvK-5R-njL" id="bcb-N7-jbu"/>
14 <outlet property="btSwitch" destination="eBu-7L-nsx" id="od6-v0-6eh"/> 15 <outlet property="btSwitch" destination="eBu-7L-nsx" id="od6-v0-6eh"/>
15 <outlet property="lbbGrpActiveMode" destination="P1r-ft-imP" id="gw7-xu-kL1"/> 16 <outlet property="lbbGrpActiveMode" destination="P1r-ft-imP" id="gw7-xu-kL1"/>
16 <outlet property="lblGrpGoal" destination="ftA-wa-19F" id="YFk-py-xd2"/> 17 <outlet property="lblGrpGoal" destination="ftA-wa-19F" id="YFk-py-xd2"/>
17 <outlet property="lblGrpName" destination="xXv-SO-m4h" id="qik-wo-Usx"/> 18 <outlet property="lblGrpName" destination="xXv-SO-m4h" id="qik-wo-Usx"/>
18 <outlet property="tableBase" destination="ubS-v9-zCa" id="gea-9H-gpI"/> 19 <outlet property="tableBase" destination="ubS-v9-zCa" id="gea-9H-gpI"/>
19 <outlet property="tableGrp" destination="dtD-J5-dze" id="ahq-Cd-85X"/> 20 <outlet property="tableGrp" destination="dtD-J5-dze" id="ahq-Cd-85X"/>
20 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 21 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
22 <outlet property="viewHeader" destination="vxT-xe-7mV" id="Vdh-R8-aiJ"/>
21 </connections> 23 </connections>
22 </placeholder> 24 </placeholder>
23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 25 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 26 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
25 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 27 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 28 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
27 <subviews> 29 <subviews>
28 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vxT-xe-7mV" userLabel="ViewHeader"> 30 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vxT-xe-7mV" userLabel="ViewHeader">
29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 31 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
30 <subviews> 32 <subviews>
31 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Txe-1I-61m" customClass="AutoTransLabel"> 33 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Txe-1I-61m" customClass="AutoTransLabel">
32 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 34 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
33 <fontDescription key="fontDescription" type="system" pointSize="17"/> 35 <fontDescription key="fontDescription" type="system" pointSize="17"/>
34 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 36 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
35 <nil key="highlightedColor"/> 37 <nil key="highlightedColor"/>
36 <userDefinedRuntimeAttributes> 38 <userDefinedRuntimeAttributes>
37 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/> 39 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.grDetail.title"/>
38 </userDefinedRuntimeAttributes> 40 </userDefinedRuntimeAttributes>
39 </label> 41 </label>
40 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DjI-qB-WTG"> 42 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DjI-qB-WTG">
41 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 43 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
42 <constraints> 44 <constraints>
43 <constraint firstAttribute="width" constant="70" id="Q1G-tI-sgx"/> 45 <constraint firstAttribute="width" constant="70" id="Q1G-tI-sgx"/>
44 </constraints> 46 </constraints>
45 <state key="normal" image="today_back_button"/> 47 <state key="normal" image="today_back_button"/>
46 <connections> 48 <connections>
47 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="93y-uZ-J2W"/> 49 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="93y-uZ-J2W"/>
48 </connections> 50 </connections>
49 </button> 51 </button>
50 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7gh-nf-sKZ"> 52 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="7gh-nf-sKZ">
51 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 53 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
52 <constraints> 54 <constraints>
53 <constraint firstAttribute="width" constant="45" id="Vw3-60-kvV"/> 55 <constraint firstAttribute="width" constant="45" id="Vw3-60-kvV"/>
54 </constraints> 56 </constraints>
55 <state key="normal" image="icon_menu"/> 57 <state key="normal" image="icon_menu"/>
56 </button> 58 </button>
57 </subviews> 59 </subviews>
58 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 60 <color key="backgroundColor" red="0.0" green="0.0" blue="0.21960784310000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
59 <constraints> 61 <constraints>
60 <constraint firstAttribute="trailing" secondItem="7gh-nf-sKZ" secondAttribute="trailing" id="2JD-YU-WS2"/> 62 <constraint firstAttribute="trailing" secondItem="7gh-nf-sKZ" secondAttribute="trailing" id="2JD-YU-WS2"/>
61 <constraint firstItem="Txe-1I-61m" firstAttribute="leading" secondItem="vxT-xe-7mV" secondAttribute="leading" id="30c-J3-6ba"/> 63 <constraint firstItem="Txe-1I-61m" firstAttribute="leading" secondItem="vxT-xe-7mV" secondAttribute="leading" id="30c-J3-6ba"/>
62 <constraint firstAttribute="bottom" secondItem="7gh-nf-sKZ" secondAttribute="bottom" id="61g-Gv-ka0"/> 64 <constraint firstAttribute="bottom" secondItem="7gh-nf-sKZ" secondAttribute="bottom" id="61g-Gv-ka0"/>
63 <constraint firstAttribute="bottom" secondItem="Txe-1I-61m" secondAttribute="bottom" id="BZZ-wj-MGj"/> 65 <constraint firstAttribute="bottom" secondItem="Txe-1I-61m" secondAttribute="bottom" id="BZZ-wj-MGj"/>
64 <constraint firstItem="7gh-nf-sKZ" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" id="DKT-Ea-U3k"/> 66 <constraint firstItem="7gh-nf-sKZ" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" id="DKT-Ea-U3k"/>
65 <constraint firstAttribute="trailing" secondItem="Txe-1I-61m" secondAttribute="trailing" id="WA1-1W-49C"/> 67 <constraint firstAttribute="trailing" secondItem="Txe-1I-61m" secondAttribute="trailing" id="WA1-1W-49C"/>
66 <constraint firstItem="DjI-qB-WTG" firstAttribute="leading" secondItem="vxT-xe-7mV" secondAttribute="leading" id="tA3-JF-Kjj"/> 68 <constraint firstItem="DjI-qB-WTG" firstAttribute="leading" secondItem="vxT-xe-7mV" secondAttribute="leading" id="tA3-JF-Kjj"/>
67 <constraint firstAttribute="bottom" secondItem="DjI-qB-WTG" secondAttribute="bottom" constant="5" id="uFc-I1-M2c"/> 69 <constraint firstAttribute="bottom" secondItem="DjI-qB-WTG" secondAttribute="bottom" constant="5" id="uFc-I1-M2c"/>
68 <constraint firstItem="Txe-1I-61m" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" id="ucO-rK-wAV"/> 70 <constraint firstItem="Txe-1I-61m" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" id="ucO-rK-wAV"/>
69 <constraint firstItem="DjI-qB-WTG" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" constant="5" id="vR3-xv-3hD"/> 71 <constraint firstItem="DjI-qB-WTG" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="top" constant="5" id="vR3-xv-3hD"/>
70 <constraint firstAttribute="height" constant="46" id="yIJ-Mu-bPA"/> 72 <constraint firstAttribute="height" constant="46" id="yIJ-Mu-bPA"/>
71 </constraints> 73 </constraints>
72 </view> 74 </view>
73 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hhh-nO-yn5"> 75 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hhh-nO-yn5">
74 <rect key="frame" x="15" y="54" width="345" height="36"/> 76 <rect key="frame" x="15" y="54" width="345" height="36"/>
75 <subviews> 77 <subviews>
76 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MvK-5R-njL"> 78 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MvK-5R-njL">
77 <rect key="frame" x="289" y="0.0" width="56" height="36"/> 79 <rect key="frame" x="289" y="0.0" width="56" height="36"/>
78 <constraints> 80 <constraints>
79 <constraint firstAttribute="width" constant="56" id="l8Q-On-RNy"/> 81 <constraint firstAttribute="width" constant="56" id="l8Q-On-RNy"/>
80 </constraints> 82 </constraints>
81 <state key="normal" backgroundImage="arrow_down"/> 83 <state key="normal" backgroundImage="arrow_down"/>
82 <connections> 84 <connections>
83 <action selector="clickShowGrp:" destination="-1" eventType="touchUpInside" id="yfd-Yu-fTF"/> 85 <action selector="clickShowGrp:" destination="-1" eventType="touchUpInside" id="yfd-Yu-fTF"/>
84 </connections> 86 </connections>
85 </button> 87 </button>
86 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No group" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xXv-SO-m4h"> 88 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="No group" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xXv-SO-m4h">
87 <rect key="frame" x="5" y="0.0" width="284" height="36"/> 89 <rect key="frame" x="5" y="0.0" width="284" height="36"/>
88 <fontDescription key="fontDescription" type="system" pointSize="15"/> 90 <fontDescription key="fontDescription" type="system" pointSize="15"/>
89 <nil key="textColor"/> 91 <nil key="textColor"/>
90 <nil key="highlightedColor"/> 92 <nil key="highlightedColor"/>
91 </label> 93 </label>
92 </subviews> 94 </subviews>
93 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 95 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
94 <constraints> 96 <constraints>
95 <constraint firstAttribute="trailing" secondItem="MvK-5R-njL" secondAttribute="trailing" id="IS8-5J-ypb"/> 97 <constraint firstAttribute="trailing" secondItem="MvK-5R-njL" secondAttribute="trailing" id="IS8-5J-ypb"/>
96 <constraint firstAttribute="bottom" secondItem="MvK-5R-njL" secondAttribute="bottom" id="IVS-f9-RjH"/> 98 <constraint firstAttribute="bottom" secondItem="MvK-5R-njL" secondAttribute="bottom" id="IVS-f9-RjH"/>
97 <constraint firstAttribute="bottom" secondItem="xXv-SO-m4h" secondAttribute="bottom" id="Ino-7v-CKz"/> 99 <constraint firstAttribute="bottom" secondItem="xXv-SO-m4h" secondAttribute="bottom" id="Ino-7v-CKz"/>
98 <constraint firstItem="MvK-5R-njL" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="top" id="NlH-tz-ByC"/> 100 <constraint firstItem="MvK-5R-njL" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="top" id="NlH-tz-ByC"/>
99 <constraint firstAttribute="height" constant="36" id="O8T-vH-tg6"/> 101 <constraint firstAttribute="height" constant="36" id="O8T-vH-tg6"/>
100 <constraint firstItem="MvK-5R-njL" firstAttribute="leading" secondItem="xXv-SO-m4h" secondAttribute="trailing" id="V51-fg-KCf"/> 102 <constraint firstItem="MvK-5R-njL" firstAttribute="leading" secondItem="xXv-SO-m4h" secondAttribute="trailing" id="V51-fg-KCf"/>
101 <constraint firstItem="xXv-SO-m4h" firstAttribute="leading" secondItem="hhh-nO-yn5" secondAttribute="leading" constant="5" id="eY6-uq-qWx"/> 103 <constraint firstItem="xXv-SO-m4h" firstAttribute="leading" secondItem="hhh-nO-yn5" secondAttribute="leading" constant="5" id="eY6-uq-qWx"/>
102 <constraint firstItem="xXv-SO-m4h" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="top" id="l3a-Th-4Kb"/> 104 <constraint firstItem="xXv-SO-m4h" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="top" id="l3a-Th-4Kb"/>
103 </constraints> 105 </constraints>
104 <userDefinedRuntimeAttributes> 106 <userDefinedRuntimeAttributes>
105 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 107 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
106 <integer key="value" value="5"/> 108 <integer key="value" value="5"/>
107 </userDefinedRuntimeAttribute> 109 </userDefinedRuntimeAttribute>
108 </userDefinedRuntimeAttributes> 110 </userDefinedRuntimeAttributes>
109 </view> 111 </view>
110 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SNe-1B-nwV"> 112 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SNe-1B-nwV">
111 <rect key="frame" x="15" y="105" width="345" height="105"/> 113 <rect key="frame" x="15" y="105" width="345" height="105"/>
112 <subviews> 114 <subviews>
113 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="グループ VMAP アメリカルート61完走" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hyY-rU-WJx"> 115 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="グループ VMAP アメリカルート61完走" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hyY-rU-WJx">
114 <rect key="frame" x="8" y="8" width="329" height="20"/> 116 <rect key="frame" x="8" y="8" width="329" height="20"/>
115 <constraints> 117 <constraints>
116 <constraint firstAttribute="height" constant="20" id="dx4-Lw-gRP"/> 118 <constraint firstAttribute="height" constant="20" id="dx4-Lw-gRP"/>
117 </constraints> 119 </constraints>
118 <fontDescription key="fontDescription" type="system" pointSize="14"/> 120 <fontDescription key="fontDescription" type="system" pointSize="14"/>
119 <nil key="textColor"/> 121 <nil key="textColor"/>
120 <nil key="highlightedColor"/> 122 <nil key="highlightedColor"/>
121 </label> 123 </label>
122 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P1r-ft-imP"> 124 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="P1r-ft-imP">
123 <rect key="frame" x="8" y="36" width="155" height="61"/> 125 <rect key="frame" x="8" y="36" width="155" height="61"/>
124 <constraints> 126 <constraints>
125 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="61" id="6m3-4u-yjQ"/> 127 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="61" id="6m3-4u-yjQ"/>
126 <constraint firstAttribute="width" constant="155" id="bJa-4P-B84"/> 128 <constraint firstAttribute="width" constant="155" id="bJa-4P-B84"/>
127 </constraints> 129 </constraints>
128 <fontDescription key="fontDescription" type="system" pointSize="14"/> 130 <fontDescription key="fontDescription" type="system" pointSize="14"/>
129 <nil key="textColor"/> 131 <nil key="textColor"/>
130 <nil key="highlightedColor"/> 132 <nil key="highlightedColor"/>
131 </label> 133 </label>
132 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fXA-Zh-ABB" customClass="AutoTransButton"> 134 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fXA-Zh-ABB" customClass="AutoTransButton">
133 <rect key="frame" x="171" y="67" width="166" height="30"/> 135 <rect key="frame" x="171" y="67" width="166" height="30"/>
134 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 136 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
135 <constraints> 137 <constraints>
136 <constraint firstAttribute="height" constant="30" id="4bu-TU-hhR"/> 138 <constraint firstAttribute="height" constant="30" id="4bu-TU-hhR"/>
137 <constraint firstAttribute="width" constant="166" id="hcm-Nd-TE4"/> 139 <constraint firstAttribute="width" constant="166" id="hcm-Nd-TE4"/>
138 </constraints> 140 </constraints>
139 <state key="normal" title="VMAP"> 141 <state key="normal" title="VMAP">
140 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 142 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
141 </state> 143 </state>
142 <userDefinedRuntimeAttributes> 144 <userDefinedRuntimeAttributes>
143 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 145 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
144 <integer key="value" value="10"/> 146 <integer key="value" value="10"/>
145 </userDefinedRuntimeAttribute> 147 </userDefinedRuntimeAttribute>
146 </userDefinedRuntimeAttributes> 148 </userDefinedRuntimeAttributes>
147 </button> 149 </button>
148 </subviews> 150 </subviews>
149 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 151 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
150 <constraints> 152 <constraints>
151 <constraint firstItem="P1r-ft-imP" firstAttribute="leading" secondItem="SNe-1B-nwV" secondAttribute="leading" constant="8" id="PCO-gJ-aUC"/> 153 <constraint firstItem="P1r-ft-imP" firstAttribute="leading" secondItem="SNe-1B-nwV" secondAttribute="leading" constant="8" id="PCO-gJ-aUC"/>
152 <constraint firstItem="P1r-ft-imP" firstAttribute="top" secondItem="hyY-rU-WJx" secondAttribute="bottom" constant="8" id="TFE-rm-YuC"/> 154 <constraint firstItem="P1r-ft-imP" firstAttribute="top" secondItem="hyY-rU-WJx" secondAttribute="bottom" constant="8" id="TFE-rm-YuC"/>
153 <constraint firstItem="hyY-rU-WJx" firstAttribute="leading" secondItem="SNe-1B-nwV" secondAttribute="leading" constant="8" id="Urc-sV-0AF"/> 155 <constraint firstItem="hyY-rU-WJx" firstAttribute="leading" secondItem="SNe-1B-nwV" secondAttribute="leading" constant="8" id="Urc-sV-0AF"/>
154 <constraint firstAttribute="bottom" secondItem="P1r-ft-imP" secondAttribute="bottom" constant="8" id="YYl-bN-XH2"/> 156 <constraint firstAttribute="bottom" secondItem="P1r-ft-imP" secondAttribute="bottom" constant="8" id="YYl-bN-XH2"/>
155 <constraint firstItem="hyY-rU-WJx" firstAttribute="top" secondItem="SNe-1B-nwV" secondAttribute="top" constant="8" id="a68-ja-X4x"/> 157 <constraint firstItem="hyY-rU-WJx" firstAttribute="top" secondItem="SNe-1B-nwV" secondAttribute="top" constant="8" id="a68-ja-X4x"/>
156 <constraint firstAttribute="trailing" secondItem="fXA-Zh-ABB" secondAttribute="trailing" constant="8" id="hNz-cE-JQc"/> 158 <constraint firstAttribute="trailing" secondItem="fXA-Zh-ABB" secondAttribute="trailing" constant="8" id="hNz-cE-JQc"/>
157 <constraint firstAttribute="trailing" secondItem="hyY-rU-WJx" secondAttribute="trailing" constant="8" id="tHp-Xw-Emj"/> 159 <constraint firstAttribute="trailing" secondItem="hyY-rU-WJx" secondAttribute="trailing" constant="8" id="tHp-Xw-Emj"/>
158 <constraint firstAttribute="bottom" secondItem="fXA-Zh-ABB" secondAttribute="bottom" constant="8" id="vRs-Al-kct"/> 160 <constraint firstAttribute="bottom" secondItem="fXA-Zh-ABB" secondAttribute="bottom" constant="8" id="vRs-Al-kct"/>
159 </constraints> 161 </constraints>
160 </view> 162 </view>
161 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ftA-wa-19F"> 163 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ftA-wa-19F">
162 <rect key="frame" x="15" y="218" width="345" height="40"/> 164 <rect key="frame" x="15" y="218" width="345" height="40"/>
163 <constraints> 165 <constraints>
164 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="40" id="sns-tn-c0d"/> 166 <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="40" id="sns-tn-c0d"/>
165 </constraints> 167 </constraints>
166 <fontDescription key="fontDescription" type="system" pointSize="14"/> 168 <fontDescription key="fontDescription" type="system" pointSize="14"/>
167 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 169 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
168 <nil key="highlightedColor"/> 170 <nil key="highlightedColor"/>
169 </label> 171 </label>
170 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eBu-7L-nsx" customClass="AutoTransButton"> 172 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eBu-7L-nsx" customClass="AutoTransButton">
171 <rect key="frame" x="194" y="268" width="166" height="30"/> 173 <rect key="frame" x="194" y="268" width="166" height="30"/>
172 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/> 174 <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
173 <constraints> 175 <constraints>
174 <constraint firstAttribute="width" constant="166" id="Rrn-lf-raV"/> 176 <constraint firstAttribute="width" constant="166" id="Rrn-lf-raV"/>
175 <constraint firstAttribute="height" constant="30" id="y2E-RH-aan"/> 177 <constraint firstAttribute="height" constant="30" id="y2E-RH-aan"/>
176 </constraints> 178 </constraints>
177 <state key="normal" title="メンバー"> 179 <state key="normal" title="メンバー">
178 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 180 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
179 </state> 181 </state>
180 <userDefinedRuntimeAttributes> 182 <userDefinedRuntimeAttributes>
181 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 183 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
182 <integer key="value" value="10"/> 184 <integer key="value" value="10"/>
183 </userDefinedRuntimeAttribute> 185 </userDefinedRuntimeAttribute>
184 </userDefinedRuntimeAttributes> 186 </userDefinedRuntimeAttributes>
185 <connections> 187 <connections>
186 <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="B7a-Hl-IlY"/> 188 <action selector="clickSwitch:" destination="-1" eventType="touchUpInside" id="B7a-Hl-IlY"/>
187 </connections> 189 </connections>
188 </button> 190 </button>
189 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="ubS-v9-zCa"> 191 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="ubS-v9-zCa">
190 <rect key="frame" x="0.0" y="313" width="375" height="304"/> 192 <rect key="frame" x="0.0" y="313" width="375" height="304"/>
191 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 193 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
192 <connections> 194 <connections>
193 <outlet property="dataSource" destination="-1" id="HIG-w5-mXN"/> 195 <outlet property="dataSource" destination="-1" id="HIG-w5-mXN"/>
194 <outlet property="delegate" destination="-1" id="GIa-bX-Av9"/> 196 <outlet property="delegate" destination="-1" id="GIa-bX-Av9"/>
195 </connections> 197 </connections>
196 </tableView> 198 </tableView>
197 <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="35" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="dtD-J5-dze"> 199 <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="35" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="dtD-J5-dze">
198 <rect key="frame" x="15" y="91" width="345" height="140"/> 200 <rect key="frame" x="15" y="91" width="345" height="140"/>
199 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 201 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
200 <constraints> 202 <constraints>
201 <constraint firstAttribute="height" constant="140" id="CrG-Ni-f6b"/> 203 <constraint firstAttribute="height" constant="140" id="CrG-Ni-f6b"/>
202 </constraints> 204 </constraints>
203 <connections> 205 <connections>
204 <outlet property="dataSource" destination="-1" id="2bH-mm-vKH"/> 206 <outlet property="dataSource" destination="-1" id="2bH-mm-vKH"/>
205 <outlet property="delegate" destination="-1" id="9tr-mh-5Ir"/> 207 <outlet property="delegate" destination="-1" id="9tr-mh-5Ir"/>
206 </connections> 208 </connections>
207 </tableView> 209 </tableView>
208 </subviews> 210 </subviews>
209 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 211 <color key="backgroundColor" red="0.0" green="0.0" blue="0.2196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
210 <constraints> 212 <constraints>
211 <constraint firstItem="ftA-wa-19F" firstAttribute="top" secondItem="SNe-1B-nwV" secondAttribute="bottom" constant="8" id="4iN-BW-Eaa"/> 213 <constraint firstItem="ftA-wa-19F" firstAttribute="top" secondItem="SNe-1B-nwV" secondAttribute="bottom" constant="8" id="4iN-BW-Eaa"/>
212 <constraint firstItem="vxT-xe-7mV" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5np-jI-7iK"/> 214 <constraint firstItem="vxT-xe-7mV" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="5np-jI-7iK"/>
213 <constraint firstAttribute="trailing" secondItem="eBu-7L-nsx" secondAttribute="trailing" constant="15" id="AkN-Cv-ULu"/> 215 <constraint firstAttribute="trailing" secondItem="eBu-7L-nsx" secondAttribute="trailing" constant="15" id="AkN-Cv-ULu"/>
214 <constraint firstItem="SNe-1B-nwV" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="bottom" constant="15" id="BL0-Cv-jlz"/> 216 <constraint firstItem="SNe-1B-nwV" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="bottom" constant="15" id="BL0-Cv-jlz"/>
215 <constraint firstItem="ubS-v9-zCa" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Dt8-xl-lI8"/> 217 <constraint firstItem="ubS-v9-zCa" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Dt8-xl-lI8"/>
216 <constraint firstAttribute="trailing" secondItem="SNe-1B-nwV" secondAttribute="trailing" constant="15" id="QiL-ts-ryc"/> 218 <constraint firstAttribute="trailing" secondItem="SNe-1B-nwV" secondAttribute="trailing" constant="15" id="QiL-ts-ryc"/>
217 <constraint firstItem="dtD-J5-dze" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="bottom" constant="1" id="QzJ-aS-NQ0"/> 219 <constraint firstItem="dtD-J5-dze" firstAttribute="top" secondItem="hhh-nO-yn5" secondAttribute="bottom" constant="1" id="QzJ-aS-NQ0"/>
218 <constraint firstItem="SNe-1B-nwV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="T4b-fq-Gc8"/> 220 <constraint firstItem="SNe-1B-nwV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="T4b-fq-Gc8"/>
219 <constraint firstAttribute="trailing" secondItem="hhh-nO-yn5" secondAttribute="trailing" constant="15" id="YB3-2b-4yx"/> 221 <constraint firstAttribute="trailing" secondItem="hhh-nO-yn5" secondAttribute="trailing" constant="15" id="YB3-2b-4yx"/>
220 <constraint firstAttribute="bottom" secondItem="ubS-v9-zCa" secondAttribute="bottom" constant="50" id="ZNH-0B-rWz"/> 222 <constraint firstAttribute="bottom" secondItem="ubS-v9-zCa" secondAttribute="bottom" constant="50" id="ZNH-0B-rWz"/>
221 <constraint firstItem="ftA-wa-19F" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bnx-K2-jVS"/> 223 <constraint firstItem="ftA-wa-19F" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="bnx-K2-jVS"/>
222 <constraint firstAttribute="trailing" secondItem="ubS-v9-zCa" secondAttribute="trailing" id="bsK-wi-RYU"/> 224 <constraint firstAttribute="trailing" secondItem="ubS-v9-zCa" secondAttribute="trailing" id="bsK-wi-RYU"/>
223 <constraint firstAttribute="trailing" secondItem="vxT-xe-7mV" secondAttribute="trailing" id="eld-fc-V95"/> 225 <constraint firstAttribute="trailing" secondItem="vxT-xe-7mV" secondAttribute="trailing" id="eld-fc-V95"/>
224 <constraint firstItem="hhh-nO-yn5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="gDN-Hr-2vm"/> 226 <constraint firstItem="hhh-nO-yn5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="gDN-Hr-2vm"/>
225 <constraint firstItem="vxT-xe-7mV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iBy-99-6Ky"/> 227 <constraint firstItem="vxT-xe-7mV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iBy-99-6Ky"/>
226 <constraint firstItem="dtD-J5-dze" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="ie5-ll-WkY"/> 228 <constraint firstItem="dtD-J5-dze" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="ie5-ll-WkY"/>
227 <constraint firstAttribute="trailing" secondItem="ftA-wa-19F" secondAttribute="trailing" constant="15" id="jaz-L9-glj"/> 229 <constraint firstAttribute="trailing" secondItem="ftA-wa-19F" secondAttribute="trailing" constant="15" id="jaz-L9-glj"/>
228 <constraint firstItem="eBu-7L-nsx" firstAttribute="top" secondItem="ftA-wa-19F" secondAttribute="bottom" constant="10" id="lF2-iL-Xa6"/> 230 <constraint firstItem="eBu-7L-nsx" firstAttribute="top" secondItem="ftA-wa-19F" secondAttribute="bottom" constant="10" id="lF2-iL-Xa6"/>
229 <constraint firstItem="ubS-v9-zCa" firstAttribute="top" secondItem="eBu-7L-nsx" secondAttribute="bottom" constant="15" id="ofF-9P-pq9"/> 231 <constraint firstItem="ubS-v9-zCa" firstAttribute="top" secondItem="eBu-7L-nsx" secondAttribute="bottom" constant="15" id="ofF-9P-pq9"/>
230 <constraint firstItem="hhh-nO-yn5" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="bottom" constant="8" id="qIL-RX-3zl"/> 232 <constraint firstItem="hhh-nO-yn5" firstAttribute="top" secondItem="vxT-xe-7mV" secondAttribute="bottom" constant="8" id="qIL-RX-3zl"/>
231 <constraint firstAttribute="trailing" secondItem="dtD-J5-dze" secondAttribute="trailing" constant="15" id="uHa-ot-bT0"/> 233 <constraint firstAttribute="trailing" secondItem="dtD-J5-dze" secondAttribute="trailing" constant="15" id="uHa-ot-bT0"/>
232 </constraints> 234 </constraints>
233 <point key="canvasLocation" x="24.5" y="52.5"/> 235 <point key="canvasLocation" x="24.5" y="52.5"/>
234 </view> 236 </view>
235 </objects> 237 </objects>
236 <resources> 238 <resources>
237 <image name="arrow_down" width="28" height="18"/> 239 <image name="arrow_down" width="28" height="18"/>
238 <image name="icon_menu" width="30" height="30"/> 240 <image name="icon_menu" width="30" height="30"/>
239 <image name="today_back_button" width="73" height="37"/> 241 <image name="today_back_button" width="73" height="37"/>
240 </resources> 242 </resources>
241 </document> 243 </document>
242 244
LifeLog/LifeLog/RankingTableViewCell.h
1 // 1 //
2 // RankingTableViewCell.h 2 // RankingTableViewCell.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/8/17. 5 // Created by nvtu on 8/8/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "RankingObject.h" 10 #import "RankingObject.h"
11 11
12 @interface RankingTableViewCell : UITableViewCell 12 @interface RankingTableViewCell : UITableViewCell
13 @property (weak, nonatomic) IBOutlet UILabel *lblIndex;
14 @property (weak, nonatomic) IBOutlet UILabel *lblName; 13 @property (weak, nonatomic) IBOutlet UILabel *lblName;
15 @property (weak, nonatomic) IBOutlet UILabel *lblStep; 14 @property (weak, nonatomic) IBOutlet UILabel *lblStep;
16 @property (weak, nonatomic) IBOutlet UILabel *lblTime; 15 @property (weak, nonatomic) IBOutlet UILabel *lblTime;
17 @property (weak, nonatomic) IBOutlet UILabel *lblDistance; 16 @property (weak, nonatomic) IBOutlet UILabel *lblDistance;
18 17
18 @property (weak, nonatomic) IBOutlet UIImageView *imgRank;
19 @property (weak, nonatomic) IBOutlet UIImageView *imgAvatar; 19 @property (weak, nonatomic) IBOutlet UIImageView *imgAvatar;
20 20
21 -(void) setRankingData : (RankingObject *) object; 21 -(void) setRankingData : (RankingObject *) object;
22 22
23 @end 23 @end
LifeLog/LifeLog/RankingTableViewCell.m
1 // 1 //
2 // RankingTableViewCell.m 2 // RankingTableViewCell.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/8/17. 5 // Created by nvtu on 8/8/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "RankingTableViewCell.h" 9 #import "RankingTableViewCell.h"
10 #import <SDWebImage/UIImageView+WebCache.h> 10 #import <SDWebImage/UIImageView+WebCache.h>
11 11
12 #import "Utilities.h" 12 #import "Utilities.h"
13 @implementation RankingTableViewCell 13 @implementation RankingTableViewCell
14 14
15 - (void)awakeFromNib { 15 - (void)awakeFromNib {
16 [super awakeFromNib]; 16 [super awakeFromNib];
17 // Initialization code 17 // Initialization code
18 } 18 }
19 19
20 - (void)setSelected:(BOOL)selected animated:(BOOL)animated { 20 - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
21 [super setSelected:selected animated:animated]; 21 [super setSelected:selected animated:animated];
22 22
23 // Configure the view for the selected state 23 // Configure the view for the selected state
24 } 24 }
25 25
26 -(void) setRankingData : (RankingObject *) object { 26 -(void) setRankingData : (RankingObject *) object {
27 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { 27 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
28 [self.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; 28 [self.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
29 } 29 }
30 else { 30 else {
31 [self.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; 31 [self.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
32 } 32 }
33 self.lblIndex.text = [NSString stringWithFormat:@"%d", object.rank];
34 self.lblName.text = object.userName; 33 self.lblName.text = object.userName;
35 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f km", object.distance]; 34 self.lblDistance.text = [NSString stringWithFormat:@"%0.1f km", object.distance];
36 self.lblStep.text = [NSString stringWithFormat:@"%d 歩", object.steps]; 35 self.lblStep.text = [NSString stringWithFormat:@"%d 歩", object.steps];
37 self.lblTime.text = [Utilities convertSecondToShortTime:object.time]; 36 self.lblTime.text = [Utilities convertSecondToShortTime:object.time];
38 } 37 }
39 @end 38 @end
40 39
LifeLog/LifeLog/RankingTableViewCell.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="Constraints to layout margins" minToolsVersion="6.0"/> 9 <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 11 </dependencies>
11 <objects> 12 <objects>
12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> 13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
13 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 14 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
14 <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="RankCell" id="KGk-i7-Jjw" customClass="RankingTableViewCell"> 15 <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="RankCell" id="KGk-i7-Jjw" customClass="RankingTableViewCell">
15 <rect key="frame" x="0.0" y="0.0" width="320" height="80"/> 16 <rect key="frame" x="0.0" y="0.0" width="320" height="80"/>
16 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 17 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
17 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM"> 18 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
18 <rect key="frame" x="0.0" y="0.0" width="320" height="79.5"/> 19 <rect key="frame" x="0.0" y="0.0" width="320" height="79.5"/>
19 <autoresizingMask key="autoresizingMask"/> 20 <autoresizingMask key="autoresizingMask"/>
20 <subviews> 21 <subviews>
21 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="8qq-of-Fwv">
22 <rect key="frame" x="0.0" y="0.0" width="40" height="80"/>
23 <constraints>
24 <constraint firstAttribute="width" constant="40" id="9dX-af-kQI"/>
25 </constraints>
26 <fontDescription key="fontDescription" type="system" pointSize="20"/>
27 <nil key="textColor"/>
28 <nil key="highlightedColor"/>
29 </label>
30 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="1CW-Zi-SG6"> 22 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="1CW-Zi-SG6">
31 <rect key="frame" x="48" y="15" width="50" height="50"/> 23 <rect key="frame" x="63" y="15" width="50" height="50"/>
24 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
32 <constraints> 25 <constraints>
33 <constraint firstAttribute="width" constant="50" id="1kJ-7c-3b3"/> 26 <constraint firstAttribute="width" constant="50" id="1kJ-7c-3b3"/>
34 <constraint firstAttribute="height" constant="50" id="LNu-c6-CgW"/> 27 <constraint firstAttribute="height" constant="50" id="LNu-c6-CgW"/>
35 </constraints> 28 </constraints>
29 <userDefinedRuntimeAttributes>
30 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
31 <integer key="value" value="5"/>
32 </userDefinedRuntimeAttribute>
33 </userDefinedRuntimeAttributes>
36 </imageView> 34 </imageView>
37 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ユーザー ニックネーム" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zAG-NS-RSG"> 35 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ユーザー ニックネーム" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zAG-NS-RSG">
38 <rect key="frame" x="106" y="8" width="206" height="15"/> 36 <rect key="frame" x="121" y="11" width="183" height="15"/>
39 <constraints> 37 <constraints>
40 <constraint firstAttribute="height" constant="15" id="RjF-Lj-HNO"/> 38 <constraint firstAttribute="height" constant="15" id="RjF-Lj-HNO"/>
41 </constraints> 39 </constraints>
42 <fontDescription key="fontDescription" type="system" pointSize="12"/> 40 <fontDescription key="fontDescription" type="system" pointSize="12"/>
43 <nil key="textColor"/> 41 <nil key="textColor"/>
44 <nil key="highlightedColor"/> 42 <nil key="highlightedColor"/>
45 </label> 43 </label>
46 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LgT-0e-lsD"> 44 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LgT-0e-lsD">
47 <rect key="frame" x="106" y="31" width="78" height="15"/> 45 <rect key="frame" x="121" y="34" width="64" height="15"/>
48 <constraints> 46 <constraints>
49 <constraint firstAttribute="height" constant="15" id="WXg-qM-mCv"/> 47 <constraint firstAttribute="height" constant="15" id="WXg-qM-mCv"/>
50 </constraints> 48 </constraints>
51 <string key="text" base64-UTF8="YES"> 49 <string key="text" base64-UTF8="YES">
52 MTIzNDUg5q2pAA 50 MTIzNDUg5q2pAA
53 </string> 51 </string>
54 <fontDescription key="fontDescription" type="system" pointSize="12"/> 52 <fontDescription key="fontDescription" type="system" pointSize="12"/>
55 <nil key="textColor"/> 53 <nil key="textColor"/>
56 <nil key="highlightedColor"/> 54 <nil key="highlightedColor"/>
57 </label> 55 </label>
58 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yeV-e1-xLt"> 56 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yeV-e1-xLt">
59 <rect key="frame" x="194" y="28" width="78" height="15"/> 57 <rect key="frame" x="241" y="31" width="64" height="15"/>
60 <constraints> 58 <constraints>
61 <constraint firstAttribute="height" constant="15" id="8uP-Oz-0UX"/> 59 <constraint firstAttribute="height" constant="15" id="8uP-Oz-0UX"/>
62 </constraints> 60 </constraints>
63 <string key="text" base64-UTF8="YES"> 61 <string key="text" base64-UTF8="YES">
64 MTIzNDU2IGttAA 62 MTIzNDU2IGttAA
65 </string> 63 </string>
66 <fontDescription key="fontDescription" type="system" pointSize="12"/> 64 <fontDescription key="fontDescription" type="system" pointSize="12"/>
67 <nil key="textColor"/> 65 <nil key="textColor"/>
68 <nil key="highlightedColor"/> 66 <nil key="highlightedColor"/>
69 </label> 67 </label>
70 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tapbar_today" translatesAutoresizingMaskIntoConstraints="NO" id="doD-2D-mUh">
71 <rect key="frame" x="280" y="28" width="25" height="25"/>
72 <constraints>
73 <constraint firstAttribute="height" constant="25" id="m7H-Vi-MjX"/>
74 <constraint firstAttribute="width" constant="25" id="yJJ-70-k1M"/>
75 </constraints>
76 </imageView>
77 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A45-dY-zJ7"> 68 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A45-dY-zJ7">
78 <rect key="frame" x="0.0" y="78" width="320" height="2"/> 69 <rect key="frame" x="0.0" y="79" width="320" height="1"/>
79 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 70 <color key="backgroundColor" white="1" alpha="0.5" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
80 <constraints> 71 <constraints>
81 <constraint firstAttribute="height" constant="2" id="RXE-vE-Bye"/> 72 <constraint firstAttribute="height" constant="0.5" id="RXE-vE-Bye"/>
82 </constraints> 73 </constraints>
83 </view> 74 </view>
84 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="11:22:33" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="esv-WJ-Jwb"> 75 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="11:22:33" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="esv-WJ-Jwb">
85 <rect key="frame" x="106" y="54" width="78" height="15"/> 76 <rect key="frame" x="121" y="57" width="64" height="15"/>
86 <constraints> 77 <constraints>
87 <constraint firstAttribute="height" constant="15" id="ZwB-X4-TCe"/> 78 <constraint firstAttribute="height" constant="15" id="ZwB-X4-TCe"/>
88 </constraints> 79 </constraints>
89 <fontDescription key="fontDescription" type="system" pointSize="12"/> 80 <fontDescription key="fontDescription" type="system" pointSize="12"/>
90 <nil key="textColor"/> 81 <nil key="textColor"/>
91 <nil key="highlightedColor"/> 82 <nil key="highlightedColor"/>
92 </label> 83 </label>
84 <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_rank_1" translatesAutoresizingMaskIntoConstraints="NO" id="RxI-g8-4hm">
85 <rect key="frame" x="5" y="15" width="50" height="50"/>
86 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
87 <constraints>
88 <constraint firstAttribute="width" constant="50" id="Klg-CU-2CS"/>
89 <constraint firstAttribute="height" constant="50" id="bZk-fY-WIZ"/>
90 </constraints>
91 <userDefinedRuntimeAttributes>
92 <userDefinedRuntimeAttribute type="number" keyPath="layer.borderRadius">
93 <integer key="value" value="5"/>
94 </userDefinedRuntimeAttribute>
95 </userDefinedRuntimeAttributes>
96 </imageView>
93 </subviews> 97 </subviews>
98 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
94 <constraints> 99 <constraints>
95 <constraint firstItem="doD-2D-mUh" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="57o-am-4IN"/>
96 <constraint firstItem="esv-WJ-Jwb" firstAttribute="top" secondItem="LgT-0e-lsD" secondAttribute="bottom" constant="8" id="6Bw-Lm-urU"/> 100 <constraint firstItem="esv-WJ-Jwb" firstAttribute="top" secondItem="LgT-0e-lsD" secondAttribute="bottom" constant="8" id="6Bw-Lm-urU"/>
97 <constraint firstItem="yeV-e1-xLt" firstAttribute="leading" secondItem="LgT-0e-lsD" secondAttribute="trailing" constant="10" id="8hM-D0-kmc"/> 101 <constraint firstItem="1CW-Zi-SG6" firstAttribute="leading" secondItem="RxI-g8-4hm" secondAttribute="trailing" constant="8" id="8uQ-Mj-NFo"/>
98 <constraint firstItem="LgT-0e-lsD" firstAttribute="top" secondItem="zAG-NS-RSG" secondAttribute="bottom" constant="8" id="Esk-56-nD6"/> 102 <constraint firstItem="LgT-0e-lsD" firstAttribute="top" secondItem="zAG-NS-RSG" secondAttribute="bottom" constant="8" id="Esk-56-nD6"/>
99 <constraint firstItem="zAG-NS-RSG" firstAttribute="trailing" secondItem="H2p-sc-9uM" secondAttribute="trailingMargin" id="GMx-VQ-Jq1"/> 103 <constraint firstItem="zAG-NS-RSG" firstAttribute="trailing" secondItem="H2p-sc-9uM" secondAttribute="trailingMargin" id="GMx-VQ-Jq1"/>
100 <constraint firstItem="doD-2D-mUh" firstAttribute="leading" secondItem="yeV-e1-xLt" secondAttribute="trailing" constant="8" id="Juh-q9-fxs"/> 104 <constraint firstItem="RxI-g8-4hm" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="Kn2-D6-axQ"/>
101 <constraint firstItem="zAG-NS-RSG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" id="R9z-fc-ARl"/> 105 <constraint firstItem="zAG-NS-RSG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" id="R9z-fc-ARl"/>
102 <constraint firstItem="esv-WJ-Jwb" firstAttribute="leading" secondItem="zAG-NS-RSG" secondAttribute="leading" id="Sfp-Ch-JEA"/> 106 <constraint firstItem="esv-WJ-Jwb" firstAttribute="leading" secondItem="zAG-NS-RSG" secondAttribute="leading" id="Sfp-Ch-JEA"/>
103 <constraint firstItem="yeV-e1-xLt" firstAttribute="width" secondItem="LgT-0e-lsD" secondAttribute="width" id="Slm-k1-rIR"/> 107 <constraint firstItem="yeV-e1-xLt" firstAttribute="width" secondItem="LgT-0e-lsD" secondAttribute="width" id="Slm-k1-rIR"/>
104 <constraint firstAttribute="bottom" secondItem="8qq-of-Fwv" secondAttribute="bottom" id="VVC-Dv-8ey"/>
105 <constraint firstItem="A45-dY-zJ7" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Xwe-lc-LeM"/> 108 <constraint firstItem="A45-dY-zJ7" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="Xwe-lc-LeM"/>
109 <constraint firstAttribute="trailing" secondItem="yeV-e1-xLt" secondAttribute="trailing" constant="15" id="Zbx-pF-zZd"/>
106 <constraint firstItem="LgT-0e-lsD" firstAttribute="leading" secondItem="1CW-Zi-SG6" secondAttribute="trailing" constant="8" id="dLZ-Nv-Dbr"/> 110 <constraint firstItem="LgT-0e-lsD" firstAttribute="leading" secondItem="1CW-Zi-SG6" secondAttribute="trailing" constant="8" id="dLZ-Nv-Dbr"/>
107 <constraint firstItem="8qq-of-Fwv" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="dUj-3F-TgF"/>
108 <constraint firstAttribute="trailing" secondItem="A45-dY-zJ7" secondAttribute="trailing" id="e8P-ju-Xmq"/> 111 <constraint firstAttribute="trailing" secondItem="A45-dY-zJ7" secondAttribute="trailing" id="e8P-ju-Xmq"/>
109 <constraint firstItem="1CW-Zi-SG6" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="eCg-Ck-ONU"/> 112 <constraint firstItem="1CW-Zi-SG6" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="eCg-Ck-ONU"/>
110 <constraint firstItem="yeV-e1-xLt" firstAttribute="top" secondItem="zAG-NS-RSG" secondAttribute="bottom" constant="5" id="gYr-ss-0or"/> 113 <constraint firstItem="yeV-e1-xLt" firstAttribute="top" secondItem="zAG-NS-RSG" secondAttribute="bottom" constant="5" id="gYr-ss-0or"/>
111 <constraint firstAttribute="trailing" secondItem="doD-2D-mUh" secondAttribute="trailing" constant="15" id="iNO-rk-u4D"/> 114 <constraint firstItem="RxI-g8-4hm" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="5" id="uoo-ZV-klx"/>
112 <constraint firstItem="zAG-NS-RSG" firstAttribute="leading" secondItem="1CW-Zi-SG6" secondAttribute="trailing" constant="8" id="vfh-9w-5DO"/> 115 <constraint firstItem="zAG-NS-RSG" firstAttribute="leading" secondItem="1CW-Zi-SG6" secondAttribute="trailing" constant="8" id="vfh-9w-5DO"/>
113 <constraint firstItem="8qq-of-Fwv" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="wiB-Bb-Ji6"/>
114 <constraint firstItem="esv-WJ-Jwb" firstAttribute="width" secondItem="LgT-0e-lsD" secondAttribute="width" id="xkA-nN-FEv"/> 116 <constraint firstItem="esv-WJ-Jwb" firstAttribute="width" secondItem="LgT-0e-lsD" secondAttribute="width" id="xkA-nN-FEv"/>
LifeLog/LifeLog/RankingViewController.h
1 // 1 //
2 // RankingViewController.h 2 // RankingViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 10
11 #import "BaseTableViewController.h" 11 #import "BaseTableViewController.h"
12 #import "CollectionView.h" 12 #import "CollectionView.h"
13 13
14 @interface RankingViewController : BaseTableViewController { 14 @interface RankingViewController : BaseTableViewController {
15 NSDate * _startDate; 15 NSDate * _startDate;
16 NSDate * _endDate; 16 NSDate * _endDate;
17 } 17 }
18 18
19 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
19 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionTime; 20 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionTime;
20 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode; 21 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode;
21 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType; 22 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType;
22 @property (weak, nonatomic) IBOutlet UILabel *lblDateTime; 23 @property (weak, nonatomic) IBOutlet UILabel *lblDateTime;
23 24
24 - (IBAction)clickBackward:(UIButton *)sender; 25 - (IBAction)clickBackward:(UIButton *)sender;
25 - (IBAction)clickForward:(UIButton *)sender; 26 - (IBAction)clickForward:(UIButton *)sender;
26 @end 27 @end
27 28
LifeLog/LifeLog/RankingViewController.m
1 // 1 //
2 // RankingViewController.m 2 // RankingViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "RankingViewController.h" 9 #import "RankingViewController.h"
10 #import "RankingTableViewCell.h" 10 #import "RankingTableViewCell.h"
11 11
12 #import "ServerAPI.h" 12 #import "ServerAPI.h"
13 #import "Utilities.h" 13 #import "Utilities.h"
14 14
15 @interface RankingViewController () 15 @interface RankingViewController ()
16 16
17 @end 17 @end
18 18
19 @implementation RankingViewController 19 @implementation RankingViewController
20 20
21 - (void)viewDidLoad { 21 - (void)viewDidLoad {
22 [super viewDidLoad]; 22 [super viewDidLoad];
23 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.viewCollectionType attribute:NSLayoutAttributeBottom multiplier:1 constant:5]]; 23 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.bottomLayoutGuide attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.viewCollectionType attribute:NSLayoutAttributeBottom multiplier:1 constant:5]];
24 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
24 // Do any additional setup after loading the view from its nib. 25 // Do any additional setup after loading the view from its nib.
25 self.title = NSLocalizedString(@"lifelog.rank.title", nil); 26 // self.title = NSLocalizedString(@"lifelog.rank.title", nil);
26 27
27 [self setupView]; 28 [self setupView];
28 29
29 _startDate = [NSDate date]; 30 _startDate = [NSDate date];
30 _endDate = _startDate; 31 _endDate = _startDate;
31 self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"]; 32 self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
32 33
33 //register nib for table view 34 //register nib for table view
34 [self.tableBase registerNib:[UINib nibWithNibName:@"RankingTableViewCell" bundle:nil] forCellReuseIdentifier:@"RankCell"]; 35 [self.tableBase registerNib:[UINib nibWithNibName:@"RankingTableViewCell" bundle:nil] forCellReuseIdentifier:@"RankCell"];
35 36
36 [self callRequestToUpdateData]; 37 [self callRequestToUpdateData];
37 } 38 }
38 39
39 - (void)didReceiveMemoryWarning { 40 - (void)didReceiveMemoryWarning {
40 [super didReceiveMemoryWarning]; 41 [super didReceiveMemoryWarning];
41 // Dispose of any resources that can be recreated. 42 // Dispose of any resources that can be recreated.
42 } 43 }
43 44
44 #pragma mark Setup and Update View 45 #pragma mark Setup and Update View
45 46
46 - (void)setupView { 47 - (void)setupView {
47 NSArray *timeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.time.1", nil), NSLocalizedString(@"lifelog.rank.time.2", nil), NSLocalizedString(@"lifelog.rank.time.3", nil), NSLocalizedString(@"lifelog.rank.time.4", nil), nil]; 48 NSArray *timeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.time.1", nil), NSLocalizedString(@"lifelog.rank.time.2", nil), NSLocalizedString(@"lifelog.rank.time.3", nil), NSLocalizedString(@"lifelog.rank.time.4", nil), nil];
48 [self.viewCollectionTime setButtonNumber:timeTitle.count]; 49 [self.viewCollectionTime setButtonNumber:timeTitle.count];
49 [self.viewCollectionTime setSpacing:1]; 50 [self.viewCollectionTime setSpacing:1];
50 [self.viewCollectionTime setArrayTitle:timeTitle]; 51 [self.viewCollectionTime setArrayTitle:timeTitle];
51 self.viewCollectionTime.changeCurrentIndex = ^(int index){ 52 self.viewCollectionTime.changeCurrentIndex = ^(int index){
52 [self changeDate]; 53 [self changeDate];
53 }; 54 };
54 55
55 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.mode.1", nil), NSLocalizedString(@"lifelog.rank.mode.2", nil), NSLocalizedString(@"lifelog.rank.mode.3", nil), NSLocalizedString(@"lifelog.rank.mode.4", nil), nil]; 56 NSArray *modeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.mode.1", nil), NSLocalizedString(@"lifelog.rank.mode.2", nil), NSLocalizedString(@"lifelog.rank.mode.3", nil), NSLocalizedString(@"lifelog.rank.mode.4", nil), nil];
56 [self.viewCollectionMode setButtonNumber:modeTitle.count]; 57 [self.viewCollectionMode setButtonNumber:modeTitle.count];
57 [self.viewCollectionMode setSpacing:1]; 58 [self.viewCollectionMode setSpacing:1];
58 [self.viewCollectionMode setArrayTitle:modeTitle]; 59 [self.viewCollectionMode setArrayTitle:modeTitle];
59 self.viewCollectionMode.changeCurrentIndex = ^(int index){ 60 self.viewCollectionMode.changeCurrentIndex = ^(int index){
60 [self callRequestToUpdateData]; 61 [self callRequestToUpdateData];
61 }; 62 };
62 63
63 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.type.1", nil), NSLocalizedString(@"lifelog.rank.type.2", nil), NSLocalizedString(@"lifelog.rank.type.3", nil), NSLocalizedString(@"lifelog.rank.type.4", nil), nil]; 64 NSArray *typeTitle = [NSArray arrayWithObjects:NSLocalizedString(@"lifelog.rank.type.1", nil), NSLocalizedString(@"lifelog.rank.type.2", nil), NSLocalizedString(@"lifelog.rank.type.3", nil), NSLocalizedString(@"lifelog.rank.type.4", nil), nil];
64 [self.viewCollectionType setButtonNumber:typeTitle.count]; 65 [self.viewCollectionType setButtonNumber:typeTitle.count];
65 [self.viewCollectionType setSpacing:1]; 66 [self.viewCollectionType setSpacing:1];
66 [self.viewCollectionType setArrayTitle:typeTitle]; 67 [self.viewCollectionType setArrayTitle:typeTitle];
67 self.viewCollectionMode.changeCurrentIndex = ^(int index){ 68 self.viewCollectionMode.changeCurrentIndex = ^(int index){
68 [self callRequestToUpdateData]; 69 [self callRequestToUpdateData];
69 }; 70 };
70 } 71 }
71 72
72 73
73 #pragma mark IBAction function 74 #pragma mark IBAction function
74 - (IBAction)clickBackward:(UIButton *)sender { 75 - (IBAction)clickBackward:(UIButton *)sender {
75 _endDate = [_endDate dateByAddingTimeInterval:-86400]; 76 _endDate = [_endDate dateByAddingTimeInterval:-86400];
76 [self changeDate]; 77 [self changeDate];
77 } 78 }
78 79
79 - (IBAction)clickForward:(UIButton *)sender { 80 - (IBAction)clickForward:(UIButton *)sender {
80 _endDate = [_endDate dateByAddingTimeInterval:86400]; 81 _endDate = [_endDate dateByAddingTimeInterval:86400];
81 [self changeDate]; 82 [self changeDate];
82 } 83 }
83 84
84 #pragma mark UITableView Delegate 85 #pragma mark UITableView Delegate
85 86
86 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 87 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
87 RankingTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RankCell"]; 88 RankingTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RankCell"];
89 if(indexPath.row == 0) {
90 cell.imgRank.image = [UIImage imageNamed:@"ic_rank_1"];
91 } else if(indexPath.row == 1) {
92 cell.imgRank.image = [UIImage imageNamed:@"ic_rank_2"];
93 } else if(indexPath.row == 2) {
94 cell.imgRank.image = [UIImage imageNamed:@"ic_rank_3"];
95 } else {
96 cell.imgRank.image = NULL;
97 }
88 [cell setRankingData:[_curDataList objectAtIndex:indexPath.row]]; 98 [cell setRankingData:[_curDataList objectAtIndex:indexPath.row]];
89 return cell; 99 return cell;
90 } 100 }
91 101
92 #pragma mark Private function 102 #pragma mark Private function
93 - (void)callRequestToUpdateData { 103 - (void)callRequestToUpdateData {
94 [super callRequestToUpdateData]; 104 [super callRequestToUpdateData];
95 105
96 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 106 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
97 MBProgressHUD *hudView = nil; 107 MBProgressHUD *hudView = nil;
98 int mode = self.viewCollectionMode.getCurrentIndex + 1; 108 int mode = self.viewCollectionMode.getCurrentIndex + 1;
99 //dont have all 109 //dont have all
100 mode = fmin(mode, 3); 110 mode = fmin(mode, 3);
101 111
102 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 112 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
103 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 113 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
104 } 114 }
105 [[ServerAPI server] requestRankingList:token startDate:_startDate endDate:_endDate mode:mode page:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 115 [[ServerAPI server] requestRankingList:token startDate:_startDate endDate:_endDate mode:mode page:_curPage CompletionHandler:^(NSArray *array, NSError *error){
106 dispatch_async(dispatch_get_main_queue(), ^{ 116 dispatch_async(dispatch_get_main_queue(), ^{
107 if(hudView != nil) { 117 if(hudView != nil) {
108 [hudView hideAnimated:true]; 118 [hudView hideAnimated:true];
109 } 119 }
110 }); 120 });
111 RankingViewController __weak *weakSelf = self; 121 RankingViewController __weak *weakSelf = self;
112 [weakSelf updateTableData:array error:error]; 122 [weakSelf updateTableData:array error:error];
113 }]; 123 }];
114 } 124 }
115 125
116 - (void) changeDate { 126 - (void) changeDate {
117 switch (self.viewCollectionTime.getCurrentIndex) { 127 switch (self.viewCollectionTime.getCurrentIndex) {
118 case 1: 128 case 1:
119 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 7]; 129 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 7];
120 break; 130 break;
121 case 2: 131 case 2:
122 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30]; 132 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 30];
123 break; 133 break;
124 case 3: 134 case 3:
125 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 365]; 135 _startDate = [_endDate dateByAddingTimeInterval:-86400 * 365];
126 break; 136 break;
127 default: 137 default:
128 _startDate = _endDate; 138 _startDate = _endDate;
129 break; 139 break;
130 } 140 }
131 if(_startDate == _endDate) { 141 if(_startDate == _endDate) {
132 self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"]; 142 self.lblDateTime.text = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日 EEEE" locale:@"ja_JP"];
133 } 143 }
134 else { 144 else {
135 NSString * startDateString = [Utilities stringFromDate:_startDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"]; 145 NSString * startDateString = [Utilities stringFromDate:_startDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
136 NSString * endDateString = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"]; 146 NSString * endDateString = [Utilities stringFromDate:_endDate withFormat:@"YYYY年MM月dd日" locale:@"ja_JP"];
137 self.lblDateTime.text = [NSString stringWithFormat:@"%@-%@", startDateString, endDateString]; 147 self.lblDateTime.text = [NSString stringWithFormat:@"%@-%@", startDateString, endDateString];
138 } 148 }
139 [self callRequestToUpdateData]; 149 [self callRequestToUpdateData];
140 } 150 }
141 @end 151 @end
142 152
LifeLog/LifeLog/RankingViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <deployment identifier="iOS"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/> 8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 </dependencies> 10 </dependencies>
11 <objects> 11 <objects>
12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RankingViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RankingViewController">
13 <connections> 13 <connections>
14 <outlet property="lblDateTime" destination="5Ro-k6-fvT" id="5uO-ff-Pmc"/> 14 <outlet property="lblDateTime" destination="5Ro-k6-fvT" id="5uO-ff-Pmc"/>
15 <outlet property="tableBase" destination="R3A-K9-MFe" id="Tf9-Rg-PEW"/> 15 <outlet property="tableBase" destination="R3A-K9-MFe" id="Tf9-Rg-PEW"/>
16 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 16 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
17 <outlet property="viewCollectionMode" destination="B33-xX-Jro" id="HP4-Xb-LJm"/> 17 <outlet property="viewCollectionMode" destination="B33-xX-Jro" id="HP4-Xb-LJm"/>
18 <outlet property="viewCollectionTime" destination="syA-uK-pbr" id="WdA-Cq-Flj"/> 18 <outlet property="viewCollectionTime" destination="syA-uK-pbr" id="WdA-Cq-Flj"/>
19 <outlet property="viewCollectionType" destination="oUo-Eo-tz5" id="bjw-El-34G"/> 19 <outlet property="viewCollectionType" destination="oUo-Eo-tz5" id="bjw-El-34G"/>
20 <outlet property="viewHeader" destination="GBx-lY-9YI" id="IMV-pV-QhA"/>
20 </connections> 21 </connections>
21 </placeholder> 22 </placeholder>
22 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
23 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
24 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 25 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
25 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
26 <subviews> 27 <subviews>
28 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="r1L-Yo-yok">
29 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
30 </imageView>
27 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBx-lY-9YI" userLabel="ViewHeader"> 31 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBx-lY-9YI" userLabel="ViewHeader">
28 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 32 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
29 <subviews> 33 <subviews>
30 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ランキング" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p97-40-8m9" customClass="AutoTransLabel"> 34 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ランキング" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p97-40-8m9" customClass="AutoTransLabel">
31 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 35 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
32 <fontDescription key="fontDescription" type="system" pointSize="17"/> 36 <fontDescription key="fontDescription" type="system" pointSize="17"/>
33 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 37 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
34 <nil key="highlightedColor"/> 38 <nil key="highlightedColor"/>
35 <userDefinedRuntimeAttributes> 39 <userDefinedRuntimeAttributes>
36 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/> 40 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/>
37 </userDefinedRuntimeAttributes> 41 </userDefinedRuntimeAttributes>
38 </label> 42 </label>
39 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp"> 43 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp">
40 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 44 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
41 <constraints> 45 <constraints>
42 <constraint firstAttribute="width" constant="70" id="bEy-jt-69Q"/> 46 <constraint firstAttribute="width" constant="70" id="bEy-jt-69Q"/>
43 </constraints> 47 </constraints>
44 <state key="normal" image="today_back_button"/> 48 <state key="normal" image="today_back_button"/>
45 </button> 49 </button>
46 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WGc-2i-Swk"> 50 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WGc-2i-Swk">
47 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 51 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
48 <constraints> 52 <constraints>
49 <constraint firstAttribute="width" constant="45" id="nJ2-jH-Z45"/> 53 <constraint firstAttribute="width" constant="45" id="nJ2-jH-Z45"/>
50 </constraints> 54 </constraints>
51 <state key="normal" image="icon_menu"/> 55 <state key="normal" image="icon_menu"/>
52 </button> 56 </button>
53 </subviews> 57 </subviews>
54 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 58 <color key="backgroundColor" red="0.0" green="0.0" blue="0.2196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
55 <constraints> 59 <constraints>
56 <constraint firstAttribute="bottom" secondItem="WGc-2i-Swk" secondAttribute="bottom" id="0hd-fk-kJG"/> 60 <constraint firstAttribute="bottom" secondItem="WGc-2i-Swk" secondAttribute="bottom" id="0hd-fk-kJG"/>
57 <constraint firstAttribute="bottom" secondItem="p97-40-8m9" secondAttribute="bottom" id="78G-b2-wAu"/> 61 <constraint firstAttribute="bottom" secondItem="p97-40-8m9" secondAttribute="bottom" id="78G-b2-wAu"/>
58 <constraint firstItem="qPe-ff-jRp" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="9ND-Te-qX9"/> 62 <constraint firstItem="qPe-ff-jRp" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="9ND-Te-qX9"/>
59 <constraint firstItem="qPe-ff-jRp" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" constant="5" id="9ZX-A3-Bnp"/> 63 <constraint firstItem="qPe-ff-jRp" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" constant="5" id="9ZX-A3-Bnp"/>
60 <constraint firstItem="p97-40-8m9" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="CVN-ke-5KK"/> 64 <constraint firstItem="p97-40-8m9" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="CVN-ke-5KK"/>
61 <constraint firstAttribute="height" constant="46" id="SDI-ij-KbH"/> 65 <constraint firstAttribute="height" constant="46" id="SDI-ij-KbH"/>
62 <constraint firstItem="p97-40-8m9" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="U19-fM-q7G"/> 66 <constraint firstItem="p97-40-8m9" firstAttribute="leading" secondItem="GBx-lY-9YI" secondAttribute="leading" id="U19-fM-q7G"/>
63 <constraint firstAttribute="bottom" secondItem="qPe-ff-jRp" secondAttribute="bottom" constant="5" id="jU7-xM-YKX"/> 67 <constraint firstAttribute="bottom" secondItem="qPe-ff-jRp" secondAttribute="bottom" constant="5" id="jU7-xM-YKX"/>
64 <constraint firstItem="WGc-2i-Swk" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="knL-Yf-VTN"/> 68 <constraint firstItem="WGc-2i-Swk" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="top" id="knL-Yf-VTN"/>
65 <constraint firstAttribute="trailing" secondItem="p97-40-8m9" secondAttribute="trailing" id="sLL-ca-92S"/> 69 <constraint firstAttribute="trailing" secondItem="p97-40-8m9" secondAttribute="trailing" id="sLL-ca-92S"/>
66 <constraint firstAttribute="trailing" secondItem="WGc-2i-Swk" secondAttribute="trailing" id="v0h-pb-83W"/> 70 <constraint firstAttribute="trailing" secondItem="WGc-2i-Swk" secondAttribute="trailing" id="v0h-pb-83W"/>
67 </constraints> 71 </constraints>
68 </view> 72 </view>
69 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="syA-uK-pbr" customClass="CollectionView"> 73 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="syA-uK-pbr" customClass="CollectionView">
70 <rect key="frame" x="0.0" y="46" width="375" height="30"/> 74 <rect key="frame" x="0.0" y="46" width="375" height="30"/>
71 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 75 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
72 <constraints> 76 <constraints>
73 <constraint firstAttribute="height" constant="30" id="ezW-Qs-M7K"/> 77 <constraint firstAttribute="height" constant="30" id="ezW-Qs-M7K"/>
74 </constraints> 78 </constraints>
75 </view> 79 </view>
76 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="B33-xX-Jro" customClass="CollectionView"> 80 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="B33-xX-Jro" customClass="CollectionView">
77 <rect key="frame" x="0.0" y="116" width="375" height="30"/> 81 <rect key="frame" x="0.0" y="116" width="375" height="30"/>
78 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 82 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
79 <constraints> 83 <constraints>
80 <constraint firstAttribute="height" constant="30" id="snn-FM-11r"/> 84 <constraint firstAttribute="height" constant="30" id="snn-FM-11r"/>
81 </constraints> 85 </constraints>
82 </view> 86 </view>
83 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u5D-xz-8dK"> 87 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u5D-xz-8dK">
84 <rect key="frame" x="0.0" y="76" width="375" height="40"/> 88 <rect key="frame" x="0.0" y="76" width="375" height="40"/>
85 <subviews> 89 <subviews>
86 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Ro-k6-fvT"> 90 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5Ro-k6-fvT">
87 <rect key="frame" x="0.0" y="0.0" width="375" height="40"/> 91 <rect key="frame" x="0.0" y="0.0" width="375" height="40"/>
92 <color key="backgroundColor" white="1" alpha="0.26000000000000001" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
88 <string key="text" base64-UTF8="YES"> 93 <string key="text" base64-UTF8="YES">
89 MjAxNuW5tCAx5pyIMjLml6XjgIDvvI3jgIAyMDE35bm0IDHmnIgyMeaXpQ0KAA 94 MjAxNuW5tCAx5pyIMjLml6XjgIDvvI3jgIAyMDE35bm0IDHmnIgyMeaXpQ0KAA
90 </string> 95 </string>
91 <fontDescription key="fontDescription" type="system" pointSize="13"/> 96 <fontDescription key="fontDescription" type="system" pointSize="13"/>
92 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 97 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
93 <nil key="highlightedColor"/> 98 <nil key="highlightedColor"/>
94 </label> 99 </label>
95 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eiH-Sk-3VV"> 100 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eiH-Sk-3VV">
96 <rect key="frame" x="15" y="5" width="30" height="30"/> 101 <rect key="frame" x="15" y="5" width="30" height="30"/>
97 <constraints> 102 <constraints>
98 <constraint firstAttribute="height" constant="30" id="kEd-sQ-0ub"/> 103 <constraint firstAttribute="height" constant="30" id="kEd-sQ-0ub"/>
99 <constraint firstAttribute="width" constant="30" id="sFT-sr-7pL"/> 104 <constraint firstAttribute="width" constant="30" id="sFT-sr-7pL"/>
100 </constraints> 105 </constraints>
101 <state key="normal" image="icon_left"/> 106 <state key="normal" image="icon_left"/>
102 <connections> 107 <connections>
103 <action selector="clickBackward:" destination="-1" eventType="touchUpInside" id="8KB-3G-h6v"/> 108 <action selector="clickBackward:" destination="-1" eventType="touchUpInside" id="8KB-3G-h6v"/>
104 </connections> 109 </connections>
105 </button> 110 </button>
106 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Usl-Cl-d9d"> 111 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Usl-Cl-d9d">
107 <rect key="frame" x="330" y="5" width="30" height="30"/> 112 <rect key="frame" x="330" y="5" width="30" height="30"/>
108 <constraints> 113 <constraints>
109 <constraint firstAttribute="width" constant="30" id="uFf-AY-LsL"/> 114 <constraint firstAttribute="width" constant="30" id="uFf-AY-LsL"/>
110 <constraint firstAttribute="height" constant="30" id="v8w-hV-CY1"/> 115 <constraint firstAttribute="height" constant="30" id="v8w-hV-CY1"/>
111 </constraints> 116 </constraints>
112 <state key="normal" image="icon_right"/> 117 <state key="normal" image="icon_right"/>
113 <connections> 118 <connections>
114 <action selector="clickForward:" destination="-1" eventType="touchUpInside" id="sgL-89-hXv"/> 119 <action selector="clickForward:" destination="-1" eventType="touchUpInside" id="sgL-89-hXv"/>
115 </connections> 120 </connections>
116 </button> 121 </button>
117 </subviews> 122 </subviews>
118 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 123 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
119 <constraints> 124 <constraints>
120 <constraint firstAttribute="height" constant="40" id="C5o-Zd-KjG"/> 125 <constraint firstAttribute="height" constant="40" id="C5o-Zd-KjG"/>
121 <constraint firstAttribute="bottom" secondItem="5Ro-k6-fvT" secondAttribute="bottom" id="DQQ-wh-s1Q"/> 126 <constraint firstAttribute="bottom" secondItem="5Ro-k6-fvT" secondAttribute="bottom" id="DQQ-wh-s1Q"/>
122 <constraint firstAttribute="trailing" secondItem="5Ro-k6-fvT" secondAttribute="trailing" id="E0c-bJ-AIi"/> 127 <constraint firstAttribute="trailing" secondItem="5Ro-k6-fvT" secondAttribute="trailing" id="E0c-bJ-AIi"/>
123 <constraint firstItem="5Ro-k6-fvT" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="top" id="Mrk-FC-rqh"/> 128 <constraint firstItem="5Ro-k6-fvT" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="top" id="Mrk-FC-rqh"/>
124 <constraint firstItem="eiH-Sk-3VV" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="k2J-Lc-ZDI"/> 129 <constraint firstItem="eiH-Sk-3VV" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="k2J-Lc-ZDI"/>
125 <constraint firstItem="5Ro-k6-fvT" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" id="rj5-0J-xs3"/> 130 <constraint firstItem="5Ro-k6-fvT" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" id="rj5-0J-xs3"/>
126 <constraint firstItem="Usl-Cl-d9d" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="sJX-n3-1pz"/> 131 <constraint firstItem="Usl-Cl-d9d" firstAttribute="centerY" secondItem="u5D-xz-8dK" secondAttribute="centerY" id="sJX-n3-1pz"/>
127 <constraint firstItem="eiH-Sk-3VV" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" constant="15" id="to7-WU-7xo"/> 132 <constraint firstItem="eiH-Sk-3VV" firstAttribute="leading" secondItem="u5D-xz-8dK" secondAttribute="leading" constant="15" id="to7-WU-7xo"/>
128 <constraint firstAttribute="trailing" secondItem="Usl-Cl-d9d" secondAttribute="trailing" constant="15" id="yDF-9k-XlW"/> 133 <constraint firstAttribute="trailing" secondItem="Usl-Cl-d9d" secondAttribute="trailing" constant="15" id="yDF-9k-XlW"/>
129 </constraints> 134 </constraints>
130 </view> 135 </view>
131 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oUo-Eo-tz5" customClass="CollectionView"> 136 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oUo-Eo-tz5" customClass="CollectionView">
132 <rect key="frame" x="0.0" y="577" width="375" height="40"/> 137 <rect key="frame" x="0.0" y="577" width="375" height="40"/>
133 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 138 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
134 <constraints> 139 <constraints>
135 <constraint firstAttribute="height" constant="40" id="Trr-Ku-Ssy"/> 140 <constraint firstAttribute="height" constant="40" id="Trr-Ku-Ssy"/>
136 </constraints> 141 </constraints>
137 </view> 142 </view>
138 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="R3A-K9-MFe"> 143 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" rowHeight="80" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="R3A-K9-MFe">
139 <rect key="frame" x="0.0" y="147" width="375" height="429"/> 144 <rect key="frame" x="0.0" y="147" width="375" height="429"/>
140 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 145 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
141 <color key="separatorColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 146 <color key="separatorColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
142 <connections> 147 <connections>
143 <outlet property="dataSource" destination="-1" id="JJX-cg-LPL"/> 148 <outlet property="dataSource" destination="-1" id="JJX-cg-LPL"/>
144 <outlet property="delegate" destination="-1" id="u0m-93-lsi"/> 149 <outlet property="delegate" destination="-1" id="u0m-93-lsi"/>
145 </connections> 150 </connections>
146 </tableView> 151 </tableView>
147 </subviews> 152 </subviews>
148 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 153 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
149 <constraints> 154 <constraints>
155 <constraint firstAttribute="bottom" secondItem="r1L-Yo-yok" secondAttribute="bottom" id="2FS-lA-RFH"/>
150 <constraint firstItem="B33-xX-Jro" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="2Mu-hy-FVU"/> 156 <constraint firstItem="B33-xX-Jro" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="2Mu-hy-FVU"/>
151 <constraint firstItem="GBx-lY-9YI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="5CL-wT-MBg"/> 157 <constraint firstAttribute="trailing" secondItem="r1L-Yo-yok" secondAttribute="trailing" id="4oe-36-E65"/>
158 <constraint firstItem="GBx-lY-9YI" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="5CL-wT-MBg"/>
152 <constraint firstItem="u5D-xz-8dK" firstAttribute="top" secondItem="syA-uK-pbr" secondAttribute="bottom" id="5uu-dZ-oXI"/> 159 <constraint firstItem="u5D-xz-8dK" firstAttribute="top" secondItem="syA-uK-pbr" secondAttribute="bottom" id="5uu-dZ-oXI"/>
153 <constraint firstItem="syA-uK-pbr" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="bottom" id="6FQ-vy-d4N"/> 160 <constraint firstItem="syA-uK-pbr" firstAttribute="top" secondItem="GBx-lY-9YI" secondAttribute="bottom" id="6FQ-vy-d4N"/>
154 <constraint firstItem="u5D-xz-8dK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="75z-RN-ObF"/> 161 <constraint firstItem="u5D-xz-8dK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="75z-RN-ObF"/>
162 <constraint firstItem="r1L-Yo-yok" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="8MA-f9-RUi"/>
163 <constraint firstItem="r1L-Yo-yok" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="E6k-kZ-HaE"/>
155 <constraint firstItem="R3A-K9-MFe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="LyL-9p-qcd"/> 164 <constraint firstItem="R3A-K9-MFe" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="LyL-9p-qcd"/>
156 <constraint firstItem="oUo-Eo-tz5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="M7I-ue-lip"/> 165 <constraint firstItem="oUo-Eo-tz5" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="M7I-ue-lip"/>
157 <constraint firstAttribute="trailing" secondItem="B33-xX-Jro" secondAttribute="trailing" id="Pjd-Ay-GaV"/> 166 <constraint firstAttribute="trailing" secondItem="B33-xX-Jro" secondAttribute="trailing" id="Pjd-Ay-GaV"/>
158 <constraint firstItem="oUo-Eo-tz5" firstAttribute="top" secondItem="R3A-K9-MFe" secondAttribute="bottom" constant="1" id="QMu-aq-2Zt"/> 167 <constraint firstItem="oUo-Eo-tz5" firstAttribute="top" secondItem="R3A-K9-MFe" secondAttribute="bottom" constant="1" id="QMu-aq-2Zt"/>
159 <constraint firstAttribute="trailing" secondItem="syA-uK-pbr" secondAttribute="trailing" id="Qnl-Pp-y2G"/> 168 <constraint firstAttribute="trailing" secondItem="syA-uK-pbr" secondAttribute="trailing" id="Qnl-Pp-y2G"/>
160 <constraint firstItem="B33-xX-Jro" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="bottom" id="VOl-jo-wU3"/> 169 <constraint firstItem="B33-xX-Jro" firstAttribute="top" secondItem="u5D-xz-8dK" secondAttribute="bottom" id="VOl-jo-wU3"/>
161 <constraint firstItem="GBx-lY-9YI" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="YjB-ef-xTt"/> 170 <constraint firstItem="GBx-lY-9YI" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="YjB-ef-xTt"/>
162 <constraint firstItem="syA-uK-pbr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="aTf-mb-wlT"/> 171 <constraint firstItem="syA-uK-pbr" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="aTf-mb-wlT"/>
163 <constraint firstAttribute="bottom" secondItem="oUo-Eo-tz5" secondAttribute="bottom" constant="50" placeholder="YES" id="cux-Vm-qq7"/> 172 <constraint firstAttribute="bottom" secondItem="oUo-Eo-tz5" secondAttribute="bottom" constant="50" placeholder="YES" id="cux-Vm-qq7"/>
164 <constraint firstAttribute="trailing" secondItem="R3A-K9-MFe" secondAttribute="trailing" id="jBn-JI-SQP"/> 173 <constraint firstAttribute="trailing" secondItem="R3A-K9-MFe" secondAttribute="trailing" id="jBn-JI-SQP"/>
165 <constraint firstItem="R3A-K9-MFe" firstAttribute="top" secondItem="B33-xX-Jro" secondAttribute="bottom" constant="1" id="jTi-59-XsZ"/> 174 <constraint firstItem="R3A-K9-MFe" firstAttribute="top" secondItem="B33-xX-Jro" secondAttribute="bottom" constant="1" id="jTi-59-XsZ"/>
166 <constraint firstAttribute="trailing" secondItem="u5D-xz-8dK" secondAttribute="trailing" id="mDB-o3-gtA"/> 175 <constraint firstAttribute="trailing" secondItem="u5D-xz-8dK" secondAttribute="trailing" id="mDB-o3-gtA"/>
167 <constraint firstAttribute="trailing" secondItem="GBx-lY-9YI" secondAttribute="trailing" id="yaf-8r-ySL"/> 176 <constraint firstAttribute="trailing" secondItem="GBx-lY-9YI" secondAttribute="trailing" id="yaf-8r-ySL"/>
168 <constraint firstAttribute="trailing" secondItem="oUo-Eo-tz5" secondAttribute="trailing" id="zkl-by-qMp"/> 177 <constraint firstAttribute="trailing" secondItem="oUo-Eo-tz5" secondAttribute="trailing" id="zkl-by-qMp"/>
169 </constraints> 178 </constraints>
170 <point key="canvasLocation" x="26.5" y="52.5"/> 179 <point key="canvasLocation" x="26.5" y="52.5"/>
171 </view> 180 </view>
172 </objects> 181 </objects>
173 <resources> 182 <resources>
183 <image name="background" width="1563" height="2778"/>
174 <image name="icon_left" width="30" height="30"/> 184 <image name="icon_left" width="30" height="30"/>
175 <image name="icon_menu" width="30" height="30"/> 185 <image name="icon_menu" width="30" height="30"/>
176 <image name="icon_right" width="30" height="30"/> 186 <image name="icon_right" width="30" height="30"/>
177 <image name="today_back_button" width="73" height="37"/> 187 <image name="today_back_button" width="73" height="37"/>
178 </resources> 188 </resources>
179 </document> 189 </document>
180 190
LifeLog/LifeLog/SNSViewController.h
1 // 1 //
2 // SNSViewController.h 2 // SNSViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h" 10 #import "BaseTableViewController.h"
11 11
12 @interface SNSViewController : BaseTableViewController { 12 @interface SNSViewController : BaseTableViewController {
13 13
14 } 14 }
15 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
15 16
16 - (IBAction)clickRecommendGroup:(id)sender; 17 - (IBAction)clickRecommendGroup:(id)sender;
17 - (IBAction)clickMyGroup:(id)sender; 18 - (IBAction)clickMyGroup:(id)sender;
18 19
19 @end 20 @end
20 21
LifeLog/LifeLog/SNSViewController.m
1 // 1 //
2 // SNSViewController.m 2 // SNSViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by Nguyen Van Phong on 7/25/17. 5 // Created by Nguyen Van Phong on 7/25/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "SNSViewController.h" 9 #import "SNSViewController.h"
10 10
11 #import "ServerAPI.h" 11 #import "ServerAPI.h"
12 #import "Utilities.h" 12 #import "Utilities.h"
13 13
14 #import "SNSRecentTopicTableViewCell.h" 14 #import "SNSRecentTopicTableViewCell.h"
15 #import "MyGroupViewController.h" 15 #import "MyGroupViewController.h"
16 #import "SearchGroupViewController.h" 16 #import "SearchGroupViewController.h"
17 #import "GroupDetailViewController.h" 17 #import "GroupDetailViewController.h"
18 18
19 @interface SNSViewController () 19 @interface SNSViewController ()
20 20
21 @end 21 @end
22 22
23 @implementation SNSViewController 23 @implementation SNSViewController
24 24
25 - (void)viewDidLoad { 25 - (void)viewDidLoad {
26 [super viewDidLoad]; 26 [super viewDidLoad];
27 // Do any additional setup after loading the view from its nib. 27 // Do any additional setup after loading the view from its nib.
28 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil); 28 // self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
29 29 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
30
30 [self callRequestToUpdateData]; 31 [self callRequestToUpdateData];
31 32
32 //register nib for table view 33 //register nib for table view
33 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"]; 34 [self.tableBase registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
34 } 35 }
35 36
36 - (void)didReceiveMemoryWarning { 37 - (void)didReceiveMemoryWarning {
37 [super didReceiveMemoryWarning]; 38 [super didReceiveMemoryWarning];
38 // Dispose of any resources that can be recreated. 39 // Dispose of any resources that can be recreated.
39 } 40 }
40 41
41 #pragma mark IBAction 42 #pragma mark IBAction
42 - (IBAction)clickRecommendGroup:(id)sender { 43 - (IBAction)clickRecommendGroup:(id)sender {
43 SearchGroupViewController * search = [[SearchGroupViewController alloc] init]; 44 SearchGroupViewController * search = [[SearchGroupViewController alloc] init];
44 [self.navigationController pushViewController:search animated:true]; 45 [self.navigationController pushViewController:search animated:true];
45 } 46 }
46 47
47 - (IBAction)clickMyGroup:(id)sender { 48 - (IBAction)clickMyGroup:(id)sender {
48 MyGroupViewController * myGrp = [[MyGroupViewController alloc] init]; 49 MyGroupViewController * myGrp = [[MyGroupViewController alloc] init];
49 [self.navigationController pushViewController:myGrp animated:true]; 50 [self.navigationController pushViewController:myGrp animated:true];
50 } 51 }
51 52
52 #pragma mark UITableView Delegate 53 #pragma mark UITableView Delegate
53 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 54 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
54 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"]; 55 SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
55 TweetObject *object = [_curDataList objectAtIndex:indexPath.row]; 56 TweetObject *object = [_curDataList objectAtIndex:indexPath.row];
56 [cell setTweetsData:object]; 57 [cell setTweetsData:object];
57 return cell; 58 return cell;
58 } 59 }
59 60
60 #pragma mark Private Function 61 #pragma mark Private Function
61 62
62 -(void) callRequestToUpdateData { 63 -(void) callRequestToUpdateData {
63 [super callRequestToUpdateData]; 64 [super callRequestToUpdateData];
64 65
65 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 66 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
66 MBProgressHUD *hudView = nil; 67 MBProgressHUD *hudView = nil;
67 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 68 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
68 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 69 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
69 } 70 }
70 [[ServerAPI server] requestTweetsList:token groupID:-1 withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){ 71 [[ServerAPI server] requestTweetsList:token groupID:-1 withPage:_curPage CompletionHandler:^(NSArray *array, NSError *error){
71 dispatch_async(dispatch_get_main_queue(), ^{ 72 dispatch_async(dispatch_get_main_queue(), ^{
72 if(hudView != nil) { 73 if(hudView != nil) {
73 [hudView hideAnimated:true]; 74 [hudView hideAnimated:true];
74 } 75 }
75 }); 76 });
76 SNSViewController __weak *weakSelf = self; 77 SNSViewController __weak *weakSelf = self;
77 [weakSelf updateTableData:array error:error]; 78 [weakSelf updateTableData:array error:error];
78 }]; 79 }];
79 } 80 }
80 81
81 @end 82 @end
82 83
LifeLog/LifeLog/SNSViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <objects> 11 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SNSViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SNSViewController">
12 <connections> 13 <connections>
13 <outlet property="tableBase" destination="KcG-O5-UhK" id="gDL-iU-n52"/> 14 <outlet property="tableBase" destination="KcG-O5-UhK" id="gDL-iU-n52"/>
14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 15 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
16 <outlet property="viewHeader" destination="O4Q-H0-WBO" id="b3J-Om-x9l"/>
15 </connections> 17 </connections>
16 </placeholder> 18 </placeholder>
17 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 19 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
18 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 20 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
19 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 21 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
20 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 22 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
21 <subviews> 23 <subviews>
22 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O4Q-H0-WBO" userLabel="ViewHeader"> 24 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="O4Q-H0-WBO" userLabel="ViewHeader">
23 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 25 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
24 <subviews> 26 <subviews>
25 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="afS-51-Q5Z" customClass="AutoTransLabel"> 27 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="afS-51-Q5Z" customClass="AutoTransLabel">
26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 28 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
27 <fontDescription key="fontDescription" type="system" pointSize="17"/> 29 <fontDescription key="fontDescription" type="system" pointSize="17"/>
28 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 30 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
29 <nil key="highlightedColor"/> 31 <nil key="highlightedColor"/>
30 <userDefinedRuntimeAttributes> 32 <userDefinedRuntimeAttributes>
31 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/> 33 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/>
32 </userDefinedRuntimeAttributes> 34 </userDefinedRuntimeAttributes>
33 </label> 35 </label>
34 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BIE-oM-ejb"> 36 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BIE-oM-ejb">
35 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 37 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
36 <constraints> 38 <constraints>
37 <constraint firstAttribute="width" constant="70" id="ZpD-Ru-8wG"/> 39 <constraint firstAttribute="width" constant="70" id="ZpD-Ru-8wG"/>
38 </constraints> 40 </constraints>
39 <state key="normal" image="today_back_button"/> 41 <state key="normal" image="today_back_button"/>
40 </button> 42 </button>
41 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CJn-w1-o2o"> 43 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CJn-w1-o2o">
42 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 44 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
43 <constraints> 45 <constraints>
44 <constraint firstAttribute="width" constant="45" id="5jv-6w-JAE"/> 46 <constraint firstAttribute="width" constant="45" id="5jv-6w-JAE"/>
45 </constraints> 47 </constraints>
46 <state key="normal" image="icon_menu"/> 48 <state key="normal" image="icon_menu"/>
47 </button> 49 </button>
48 </subviews> 50 </subviews>
49 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 51 <color key="backgroundColor" red="0.0" green="0.0" blue="0.2196078431372549" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
50 <constraints> 52 <constraints>
51 <constraint firstItem="CJn-w1-o2o" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="1zI-mI-RXX"/> 53 <constraint firstItem="CJn-w1-o2o" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="1zI-mI-RXX"/>
52 <constraint firstAttribute="trailing" secondItem="afS-51-Q5Z" secondAttribute="trailing" id="7I5-1M-8AE"/> 54 <constraint firstAttribute="trailing" secondItem="afS-51-Q5Z" secondAttribute="trailing" id="7I5-1M-8AE"/>
53 <constraint firstItem="afS-51-Q5Z" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="IEr-WN-6MO"/> 55 <constraint firstItem="afS-51-Q5Z" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="IEr-WN-6MO"/>
54 <constraint firstAttribute="bottom" secondItem="afS-51-Q5Z" secondAttribute="bottom" id="LNL-Mo-g5c"/> 56 <constraint firstAttribute="bottom" secondItem="afS-51-Q5Z" secondAttribute="bottom" id="LNL-Mo-g5c"/>
55 <constraint firstItem="BIE-oM-ejb" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="O9H-bB-I0V"/> 57 <constraint firstItem="BIE-oM-ejb" firstAttribute="leading" secondItem="O4Q-H0-WBO" secondAttribute="leading" id="O9H-bB-I0V"/>
56 <constraint firstAttribute="height" constant="46" id="Pmw-mV-DhU"/> 58 <constraint firstAttribute="height" constant="46" id="Pmw-mV-DhU"/>
57 <constraint firstAttribute="bottom" secondItem="CJn-w1-o2o" secondAttribute="bottom" id="Xmh-Qg-N81"/> 59 <constraint firstAttribute="bottom" secondItem="CJn-w1-o2o" secondAttribute="bottom" id="Xmh-Qg-N81"/>
58 <constraint firstAttribute="trailing" secondItem="CJn-w1-o2o" secondAttribute="trailing" id="l2g-NC-l1f"/> 60 <constraint firstAttribute="trailing" secondItem="CJn-w1-o2o" secondAttribute="trailing" id="l2g-NC-l1f"/>
59 <constraint firstAttribute="bottom" secondItem="BIE-oM-ejb" secondAttribute="bottom" constant="5" id="lwA-7z-Gi9"/> 61 <constraint firstAttribute="bottom" secondItem="BIE-oM-ejb" secondAttribute="bottom" constant="5" id="lwA-7z-Gi9"/>
60 <constraint firstItem="BIE-oM-ejb" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" constant="5" id="r6e-SB-lb7"/> 62 <constraint firstItem="BIE-oM-ejb" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" constant="5" id="r6e-SB-lb7"/>
61 <constraint firstItem="afS-51-Q5Z" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="vAx-Bu-CLe"/> 63 <constraint firstItem="afS-51-Q5Z" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="vAx-Bu-CLe"/>
62 </constraints> 64 </constraints>
63 </view> 65 </view>
64 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5ZL-zf-geZ" customClass="AutoTransButton"> 66 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5ZL-zf-geZ" customClass="AutoTransButton">
65 <rect key="frame" x="20" y="76" width="335" height="40"/> 67 <rect key="frame" x="20" y="76" width="335" height="40"/>
66 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 68 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
67 <constraints> 69 <constraints>
68 <constraint firstAttribute="height" constant="40" id="ATx-eA-hJ1"/> 70 <constraint firstAttribute="height" constant="40" id="ATx-eA-hJ1"/>
69 </constraints> 71 </constraints>
70 <fontDescription key="fontDescription" type="system" pointSize="13"/> 72 <fontDescription key="fontDescription" type="system" pointSize="13"/>
71 <state key="normal"> 73 <state key="normal">
72 <string key="title" base64-UTF8="YES"> 74 <string key="title" base64-UTF8="YES">
73 44Kq44K544K544Oh44Kw44Or44O844OXAA 75 44Kq44K544K544Oh44Kw44Or44O844OXAA
74 </string> 76 </string>
75 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 77 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
76 </state> 78 </state>
77 <userDefinedRuntimeAttributes> 79 <userDefinedRuntimeAttributes>
78 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius"> 80 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
79 <integer key="value" value="5"/> 81 <integer key="value" value="5"/>
80 </userDefinedRuntimeAttribute> 82 </userDefinedRuntimeAttribute>
81 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.commendgroup"/> 83 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.commendgroup"/>
82 </userDefinedRuntimeAttributes> 84 </userDefinedRuntimeAttributes>
83 <connections> 85 <connections>
84 <action selector="clickRecommendGroup:" destination="-1" eventType="touchUpInside" id="DEw-ej-loH"/> 86 <action selector="clickRecommendGroup:" destination="-1" eventType="touchUpInside" id="DEw-ej-loH"/>
85 </connections> 87 </connections>
86 </button> 88 </button>
87 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB3-Sm-i6e" customClass="AutoTransButton"> 89 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB3-Sm-i6e" customClass="AutoTransButton">
88 <rect key="frame" x="20" y="126" width="335" height="40"/> 90 <rect key="frame" x="20" y="126" width="335" height="40"/>
89 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/> 91 <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
90 <constraints> 92 <constraints>
91 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/> 93 <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/>
92 </constraints> 94 </constraints>
93 <fontDescription key="fontDescription" type="system" pointSize="13"/> 95 <fontDescription key="fontDescription" type="system" pointSize="13"/>
94 <state key="normal"> 96 <state key="normal">
95 <string key="title" base64-UTF8="YES"> 97 <string key="title" base64-UTF8="YES">
96 44Oe44Kk44Kw44Or44O844OXAA 98 44Oe44Kk44Kw44Or44O844OXAA
97 </string> 99 </string>
98 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 100 <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
99 </state> 101 </state>
100 <userDefinedRuntimeAttributes> 102 <userDefinedRuntimeAttributes>
101 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius"> 103 <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
102 <integer key="value" value="5"/> 104 <integer key="value" value="5"/>
103 </userDefinedRuntimeAttribute> 105 </userDefinedRuntimeAttribute>
104 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/> 106 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/>
105 </userDefinedRuntimeAttributes> 107 </userDefinedRuntimeAttributes>
106 <connections> 108 <connections>
107 <action selector="clickMyGroup:" destination="-1" eventType="touchUpInside" id="ph8-DF-WMt"/> 109 <action selector="clickMyGroup:" destination="-1" eventType="touchUpInside" id="ph8-DF-WMt"/>
108 </connections> 110 </connections>
109 </button> 111 </button>
110 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="最近の話題" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zzn-bU-X6s" customClass="AutoTransLabel"> 112 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="最近の話題" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zzn-bU-X6s" customClass="AutoTransLabel">
111 <rect key="frame" x="20" y="226" width="335" height="21"/> 113 <rect key="frame" x="20" y="226" width="335" height="21"/>
112 <constraints> 114 <constraints>
113 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/> 115 <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/>
114 </constraints> 116 </constraints>
115 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/> 117 <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
116 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 118 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
117 <nil key="highlightedColor"/> 119 <nil key="highlightedColor"/>
118 <userDefinedRuntimeAttributes> 120 <userDefinedRuntimeAttributes>
119 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/> 121 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/>
120 </userDefinedRuntimeAttributes> 122 </userDefinedRuntimeAttributes>
121 </label> 123 </label>
122 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK"> 124 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK">
123 <rect key="frame" x="0.0" y="255" width="375" height="362"/> 125 <rect key="frame" x="0.0" y="255" width="375" height="362"/>
124 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 126 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
125 <connections> 127 <connections>
126 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/> 128 <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/>
127 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/> 129 <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/>
128 </connections> 130 </connections>
129 </tableView> 131 </tableView>
130 </subviews> 132 </subviews>
131 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 133 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
132 <constraints> 134 <constraints>
133 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/> 135 <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="0u7-Ks-LSt"/>
134 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/> 136 <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/>
135 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/> 137 <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/>
136 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/> 138 <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/>
137 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/> 139 <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/>
138 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/> 140 <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/>
139 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/> 141 <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/>
140 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/> 142 <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/>
141 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/> 143 <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/>
142 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/> 144 <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/>
143 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/> 145 <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/>
144 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/> 146 <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/>
145 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/> 147 <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/>
146 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/> 148 <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/>
147 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/> 149 <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/>
148 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/> 150 <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/>
149 </constraints> 151 </constraints>
150 <point key="canvasLocation" x="24.5" y="52.5"/> 152 <point key="canvasLocation" x="24.5" y="52.5"/>
151 </view> 153 </view>
152 </objects> 154 </objects>
153 <resources> 155 <resources>
154 <image name="icon_menu" width="30" height="30"/> 156 <image name="icon_menu" width="30" height="30"/>
155 <image name="today_back_button" width="73" height="37"/> 157 <image name="today_back_button" width="73" height="37"/>
156 </resources> 158 </resources>
157 </document> 159 </document>
158 160
LifeLog/LifeLog/SearchGroupViewController.h
1 // 1 //
2 // SearchGroupViewController.h 2 // SearchGroupViewController.h
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/11/17. 5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "BaseTableViewController.h" 10 #import "BaseTableViewController.h"
11 11
12 @interface SearchGroupViewController : BaseTableViewController<UITextFieldDelegate> { 12 @interface SearchGroupViewController : BaseTableViewController<UITextFieldDelegate> {
13 NSTimer *timerSearch; 13 NSTimer *timerSearch;
14 } 14 }
15 15
16 @property (weak, nonatomic) IBOutlet UIView *viewHeader;
16 @property (weak, nonatomic) IBOutlet UITextField *textFieldSearch; 17 @property (weak, nonatomic) IBOutlet UITextField *textFieldSearch;
17 18
18 - (IBAction)clickBack:(id)sender; 19 - (IBAction)clickBack:(id)sender;
19 - (IBAction)clickSearch:(id)sender; 20 - (IBAction)clickSearch:(id)sender;
20 - (IBAction)clickCreateGroup:(id)sender; 21 - (IBAction)clickCreateGroup:(id)sender;
21 22
22 @end 23 @end
23 24
LifeLog/LifeLog/SearchGroupViewController.m
1 // 1 //
2 // SearchGroupViewController.m 2 // SearchGroupViewController.m
3 // LifeLog 3 // LifeLog
4 // 4 //
5 // Created by nvtu on 8/11/17. 5 // Created by nvtu on 8/11/17.
6 // Copyright © 2017 PhongNV. All rights reserved. 6 // Copyright © 2017 PhongNV. All rights reserved.
7 // 7 //
8 8
9 #import "SearchGroupViewController.h" 9 #import "SearchGroupViewController.h"
10 10
11 #import <SDWebImage/UIImageView+WebCache.h> 11 #import <SDWebImage/UIImageView+WebCache.h>
12 12
13 #import "ServerAPI.h" 13 #import "ServerAPI.h"
14 #import "Utilities.h" 14 #import "Utilities.h"
15 15
16 #import "SearchGroupTableViewCell.h" 16 #import "SearchGroupTableViewCell.h"
17 #import "CreateGroupViewController.h" 17 #import "CreateGroupViewController.h"
18 #import "GroupDetailViewController.h" 18 #import "GroupDetailViewController.h"
19 19
20 @interface SearchGroupViewController () 20 @interface SearchGroupViewController ()
21 21
22 @end 22 @end
23 23
24 @implementation SearchGroupViewController 24 @implementation SearchGroupViewController
25 25
26 - (void)viewDidLoad { 26 - (void)viewDidLoad {
27 [super viewDidLoad]; 27 [super viewDidLoad];
28 [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.topLayoutGuide attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.viewHeader attribute:NSLayoutAttributeTop multiplier:1 constant:0]];
29
28 [self callRequestToUpdateData]; 30 [self callRequestToUpdateData];
29 31
30 //register nib for table view 32 //register nib for table view
31 [self.tableBase registerNib:[UINib nibWithNibName:@"SearchGroupTableViewCell" bundle:nil] forCellReuseIdentifier:@"SearchGroupCell"]; 33 [self.tableBase registerNib:[UINib nibWithNibName:@"SearchGroupTableViewCell" bundle:nil] forCellReuseIdentifier:@"SearchGroupCell"];
32 } 34 }
33 35
34 - (void)didReceiveMemoryWarning { 36 - (void)didReceiveMemoryWarning {
35 [super didReceiveMemoryWarning]; 37 [super didReceiveMemoryWarning];
36 // Dispose of any resources that can be recreated. 38 // Dispose of any resources that can be recreated.
37 } 39 }
38 40
39 #pragma mark IBAction 41 #pragma mark IBAction
40 42
41 - (IBAction)clickBack:(id)sender { 43 - (IBAction)clickBack:(id)sender {
42 [self.navigationController popViewControllerAnimated:true]; 44 [self.navigationController popViewControllerAnimated:true];
43 } 45 }
44 46
45 - (IBAction)clickSearch:(id)sender { 47 - (IBAction)clickSearch:(id)sender {
46 [self.view endEditing:true]; 48 [self.view endEditing:true];
47 [self resetData]; 49 [self resetData];
48 } 50 }
49 51
50 - (IBAction)clickCreateGroup:(id)sender { 52 - (IBAction)clickCreateGroup:(id)sender {
51 CreateGroupViewController * create = [[CreateGroupViewController alloc] init]; 53 CreateGroupViewController * create = [[CreateGroupViewController alloc] init];
52 create.createGroupSuccess = ^(GroupObject *object){ 54 create.createGroupSuccess = ^(GroupObject *object){
53 GroupDetailViewController * detail = [[GroupDetailViewController alloc] init]; 55 GroupDetailViewController * detail = [[GroupDetailViewController alloc] init];
54 [detail setGroup:object]; 56 [detail setGroup:object];
55 [self.navigationController pushViewController:detail animated:true]; 57 [self.navigationController pushViewController:detail animated:true];
56 }; 58 };
57 [self.navigationController pushViewController:create animated:true]; 59 [self.navigationController pushViewController:create animated:true];
58 } 60 }
59 61
60 #pragma mark UITableView Delegate 62 #pragma mark UITableView Delegate
61 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 63 - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
62 SearchGroupTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"SearchGroupCell"]; 64 SearchGroupTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"SearchGroupCell"];
63 GroupObject *object = [_curDataList objectAtIndex:indexPath.row]; 65 GroupObject *object = [_curDataList objectAtIndex:indexPath.row];
64 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) { 66 if(object.avatar && ![object.avatar isKindOfClass:[NSNull class]]) {
65 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]]; 67 [cell.imgAvatar sd_setImageWithURL:[NSURL URLWithString:[Utilities getImageLink:object.avatar]]];
66 } 68 }
67 else { 69 else {
68 [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]]; 70 [cell.imgAvatar setImage:[UIImage imageNamed:@"avatar_default"]];
69 } 71 }
70 cell.lblName.text = object.name; 72 cell.lblName.text = object.name;
71 return cell; 73 return cell;
72 } 74 }
73 75
74 -(void) scrollViewDidScroll:(UIScrollView *)scrollView { 76 -(void) scrollViewDidScroll:(UIScrollView *)scrollView {
75 [self.view endEditing:true]; 77 [self.view endEditing:true];
76 } 78 }
77 79
78 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 80 -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
79 GroupDetailViewController * detail = [[GroupDetailViewController alloc] init]; 81 GroupDetailViewController * detail = [[GroupDetailViewController alloc] init];
80 [detail setGroup:[_curDataList objectAtIndex:indexPath.row]]; 82 [detail setGroup:[_curDataList objectAtIndex:indexPath.row]];
81 [self.navigationController pushViewController:detail animated:true]; 83 [self.navigationController pushViewController:detail animated:true];
82 } 84 }
83 85
84 #pragma mark UITextField Delegate 86 #pragma mark UITextField Delegate
85 -(BOOL) textFieldShouldReturn:(UITextField *)textField { 87 -(BOOL) textFieldShouldReturn:(UITextField *)textField {
86 [self.view endEditing:true]; 88 [self.view endEditing:true];
87 return true; 89 return true;
88 } 90 }
89 91
90 -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 92 -(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
91 if(timerSearch != nil) { 93 if(timerSearch != nil) {
92 [timerSearch invalidate]; 94 [timerSearch invalidate];
93 } 95 }
94 timerSearch = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(resetData) userInfo:nil repeats:false]; 96 timerSearch = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(resetData) userInfo:nil repeats:false];
95 return true; 97 return true;
96 } 98 }
97 99
98 #pragma mark Private Function 100 #pragma mark Private Function
99 -(void) callRequestToUpdateData { 101 -(void) callRequestToUpdateData {
100 [super callRequestToUpdateData]; 102 [super callRequestToUpdateData];
101 103
102 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken]; 104 NSString * token = [[NSUserDefaults standardUserDefaults] stringForKey:kToken];
103 MBProgressHUD *hudView = nil; 105 MBProgressHUD *hudView = nil;
104 if(_curPage == 1 && !self.refreshControl.isRefreshing) { 106 if(_curPage == 1 && !self.refreshControl.isRefreshing) {
105 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true]; 107 hudView = [MBProgressHUD showHUDAddedTo:self.view animated:true];
106 } 108 }
107 [[ServerAPI server] searchGroup:token withKey:self.textFieldSearch.text andPage:_curPage CompletionHandler:^(NSArray *array, NSError *error) { 109 [[ServerAPI server] searchGroup:token withKey:self.textFieldSearch.text andPage:_curPage CompletionHandler:^(NSArray *array, NSError *error) {
108 dispatch_async(dispatch_get_main_queue(), ^{ 110 dispatch_async(dispatch_get_main_queue(), ^{
109 if(hudView != nil) { 111 if(hudView != nil) {
110 [hudView hideAnimated:true]; 112 [hudView hideAnimated:true];
111 } 113 }
112 }); 114 });
113 SearchGroupViewController __weak *weakSelf = self; 115 SearchGroupViewController __weak *weakSelf = self;
114 [weakSelf updateTableData:array error:error]; 116 [weakSelf updateTableData:array error:error];
115 }]; 117 }];
116 } 118 }
117 @end 119 @end
118 120
LifeLog/LifeLog/SearchGroupViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12118" systemVersion="16D32" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 </dependencies> 10 </dependencies>
10 <objects> 11 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SearchGroupViewController"> 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SearchGroupViewController">
12 <connections> 13 <connections>
13 <outlet property="tableBase" destination="yF3-ZN-ebL" id="WYE-g2-1iW"/> 14 <outlet property="tableBase" destination="yF3-ZN-ebL" id="WYE-g2-1iW"/>
14 <outlet property="textFieldSearch" destination="ZV5-M6-gge" id="my5-ga-rV2"/> 15 <outlet property="textFieldSearch" destination="ZV5-M6-gge" id="my5-ga-rV2"/>
15 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 16 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
17 <outlet property="viewHeader" destination="YHv-ES-wQ0" id="QLI-K7-tqI"/>
16 </connections> 18 </connections>
17 </placeholder> 19 </placeholder>
18 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 20 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
19 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 21 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
20 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 22 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
21 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 23 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
22 <subviews> 24 <subviews>
23 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YHv-ES-wQ0" userLabel="ViewHeader"> 25 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YHv-ES-wQ0" userLabel="ViewHeader">
24 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
25 <subviews> 27 <subviews>
26 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qQF-tf-31d" customClass="AutoTransLabel"> 28 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="SNS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qQF-tf-31d" customClass="AutoTransLabel">
27 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/> 29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
28 <fontDescription key="fontDescription" type="system" pointSize="17"/> 30 <fontDescription key="fontDescription" type="system" pointSize="17"/>
29 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 31 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
30 <nil key="highlightedColor"/> 32 <nil key="highlightedColor"/>
31 <userDefinedRuntimeAttributes> 33 <userDefinedRuntimeAttributes>
32 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.title"/> 34 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.title"/>
33 </userDefinedRuntimeAttributes> 35 </userDefinedRuntimeAttributes>
34 </label> 36 </label>
35 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pK9-Nf-LNR"> 37 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pK9-Nf-LNR">
36 <rect key="frame" x="0.0" y="5" width="70" height="36"/> 38 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
37 <constraints> 39 <constraints>
38 <constraint firstAttribute="width" constant="70" id="Kdt-q3-40K"/> 40 <constraint firstAttribute="width" constant="70" id="Kdt-q3-40K"/>
39 </constraints> 41 </constraints>
40 <state key="normal" image="today_back_button"/> 42 <state key="normal" image="today_back_button"/>
41 <connections> 43 <connections>
42 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="Z3f-Fd-CEc"/> 44 <action selector="clickBack:" destination="-1" eventType="touchUpInside" id="Z3f-Fd-CEc"/>
43 </connections> 45 </connections>
44 </button> 46 </button>
45 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PkV-G3-Fru"> 47 <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PkV-G3-Fru">
46 <rect key="frame" x="330" y="0.0" width="45" height="46"/> 48 <rect key="frame" x="330" y="0.0" width="45" height="46"/>
47 <constraints> 49 <constraints>
48 <constraint firstAttribute="width" constant="45" id="7W6-Cl-TRS"/> 50 <constraint firstAttribute="width" constant="45" id="7W6-Cl-TRS"/>
49 </constraints> 51 </constraints>
50 <state key="normal" image="icon_menu"/> 52 <state key="normal" image="icon_menu"/>
51 </button> 53 </button>
52 </subviews> 54 </subviews>
53 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 55 <color key="backgroundColor" red="0.0" green="0.0" blue="0.21960784310000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
54 <constraints> 56 <constraints>
55 <constraint firstItem="pK9-Nf-LNR" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="84D-o2-cdT"/> 57 <constraint firstItem="pK9-Nf-LNR" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="84D-o2-cdT"/>
56 <constraint firstAttribute="trailing" secondItem="qQF-tf-31d" secondAttribute="trailing" id="BMv-VR-p7j"/> 58 <constraint firstAttribute="trailing" secondItem="qQF-tf-31d" secondAttribute="trailing" id="BMv-VR-p7j"/>
57 <constraint firstAttribute="trailing" secondItem="PkV-G3-Fru" secondAttribute="trailing" id="CiO-zw-1XR"/> 59 <constraint firstAttribute="trailing" secondItem="PkV-G3-Fru" secondAttribute="trailing" id="CiO-zw-1XR"/>
58 <constraint firstAttribute="height" constant="46" id="KDJ-I2-eMi"/> 60 <constraint firstAttribute="height" constant="46" id="KDJ-I2-eMi"/>
59 <constraint firstItem="qQF-tf-31d" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="heq-vX-GHv"/> 61 <constraint firstItem="qQF-tf-31d" firstAttribute="leading" secondItem="YHv-ES-wQ0" secondAttribute="leading" id="heq-vX-GHv"/>
60 <constraint firstAttribute="bottom" secondItem="qQF-tf-31d" secondAttribute="bottom" id="iJg-Q2-eLi"/> 62 <constraint firstAttribute="bottom" secondItem="qQF-tf-31d" secondAttribute="bottom" id="iJg-Q2-eLi"/>
61 <constraint firstItem="qQF-tf-31d" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="l3t-CY-3zr"/> 63 <constraint firstItem="qQF-tf-31d" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="l3t-CY-3zr"/>
62 <constraint firstAttribute="bottom" secondItem="pK9-Nf-LNR" secondAttribute="bottom" constant="5" id="lJY-v6-1cM"/> 64 <constraint firstAttribute="bottom" secondItem="pK9-Nf-LNR" secondAttribute="bottom" constant="5" id="lJY-v6-1cM"/>
63 <constraint firstItem="pK9-Nf-LNR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" constant="5" id="ppE-r0-ai7"/> 65 <constraint firstItem="pK9-Nf-LNR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" constant="5" id="ppE-r0-ai7"/>
64 <constraint firstItem="PkV-G3-Fru" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="ptk-1B-s3f"/> 66 <constraint firstItem="PkV-G3-Fru" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="top" id="ptk-1B-s3f"/>
65 <constraint firstAttribute="bottom" secondItem="PkV-G3-Fru" secondAttribute="bottom" id="yNR-37-Qmd"/> 67 <constraint firstAttribute="bottom" secondItem="PkV-G3-Fru" secondAttribute="bottom" id="yNR-37-Qmd"/>
66 </constraints> 68 </constraints>
67 </view> 69 </view>
68 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZV5-M6-gge"> 70 <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="ZV5-M6-gge">
69 <rect key="frame" x="16" y="86" width="209" height="30"/> 71 <rect key="frame" x="16" y="86" width="209" height="30"/>
70 <nil key="textColor"/> 72 <nil key="textColor"/>
71 <fontDescription key="fontDescription" type="system" pointSize="14"/> 73 <fontDescription key="fontDescription" type="system" pointSize="14"/>
72 <textInputTraits key="textInputTraits"/> 74 <textInputTraits key="textInputTraits"/>
73 <connections> 75 <connections>
74 <outlet property="delegate" destination="-1" id="Wzs-Wc-gd1"/> 76 <outlet property="delegate" destination="-1" id="Wzs-Wc-gd1"/>
75 </connections> 77 </connections>
76 </textField> 78 </textField>
77 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="V72-De-hhR" customClass="AutoTransButton"> 79 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="V72-De-hhR" customClass="AutoTransButton">
78 <rect key="frame" x="250" y="86" width="110" height="30"/> 80 <rect key="frame" x="250" y="86" width="110" height="30"/>
79 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 81 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
80 <constraints> 82 <constraints>
81 <constraint firstAttribute="height" constant="30" id="plQ-aS-bwK"/> 83 <constraint firstAttribute="height" constant="30" id="plQ-aS-bwK"/>
82 <constraint firstAttribute="width" constant="110" id="w47-Tg-vYC"/> 84 <constraint firstAttribute="width" constant="110" id="w47-Tg-vYC"/>
83 </constraints> 85 </constraints>
84 <fontDescription key="fontDescription" type="system" pointSize="13"/> 86 <fontDescription key="fontDescription" type="system" pointSize="13"/>
85 <state key="normal" title="検索"> 87 <state key="normal" title="検索">
86 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 88 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
87 </state> 89 </state>
88 <userDefinedRuntimeAttributes> 90 <userDefinedRuntimeAttributes>
89 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 91 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
90 <integer key="value" value="5"/> 92 <integer key="value" value="5"/>
91 </userDefinedRuntimeAttribute> 93 </userDefinedRuntimeAttribute>
92 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.search"/> 94 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.search"/>
93 </userDefinedRuntimeAttributes> 95 </userDefinedRuntimeAttributes>
94 <connections> 96 <connections>
95 <action selector="clickSearch:" destination="-1" eventType="touchUpInside" id="WPo-6j-0K1"/> 97 <action selector="clickSearch:" destination="-1" eventType="touchUpInside" id="WPo-6j-0K1"/>
96 </connections> 98 </connections>
97 </button> 99 </button>
98 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rb5-To-ffT" customClass="AutoTransButton"> 100 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Rb5-To-ffT" customClass="AutoTransButton">
99 <rect key="frame" x="250" y="131" width="110" height="30"/> 101 <rect key="frame" x="250" y="131" width="110" height="30"/>
100 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 102 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
101 <constraints> 103 <constraints>
102 <constraint firstAttribute="height" constant="30" id="Cwt-yy-rcp"/> 104 <constraint firstAttribute="height" constant="30" id="Cwt-yy-rcp"/>
103 </constraints> 105 </constraints>
104 <fontDescription key="fontDescription" type="system" pointSize="13"/> 106 <fontDescription key="fontDescription" type="system" pointSize="13"/>
105 <state key="normal" title="グループ作成"> 107 <state key="normal" title="グループ作成">
106 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 108 <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
107 </state> 109 </state>
108 <userDefinedRuntimeAttributes> 110 <userDefinedRuntimeAttributes>
109 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius"> 111 <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
110 <integer key="value" value="5"/> 112 <integer key="value" value="5"/>
111 </userDefinedRuntimeAttribute> 113 </userDefinedRuntimeAttribute>
112 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.createGr"/> 114 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.bt.createGr"/>
113 </userDefinedRuntimeAttributes> 115 </userDefinedRuntimeAttributes>
114 <connections> 116 <connections>
115 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpInside" id="J9P-5a-SrT"/> 117 <action selector="clickCreateGroup:" destination="-1" eventType="touchUpInside" id="J9P-5a-SrT"/>
116 </connections> 118 </connections>
117 </button> 119 </button>
118 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="70" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="yF3-ZN-ebL"> 120 <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="70" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="yF3-ZN-ebL">
119 <rect key="frame" x="0.0" y="176" width="375" height="441"/> 121 <rect key="frame" x="0.0" y="176" width="375" height="441"/>
120 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 122 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
121 <connections> 123 <connections>
122 <outlet property="dataSource" destination="-1" id="tKB-Uq-esC"/> 124 <outlet property="dataSource" destination="-1" id="tKB-Uq-esC"/>
123 <outlet property="delegate" destination="-1" id="88z-Bd-dz0"/> 125 <outlet property="delegate" destination="-1" id="88z-Bd-dz0"/>
124 </connections> 126 </connections>
125 </tableView> 127 </tableView>
126 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="オススメグループ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YIq-l4-77c" customClass="AutoTransLabel"> 128 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="オススメグループ" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YIq-l4-77c" customClass="AutoTransLabel">
127 <rect key="frame" x="16" y="54" width="343" height="21"/> 129 <rect key="frame" x="16" y="54" width="343" height="21"/>
128 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 130 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
129 <fontDescription key="fontDescription" type="system" pointSize="17"/> 131 <fontDescription key="fontDescription" type="system" pointSize="17"/>
130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 132 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131 <nil key="highlightedColor"/> 133 <nil key="highlightedColor"/>
132 <userDefinedRuntimeAttributes> 134 <userDefinedRuntimeAttributes>
133 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.lbl.title"/> 135 <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.searchGr.lbl.title"/>
134 </userDefinedRuntimeAttributes> 136 </userDefinedRuntimeAttributes>
135 </label> 137 </label>
136 </subviews> 138 </subviews>
137 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 139 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
138 <constraints> 140 <constraints>
139 <constraint firstItem="yF3-ZN-ebL" firstAttribute="top" secondItem="Rb5-To-ffT" secondAttribute="bottom" constant="15" id="2wi-jL-dso"/> 141 <constraint firstItem="yF3-ZN-ebL" firstAttribute="top" secondItem="Rb5-To-ffT" secondAttribute="bottom" constant="15" id="2wi-jL-dso"/>
140 <constraint firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" constant="15" id="342-Ur-sPT"/> 142 <constraint firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" constant="15" id="342-Ur-sPT"/>
141 <constraint firstItem="YHv-ES-wQ0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3ft-ch-v8f"/> 143 <constraint firstItem="YHv-ES-wQ0" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3ft-ch-v8f"/>
142 <constraint firstItem="Rb5-To-ffT" firstAttribute="top" secondItem="V72-De-hhR" secondAttribute="bottom" constant="15" id="Hic-jl-Ndk"/> 144 <constraint firstItem="Rb5-To-ffT" firstAttribute="top" secondItem="V72-De-hhR" secondAttribute="bottom" constant="15" id="Hic-jl-Ndk"/>
143 <constraint firstAttribute="bottom" secondItem="yF3-ZN-ebL" secondAttribute="bottom" constant="50" id="Nad-2Y-mrb"/> 145 <constraint firstAttribute="bottom" secondItem="yF3-ZN-ebL" secondAttribute="bottom" constant="50" id="Nad-2Y-mrb"/>
144 <constraint firstItem="V72-De-hhR" firstAttribute="leading" secondItem="ZV5-M6-gge" secondAttribute="trailing" constant="25" id="Pv6-Li-O07"/> 146 <constraint firstItem="V72-De-hhR" firstAttribute="leading" secondItem="ZV5-M6-gge" secondAttribute="trailing" constant="25" id="Pv6-Li-O07"/>
145 <constraint firstAttribute="trailing" secondItem="YHv-ES-wQ0" secondAttribute="trailing" id="crv-XZ-T34"/> 147 <constraint firstAttribute="trailing" secondItem="YHv-ES-wQ0" secondAttribute="trailing" id="crv-XZ-T34"/>
146 <constraint firstItem="yF3-ZN-ebL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="f6n-Zr-w64"/> 148 <constraint firstItem="yF3-ZN-ebL" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="f6n-Zr-w64"/>
147 <constraint firstItem="Rb5-To-ffT" firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" id="fHS-Kk-Ew0"/> 149 <constraint firstItem="Rb5-To-ffT" firstAttribute="trailing" secondItem="V72-De-hhR" secondAttribute="trailing" id="fHS-Kk-Ew0"/>
148 <constraint firstItem="YHv-ES-wQ0" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="fdM-w1-hOo"/> 150 <constraint firstItem="YHv-ES-wQ0" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" priority="750" id="fdM-w1-hOo"/>
149 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="bottom" constant="40" id="hlc-vb-EVo"/> 151 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="YHv-ES-wQ0" secondAttribute="bottom" constant="40" id="hlc-vb-EVo"/>
150 <constraint firstItem="Rb5-To-ffT" firstAttribute="width" secondItem="V72-De-hhR" secondAttribute="width" id="jtP-uw-vkF"/> 152 <constraint firstItem="Rb5-To-ffT" firstAttribute="width" secondItem="V72-De-hhR" secondAttribute="width" id="jtP-uw-vkF"/>
151 <constraint firstItem="ZV5-M6-gge" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="kxD-e8-dYm"/> 153 <constraint firstItem="ZV5-M6-gge" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="16" id="kxD-e8-dYm"/>
152 <constraint firstAttribute="trailing" secondItem="yF3-ZN-ebL" secondAttribute="trailing" id="rZv-uL-RZ3"/> 154 <constraint firstAttribute="trailing" secondItem="yF3-ZN-ebL" secondAttribute="trailing" id="rZv-uL-RZ3"/>
153 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="ZV5-M6-gge" secondAttribute="top" id="voZ-Kp-Zm3"/> 155 <constraint firstItem="V72-De-hhR" firstAttribute="top" secondItem="ZV5-M6-gge" secondAttribute="top" id="voZ-Kp-Zm3"/>
154 </constraints> 156 </constraints>
155 <point key="canvasLocation" x="24.5" y="52.5"/> 157 <point key="canvasLocation" x="24.5" y="52.5"/>
156 </view> 158 </view>
157 </objects> 159 </objects>
158 <resources> 160 <resources>
159 <image name="icon_menu" width="30" height="30"/> 161 <image name="icon_menu" width="30" height="30"/>
160 <image name="today_back_button" width="73" height="37"/> 162 <image name="today_back_button" width="73" height="37"/>
161 </resources> 163 </resources>
162 </document> 164 </document>
163 165
LifeLog/LifeLog/TodayViewController.xib
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13529" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 <device id="retina4_7" orientation="portrait"> 3 <device id="retina4_7" orientation="portrait">
4 <adaptation id="fullscreen"/> 4 <adaptation id="fullscreen"/>
5 </device> 5 </device>
6 <dependencies> 6 <dependencies>
7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> 7 <deployment identifier="iOS"/>
8 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13527"/>
8 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/> 9 <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
9 <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> 10 <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
10 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> 11 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
11 </dependencies> 12 </dependencies>
12 <objects> 13 <objects>
13 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TodayViewController"> 14 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TodayViewController">
14 <connections> 15 <connections>
15 <outlet property="circleProgressToday" destination="oRx-7J-bma" id="ljj-Xx-OOH"/> 16 <outlet property="circleProgressToday" destination="oRx-7J-bma" id="ljj-Xx-OOH"/>
16 <outlet property="lblPercent" destination="11m-je-qZ1" id="Tjq-td-B22"/> 17 <outlet property="lblPercent" destination="11m-je-qZ1" id="Tjq-td-B22"/>
17 <outlet property="lblRemainingStep" destination="dEz-7j-nXc" id="03L-hQ-Kiv"/> 18 <outlet property="lblRemainingStep" destination="dEz-7j-nXc" id="03L-hQ-Kiv"/>
18 <outlet property="lblRemainingStepOther" destination="V2B-wZ-Efk" id="XNr-bG-LbN"/> 19 <outlet property="lblRemainingStepOther" destination="V2B-wZ-Efk" id="XNr-bG-LbN"/>
19 <outlet property="lblTitle" destination="2SZ-sd-ADD" id="Ztf-W5-jwd"/> 20 <outlet property="lblTitle" destination="2SZ-sd-ADD" id="Ztf-W5-jwd"/>
20 <outlet property="lblTotalStep" destination="Fvu-lz-xIk" id="i1e-DL-7QA"/> 21 <outlet property="lblTotalStep" destination="Fvu-lz-xIk" id="i1e-DL-7QA"/>
21 <outlet property="lblTotalStepOther" destination="dQq-cp-R2A" id="ugW-Wi-BFI"/> 22 <outlet property="lblTotalStepOther" destination="dQq-cp-R2A" id="ugW-Wi-BFI"/>
22 <outlet property="lblValueStep" destination="iCl-1r-Bwp" id="Zpf-6A-8cO"/> 23 <outlet property="lblValueStep" destination="iCl-1r-Bwp" id="Zpf-6A-8cO"/>
23 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/> 24 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
24 </connections> 25 </connections>
25 </placeholder> 26 </placeholder>
26 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> 27 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
27 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT"> 28 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
28 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> 29 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
29 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> 30 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
30 <subviews> 31 <subviews>
31 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TODAY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2SZ-sd-ADD" userLabel="LabelTitle"> 32 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TODAY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2SZ-sd-ADD" userLabel="LabelTitle">
32 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/> 33 <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
33 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> 34 <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
34 <constraints> 35 <constraints>
35 <constraint firstAttribute="height" constant="44" id="Qgv-Kk-P8u"/> 36 <constraint firstAttribute="height" constant="44" id="Qgv-Kk-P8u"/>
36 </constraints> 37 </constraints>
37 <fontDescription key="fontDescription" type="system" pointSize="23"/> 38 <fontDescription key="fontDescription" type="system" pointSize="23"/>
38 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 39 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
39 <nil key="highlightedColor"/> 40 <nil key="highlightedColor"/>
40 </label> 41 </label>
41 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RSj-iV-Oaf" userLabel="ButtonMenu"> 42 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RSj-iV-Oaf" userLabel="ButtonMenu">
42 <rect key="frame" x="335" y="7" width="30" height="30"/> 43 <rect key="frame" x="335" y="7" width="30" height="30"/>
43 <constraints> 44 <constraints>
44 <constraint firstAttribute="width" secondItem="RSj-iV-Oaf" secondAttribute="height" multiplier="1:1" id="Paf-pW-iOE"/> 45 <constraint firstAttribute="width" secondItem="RSj-iV-Oaf" secondAttribute="height" multiplier="1:1" id="Paf-pW-iOE"/>
45 <constraint firstAttribute="width" constant="30" id="ZEC-Fx-ygL"/> 46 <constraint firstAttribute="width" constant="30" id="ZEC-Fx-ygL"/>
46 </constraints> 47 </constraints>
47 <state key="normal" image="icon_menu"/> 48 <state key="normal" image="icon_menu"/>
48 <connections> 49 <connections>
49 <action selector="menuButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="74L-R4-bfn"/> 50 <action selector="menuButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="74L-R4-bfn"/>
50 </connections> 51 </connections>
51 </button> 52 </button>
52 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yOP-KX-J14" userLabel="ButtonBack"> 53 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yOP-KX-J14" userLabel="ButtonBack">
53 <rect key="frame" x="5" y="3" width="73" height="37"/> 54 <rect key="frame" x="5" y="3" width="73" height="37"/>
54 <constraints> 55 <constraints>
55 <constraint firstAttribute="height" constant="37" id="A6m-b2-WXH"/> 56 <constraint firstAttribute="height" constant="37" id="A6m-b2-WXH"/>
56 <constraint firstAttribute="width" constant="73" id="YO8-PV-PiT"/> 57 <constraint firstAttribute="width" constant="73" id="YO8-PV-PiT"/>
57 </constraints> 58 </constraints>
58 <state key="normal" image="today_back_button"/> 59 <state key="normal" image="today_back_button"/>
59 <connections> 60 <connections>
60 <action selector="backButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="on4-Ru-Xpf"/> 61 <action selector="backButtonTouchUpInside:" destination="-1" eventType="touchUpInside" id="on4-Ru-Xpf"/>
61 </connections> 62 </connections>
62 </button> 63 </button>
63 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_share" translatesAutoresizingMaskIntoConstraints="NO" id="PW6-AR-UCs"> 64 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_share" translatesAutoresizingMaskIntoConstraints="NO" id="PW6-AR-UCs">
64 <rect key="frame" x="8" y="137" width="42" height="57"/> 65 <rect key="frame" x="8" y="137" width="42" height="57"/>
65 <constraints> 66 <constraints>
66 <constraint firstAttribute="height" constant="57" id="7WA-3l-0cr"/> 67 <constraint firstAttribute="height" constant="57" id="7WA-3l-0cr"/>
67 <constraint firstAttribute="width" constant="42" id="abX-W4-Ho4"/> 68 <constraint firstAttribute="width" constant="42" id="abX-W4-Ho4"/>
68 </constraints> 69 </constraints>
69 </imageView> 70 </imageView>
70 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1ak-Ne-wz9" userLabel="ButtonShare"> 71 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1ak-Ne-wz9" userLabel="ButtonShare">
71 <rect key="frame" x="8" y="137" width="42" height="57"/> 72 <rect key="frame" x="8" y="137" width="42" height="57"/>
72 <connections> 73 <connections>
73 <action selector="buttonShareTouchUpInside:" destination="-1" eventType="touchUpInside" id="dkw-ed-JhQ"/> 74 <action selector="buttonShareTouchUpInside:" destination="-1" eventType="touchUpInside" id="dkw-ed-JhQ"/>
74 </connections> 75 </connections>
75 </button> 76 </button>
76 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_facebook" translatesAutoresizingMaskIntoConstraints="NO" id="Jtx-be-zjg"> 77 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_facebook" translatesAutoresizingMaskIntoConstraints="NO" id="Jtx-be-zjg">
77 <rect key="frame" x="8" y="202" width="40" height="40"/> 78 <rect key="frame" x="8" y="202" width="40" height="40"/>
78 <constraints> 79 <constraints>
79 <constraint firstAttribute="width" constant="40" id="2Fe-7S-LCC"/> 80 <constraint firstAttribute="width" constant="40" id="2Fe-7S-LCC"/>
80 <constraint firstAttribute="height" constant="40" id="5hP-gZ-Qrl"/> 81 <constraint firstAttribute="height" constant="40" id="5hP-gZ-Qrl"/>
81 </constraints> 82 </constraints>
82 </imageView> 83 </imageView>
83 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HLr-Qj-bm4" userLabel="ButtonFacebook"> 84 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HLr-Qj-bm4" userLabel="ButtonFacebook">
84 <rect key="frame" x="8" y="202" width="40" height="40"/> 85 <rect key="frame" x="8" y="202" width="40" height="40"/>
85 <connections> 86 <connections>
86 <action selector="buttonFacebookTouchUpInside:" destination="-1" eventType="touchUpInside" id="MHi-pC-vsR"/> 87 <action selector="buttonFacebookTouchUpInside:" destination="-1" eventType="touchUpInside" id="MHi-pC-vsR"/>
87 </connections> 88 </connections>
88 </button> 89 </button>
89 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_line" translatesAutoresizingMaskIntoConstraints="NO" id="wHy-xz-GJV"> 90 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_line" translatesAutoresizingMaskIntoConstraints="NO" id="wHy-xz-GJV">
90 <rect key="frame" x="8" y="250" width="40" height="40"/> 91 <rect key="frame" x="8" y="250" width="40" height="40"/>
91 <constraints> 92 <constraints>
92 <constraint firstAttribute="width" constant="40" id="ElF-BB-cgs"/> 93 <constraint firstAttribute="width" constant="40" id="ElF-BB-cgs"/>
93 <constraint firstAttribute="height" constant="40" id="myc-Ev-aCy"/> 94 <constraint firstAttribute="height" constant="40" id="myc-Ev-aCy"/>
94 </constraints> 95 </constraints>
95 </imageView> 96 </imageView>
96 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="equ-yC-hU1" userLabel="ButtonLine"> 97 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="equ-yC-hU1" userLabel="ButtonLine">
97 <rect key="frame" x="8" y="250" width="40" height="40"/> 98 <rect key="frame" x="8" y="250" width="40" height="40"/>
98 <connections> 99 <connections>
99 <action selector="buttonLineTouchUpInside:" destination="-1" eventType="touchUpInside" id="9mi-bX-Uqp"/> 100 <action selector="buttonLineTouchUpInside:" destination="-1" eventType="touchUpInside" id="9mi-bX-Uqp"/>
100 </connections> 101 </connections>
101 </button> 102 </button>
102 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oRx-7J-bma" customClass="CircleProgressBar"> 103 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="oRx-7J-bma" customClass="CircleProgressBar">
103 <rect key="frame" x="60" y="94" width="255" height="255"/> 104 <rect key="frame" x="60" y="94" width="255" height="255"/>
104 <subviews> 105 <subviews>
105 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qQS-5K-MuA" userLabel="ViewContent"> 106 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="qQS-5K-MuA" userLabel="ViewContent">
106 <rect key="frame" x="59" y="43" width="136" height="170"/> 107 <rect key="frame" x="59" y="43" width="136" height="170"/>
107 <subviews> 108 <subviews>
108 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_walking" translatesAutoresizingMaskIntoConstraints="NO" id="VwM-9C-Dye"> 109 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon_walking" translatesAutoresizingMaskIntoConstraints="NO" id="VwM-9C-Dye">
109 <rect key="frame" x="61" y="2" width="14" height="25"/> 110 <rect key="frame" x="61" y="2" width="14" height="25"/>
110 <constraints> 111 <constraints>
111 <constraint firstAttribute="width" constant="14" id="mn6-eU-59Y"/> 112 <constraint firstAttribute="width" constant="14" id="mn6-eU-59Y"/>
112 <constraint firstAttribute="height" constant="25" id="rok-3H-sX5"/> 113 <constraint firstAttribute="height" constant="25" id="rok-3H-sX5"/>
113 </constraints> 114 </constraints>
114 </imageView> 115 </imageView>
115 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6,513" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iCl-1r-Bwp"> 116 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6,513" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iCl-1r-Bwp">
116 <rect key="frame" x="0.0" y="35" width="136" height="54"/> 117 <rect key="frame" x="0.0" y="35" width="136" height="54"/>
117 <constraints> 118 <constraints>
118 <constraint firstAttribute="height" constant="54" id="OWK-YU-E5c"/> 119 <constraint firstAttribute="height" constant="54" id="OWK-YU-E5c"/>
119 </constraints> 120 </constraints>
120 <fontDescription key="fontDescription" type="boldSystem" pointSize="45"/> 121 <fontDescription key="fontDescription" type="boldSystem" pointSize="45"/>
121 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 122 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
122 <nil key="highlightedColor"/> 123 <nil key="highlightedColor"/>
123 </label> 124 </label>
124 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="/ 10,000" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fvu-lz-xIk"> 125 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="/ 10,000" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fvu-lz-xIk">
125 <rect key="frame" x="0.0" y="97" width="136" height="24"/> 126 <rect key="frame" x="0.0" y="97" width="136" height="24"/>
126 <constraints> 127 <constraints>
127 <constraint firstAttribute="height" constant="24" id="ID6-U3-pcq"/> 128 <constraint firstAttribute="height" constant="24" id="ID6-U3-pcq"/>
128 </constraints> 129 </constraints>
129 <fontDescription key="fontDescription" type="system" pointSize="20"/> 130 <fontDescription key="fontDescription" type="system" pointSize="20"/>
130 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 131 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
131 <nil key="highlightedColor"/> 132 <nil key="highlightedColor"/>
132 </label> 133 </label>
133 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目模まであと3487歩です" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dEz-7j-nXc"> 134 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目模まであと3487歩です" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dEz-7j-nXc">
134 <rect key="frame" x="0.0" y="129" width="136" height="48"/> 135 <rect key="frame" x="0.0" y="129" width="136" height="48"/>
135 <constraints> 136 <constraints>
136 <constraint firstAttribute="height" constant="48" id="IhK-uP-msA"/> 137 <constraint firstAttribute="height" constant="48" id="IhK-uP-msA"/>
137 </constraints> 138 </constraints>
138 <fontDescription key="fontDescription" type="system" pointSize="20"/> 139 <fontDescription key="fontDescription" type="system" pointSize="20"/>
139 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 140 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
140 <nil key="highlightedColor"/> 141 <nil key="highlightedColor"/>
141 </label> 142 </label>
142 </subviews> 143 </subviews>
143 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 144 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
144 <constraints> 145 <constraints>
145 <constraint firstItem="VwM-9C-Dye" firstAttribute="top" secondItem="qQS-5K-MuA" secondAttribute="top" constant="2" id="3wt-gj-JSb"/> 146 <constraint firstItem="VwM-9C-Dye" firstAttribute="top" secondItem="qQS-5K-MuA" secondAttribute="top" constant="2" id="3wt-gj-JSb"/>
146 <constraint firstItem="dEz-7j-nXc" firstAttribute="top" secondItem="Fvu-lz-xIk" secondAttribute="bottom" constant="8" id="8HX-cn-RI5"/> 147 <constraint firstItem="dEz-7j-nXc" firstAttribute="top" secondItem="Fvu-lz-xIk" secondAttribute="bottom" constant="8" id="8HX-cn-RI5"/>
147 <constraint firstItem="iCl-1r-Bwp" firstAttribute="top" secondItem="VwM-9C-Dye" secondAttribute="bottom" constant="8" id="8th-yr-ele"/> 148 <constraint firstItem="iCl-1r-Bwp" firstAttribute="top" secondItem="VwM-9C-Dye" secondAttribute="bottom" constant="8" id="8th-yr-ele"/>
148 <constraint firstItem="Fvu-lz-xIk" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="A6X-AZ-Tlm"/> 149 <constraint firstItem="Fvu-lz-xIk" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="A6X-AZ-Tlm"/>
149 <constraint firstAttribute="trailing" secondItem="iCl-1r-Bwp" secondAttribute="trailing" id="ALp-VX-Oqk"/> 150 <constraint firstAttribute="trailing" secondItem="iCl-1r-Bwp" secondAttribute="trailing" id="ALp-VX-Oqk"/>
150 <constraint firstAttribute="trailing" secondItem="Fvu-lz-xIk" secondAttribute="trailing" id="ELm-PN-7hB"/> 151 <constraint firstAttribute="trailing" secondItem="Fvu-lz-xIk" secondAttribute="trailing" id="ELm-PN-7hB"/>
151 <constraint firstItem="VwM-9C-Dye" firstAttribute="centerX" secondItem="qQS-5K-MuA" secondAttribute="centerX" id="Erd-eu-Lgw"/> 152 <constraint firstItem="VwM-9C-Dye" firstAttribute="centerX" secondItem="qQS-5K-MuA" secondAttribute="centerX" id="Erd-eu-Lgw"/>
152 <constraint firstItem="dEz-7j-nXc" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="nvf-Kg-Ivk"/> 153 <constraint firstItem="dEz-7j-nXc" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="nvf-Kg-Ivk"/>
153 <constraint firstItem="Fvu-lz-xIk" firstAttribute="top" secondItem="iCl-1r-Bwp" secondAttribute="bottom" constant="8" id="rFD-e5-Oke"/> 154 <constraint firstItem="Fvu-lz-xIk" firstAttribute="top" secondItem="iCl-1r-Bwp" secondAttribute="bottom" constant="8" id="rFD-e5-Oke"/>
154 <constraint firstItem="iCl-1r-Bwp" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="ykV-Hh-2Se"/> 155 <constraint firstItem="iCl-1r-Bwp" firstAttribute="leading" secondItem="qQS-5K-MuA" secondAttribute="leading" id="ykV-Hh-2Se"/>
155 <constraint firstAttribute="trailing" secondItem="dEz-7j-nXc" secondAttribute="trailing" id="zdo-Fa-Bk6"/> 156 <constraint firstAttribute="trailing" secondItem="dEz-7j-nXc" secondAttribute="trailing" id="zdo-Fa-Bk6"/>
156 </constraints> 157 </constraints>
157 </view> 158 </view>
158 </subviews> 159 </subviews>
159 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> 160 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
160 <constraints> 161 <constraints>
161 <constraint firstItem="qQS-5K-MuA" firstAttribute="height" secondItem="oRx-7J-bma" secondAttribute="height" multiplier="200/299" id="KK9-9I-hBs"/> 162 <constraint firstItem="qQS-5K-MuA" firstAttribute="height" secondItem="oRx-7J-bma" secondAttribute="height" multiplier="200/299" id="KK9-9I-hBs"/>
162 <constraint firstItem="qQS-5K-MuA" firstAttribute="centerX" secondItem="oRx-7J-bma" secondAttribute="centerX" id="iHf-Qo-LsK"/> 163 <constraint firstItem="qQS-5K-MuA" firstAttribute="centerX" secondItem="oRx-7J-bma" secondAttribute="centerX" id="iHf-Qo-LsK"/>
163 <constraint firstItem="qQS-5K-MuA" firstAttribute="width" secondItem="oRx-7J-bma" secondAttribute="width" multiplier="160/299" id="nAQ-00-V9H"/> 164 <constraint firstItem="qQS-5K-MuA" firstAttribute="width" secondItem="oRx-7J-bma" secondAttribute="width" multiplier="160/299" id="nAQ-00-V9H"/>
164 <constraint firstItem="qQS-5K-MuA" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="oCW-BR-PvV"/> 165 <constraint firstItem="qQS-5K-MuA" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="oCW-BR-PvV"/>
165 <constraint firstAttribute="width" secondItem="oRx-7J-bma" secondAttribute="height" multiplier="1:1" id="of6-Gd-VOP"/> 166 <constraint firstAttribute="width" secondItem="oRx-7J-bma" secondAttribute="height" multiplier="1:1" id="of6-Gd-VOP"/>
166 </constraints> 167 </constraints>
167 <userDefinedRuntimeAttributes> 168 <userDefinedRuntimeAttributes>
168 <userDefinedRuntimeAttribute type="color" keyPath="progressBarProgressColor"> 169 <userDefinedRuntimeAttribute type="color" keyPath="progressBarProgressColor">
169 <color key="value" red="0.2196078431372549" green="0.74117647058823533" blue="0.90196078431372551" alpha="1" colorSpace="calibratedRGB"/> 170 <color key="value" red="0.2196078431372549" green="0.74117647058823533" blue="0.90196078431372551" alpha="1" colorSpace="calibratedRGB"/>
170 </userDefinedRuntimeAttribute> 171 </userDefinedRuntimeAttribute>
171 <userDefinedRuntimeAttribute type="color" keyPath="progressBarTrackColor"> 172 <userDefinedRuntimeAttribute type="color" keyPath="progressBarTrackColor">
172 <color key="value" red="0.21176470588235294" green="0.21176470588235294" blue="0.21176470588235294" alpha="1" colorSpace="calibratedRGB"/> 173 <color key="value" red="0.21176470588235294" green="0.21176470588235294" blue="0.21176470588235294" alpha="1" colorSpace="calibratedRGB"/>
173 </userDefinedRuntimeAttribute> 174 </userDefinedRuntimeAttribute>
174 <userDefinedRuntimeAttribute type="number" keyPath="progressBarWidth"> 175 <userDefinedRuntimeAttribute type="number" keyPath="progressBarWidth">
175 <real key="value" value="12"/> 176 <real key="value" value="12"/>
176 </userDefinedRuntimeAttribute> 177 </userDefinedRuntimeAttribute>
177 <userDefinedRuntimeAttribute type="number" keyPath="startAngle"> 178 <userDefinedRuntimeAttribute type="number" keyPath="startAngle">
178 <real key="value" value="-90"/> 179 <real key="value" value="-90"/>
179 </userDefinedRuntimeAttribute> 180 </userDefinedRuntimeAttribute>
180 <userDefinedRuntimeAttribute type="number" keyPath="progress"> 181 <userDefinedRuntimeAttribute type="number" keyPath="progress">
181 <real key="value" value="0.40999999999999998"/> 182 <real key="value" value="0.40999999999999998"/>
182 </userDefinedRuntimeAttribute> 183 </userDefinedRuntimeAttribute>
183 </userDefinedRuntimeAttributes> 184 </userDefinedRuntimeAttributes>
184 </view> 185 </view>
185 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標10,000歩" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dQq-cp-R2A" userLabel="Label1"> 186 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="目標10,000歩" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dQq-cp-R2A" userLabel="Label1">
186 <rect key="frame" x="315" y="155.5" width="60" height="33.5"/> 187 <rect key="frame" x="315" y="155.5" width="60" height="33.5"/>
187 <constraints> 188 <constraints>
188 <constraint firstAttribute="height" constant="33.5" id="pNJ-9e-Qhb"/> 189 <constraint firstAttribute="height" constant="33.5" id="pNJ-9e-Qhb"/>
189 </constraints> 190 </constraints>
190 <fontDescription key="fontDescription" type="system" pointSize="14"/> 191 <fontDescription key="fontDescription" type="system" pointSize="14"/>
191 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 192 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
192 <nil key="highlightedColor"/> 193 <nil key="highlightedColor"/>
193 </label> 194 </label>
194 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数3487歩" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V2B-wZ-Efk" userLabel="Label2"> 195 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="残歩数3487歩" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="V2B-wZ-Efk" userLabel="Label2">
195 <rect key="frame" x="315" y="197" width="60" height="50"/> 196 <rect key="frame" x="315" y="197" width="60" height="50"/>
196 <constraints> 197 <constraints>
197 <constraint firstAttribute="height" constant="50" id="9oI-Ia-C0h"/> 198 <constraint firstAttribute="height" constant="50" id="9oI-Ia-C0h"/>
198 </constraints> 199 </constraints>
199 <fontDescription key="fontDescription" type="system" pointSize="14"/> 200 <fontDescription key="fontDescription" type="system" pointSize="14"/>
200 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 201 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
201 <nil key="highlightedColor"/> 202 <nil key="highlightedColor"/>
202 </label> 203 </label>
203 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率78%" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="11m-je-qZ1" userLabel="Label3"> 204 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="達成率78%" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="11m-je-qZ1" userLabel="Label3">
204 <rect key="frame" x="315" y="255" width="60" height="33.5"/> 205 <rect key="frame" x="315" y="255" width="60" height="33.5"/>
205 <constraints> 206 <constraints>
206 <constraint firstAttribute="height" constant="33.5" id="ale-7X-6Gx"/> 207 <constraint firstAttribute="height" constant="33.5" id="ale-7X-6Gx"/>
207 </constraints> 208 </constraints>
208 <fontDescription key="fontDescription" type="system" pointSize="14"/> 209 <fontDescription key="fontDescription" type="system" pointSize="14"/>
209 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/> 210 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
210 <nil key="highlightedColor"/> 211 <nil key="highlightedColor"/>
211 </label> 212 </label>
213 <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jqx-9b-OkT">
214 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
215 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
216 </imageView>
212 </subviews> 217 </subviews>
213 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/> 218 <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
214 <constraints> 219 <constraints>
215 <constraint firstAttribute="trailing" secondItem="11m-je-qZ1" secondAttribute="trailing" id="5wQ-9t-fkx"/> 220 <constraint firstAttribute="trailing" secondItem="11m-je-qZ1" secondAttribute="trailing" id="5wQ-9t-fkx"/>
216 <constraint firstItem="1ak-Ne-wz9" firstAttribute="top" secondItem="PW6-AR-UCs" secondAttribute="top" id="7Lu-Sw-8Vd"/> 221 <constraint firstItem="1ak-Ne-wz9" firstAttribute="top" secondItem="PW6-AR-UCs" secondAttribute="top" id="7Lu-Sw-8Vd"/>
217 <constraint firstItem="V2B-wZ-Efk" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="Bhj-5W-tqM"/> 222 <constraint firstItem="V2B-wZ-Efk" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="Bhj-5W-tqM"/>
218 <constraint firstItem="yOP-KX-J14" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="5" id="Bp4-Am-rzQ"/> 223 <constraint firstItem="yOP-KX-J14" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="5" id="Bp4-Am-rzQ"/>
219 <constraint firstItem="Jtx-be-zjg" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="C4T-QJ-aV0"/> 224 <constraint firstItem="Jtx-be-zjg" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="C4T-QJ-aV0"/>
220 <constraint firstItem="dQq-cp-R2A" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="CSy-Of-ifG"/> 225 <constraint firstItem="dQq-cp-R2A" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="CSy-Of-ifG"/>
221 <constraint firstAttribute="trailing" secondItem="dQq-cp-R2A" secondAttribute="trailing" id="Ct9-ZA-fqo"/> 226 <constraint firstAttribute="trailing" secondItem="dQq-cp-R2A" secondAttribute="trailing" id="Ct9-ZA-fqo"/>
222 <constraint firstItem="HLr-Qj-bm4" firstAttribute="bottom" secondItem="Jtx-be-zjg" secondAttribute="bottom" id="DGk-ic-g00"/> 227 <constraint firstItem="HLr-Qj-bm4" firstAttribute="bottom" secondItem="Jtx-be-zjg" secondAttribute="bottom" id="DGk-ic-g00"/>
223 <constraint firstItem="oRx-7J-bma" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="60" id="DKw-80-JuB"/> 228 <constraint firstItem="oRx-7J-bma" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="60" id="DKw-80-JuB"/>
224 <constraint firstItem="11m-je-qZ1" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="FOq-gH-CTf"/> 229 <constraint firstItem="11m-je-qZ1" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="FOq-gH-CTf"/>
225 <constraint firstItem="HLr-Qj-bm4" firstAttribute="leading" secondItem="Jtx-be-zjg" secondAttribute="leading" id="FhM-mA-AWq"/> 230 <constraint firstItem="HLr-Qj-bm4" firstAttribute="leading" secondItem="Jtx-be-zjg" secondAttribute="leading" id="FhM-mA-AWq"/>
226 <constraint firstItem="RSj-iV-Oaf" firstAttribute="centerY" secondItem="2SZ-sd-ADD" secondAttribute="centerY" id="JTA-NC-8qU"/> 231 <constraint firstItem="RSj-iV-Oaf" firstAttribute="centerY" secondItem="2SZ-sd-ADD" secondAttribute="centerY" id="JTA-NC-8qU"/>
227 <constraint firstItem="V2B-wZ-Efk" firstAttribute="top" secondItem="dQq-cp-R2A" secondAttribute="bottom" constant="8" id="KF9-QN-1Vc"/> 232 <constraint firstItem="V2B-wZ-Efk" firstAttribute="top" secondItem="dQq-cp-R2A" secondAttribute="bottom" constant="8" id="KF9-QN-1Vc"/>
228 <constraint firstItem="wHy-xz-GJV" firstAttribute="top" secondItem="Jtx-be-zjg" secondAttribute="bottom" constant="8" id="LFj-zM-kIs"/> 233 <constraint firstItem="wHy-xz-GJV" firstAttribute="top" secondItem="Jtx-be-zjg" secondAttribute="bottom" constant="8" id="LFj-zM-kIs"/>
229 <constraint firstAttribute="trailing" secondItem="RSj-iV-Oaf" secondAttribute="trailing" constant="10" id="Ldg-q1-Jsy"/> 234 <constraint firstAttribute="trailing" secondItem="RSj-iV-Oaf" secondAttribute="trailing" constant="10" id="Ldg-q1-Jsy"/>
230 <constraint firstItem="V2B-wZ-Efk" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="Ls8-7Q-gjM"/> 235 <constraint firstItem="V2B-wZ-Efk" firstAttribute="leading" secondItem="oRx-7J-bma" secondAttribute="trailing" id="Ls8-7Q-gjM"/>
231 <constraint firstItem="Jtx-be-zjg" firstAttribute="top" secondItem="PW6-AR-UCs" secondAttribute="bottom" constant="8" id="MMi-Mg-qDV"/> 236 <constraint firstItem="Jtx-be-zjg" firstAttribute="top" secondItem="PW6-AR-UCs" secondAttribute="bottom" constant="8" id="MMi-Mg-qDV"/>
232 <constraint firstItem="1ak-Ne-wz9" firstAttribute="leading" secondItem="PW6-AR-UCs" secondAttribute="leading" id="NK3-Gl-NZu"/> 237 <constraint firstItem="1ak-Ne-wz9" firstAttribute="leading" secondItem="PW6-AR-UCs" secondAttribute="leading" id="NK3-Gl-NZu"/>
233 <constraint firstAttribute="trailing" secondItem="2SZ-sd-ADD" secondAttribute="trailing" id="O9f-yA-cZ5"/> 238 <constraint firstAttribute="trailing" secondItem="2SZ-sd-ADD" secondAttribute="trailing" id="O9f-yA-cZ5"/>
234 <constraint firstItem="equ-yC-hU1" firstAttribute="leading" secondItem="wHy-xz-GJV" secondAttribute="leading" id="Oe7-aI-2zb"/> 239 <constraint firstItem="equ-yC-hU1" firstAttribute="leading" secondItem="wHy-xz-GJV" secondAttribute="leading" id="Oe7-aI-2zb"/>
235 <constraint firstItem="Jtx-be-zjg" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="U3o-rO-Gcb"/> 240 <constraint firstItem="Jtx-be-zjg" firstAttribute="centerY" secondItem="oRx-7J-bma" secondAttribute="centerY" id="U3o-rO-Gcb"/>
236 <constraint firstItem="oRx-7J-bma" firstAttribute="top" secondItem="2SZ-sd-ADD" secondAttribute="bottom" constant="50" id="WGj-Jf-jSz"/> 241 <constraint firstItem="oRx-7J-bma" firstAttribute="top" secondItem="2SZ-sd-ADD" secondAttribute="bottom" constant="50" id="WGj-Jf-jSz"/>
237 <constraint firstItem="equ-yC-hU1" firstAttribute="bottom" secondItem="wHy-xz-GJV" secondAttribute="bottom" id="ad4-KH-cYo"/> 242 <constraint firstItem="equ-yC-hU1" firstAttribute="bottom" secondItem="wHy-xz-GJV" secondAttribute="bottom" id="ad4-KH-cYo"/>
238 <constraint firstItem="equ-yC-hU1" firstAttribute="top" secondItem="wHy-xz-GJV" secondAttribute="top" id="adt-MK-oHP"/> 243 <constraint firstItem="equ-yC-hU1" firstAttribute="top" secondItem="wHy-xz-GJV" secondAttribute="top" id="adt-MK-oHP"/>
239 <constraint firstItem="PW6-AR-UCs" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="bsc-pa-ApI"/> 244 <constraint firstItem="PW6-AR-UCs" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="bsc-pa-ApI"/>
240 <constraint firstItem="HLr-Qj-bm4" firstAttribute="trailing" secondItem="Jtx-be-zjg" secondAttribute="trailing" id="h5E-wF-FZV"/> 245 <constraint firstItem="HLr-Qj-bm4" firstAttribute="trailing" secondItem="Jtx-be-zjg" secondAttribute="trailing" id="h5E-wF-FZV"/>
241 <constraint firstItem="1ak-Ne-wz9" firstAttribute="trailing" secondItem="PW6-AR-UCs" secondAttribute="trailing" id="jXm-mH-e3x"/> 246 <constraint firstItem="1ak-Ne-wz9" firstAttribute="trailing" secondItem="PW6-AR-UCs" secondAttribute="trailing" id="jXm-mH-e3x"/>
242 <constraint firstAttribute="trailing" secondItem="V2B-wZ-Efk" secondAttribute="trailing" id="kQV-FL-4Zq"/> 247 <constraint firstAttribute="trailing" secondItem="V2B-wZ-Efk" secondAttribute="trailing" id="kQV-FL-4Zq"/>
243 <constraint firstItem="HLr-Qj-bm4" firstAttribute="top" secondItem="Jtx-be-zjg" secondAttribute="top" id="lE9-vw-sw6"/> 248 <constraint firstItem="HLr-Qj-bm4" firstAttribute="top" secondItem="Jtx-be-zjg" secondAttribute="top" id="lE9-vw-sw6"/>
244 <constraint firstItem="2SZ-sd-ADD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="q0L-8m-E0D"/> 249 <constraint firstItem="2SZ-sd-ADD" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="q0L-8m-E0D"/>
245 <constraint firstItem="equ-yC-hU1" firstAttribute="trailing" secondItem="wHy-xz-GJV" secondAttribute="trailing" id="vDi-q7-eov"/> 250 <constraint firstItem="equ-yC-hU1" firstAttribute="trailing" secondItem="wHy-xz-GJV" secondAttribute="trailing" id="vDi-q7-eov"/>
246 <constraint firstItem="1ak-Ne-wz9" firstAttribute="bottom" secondItem="PW6-AR-UCs" secondAttribute="bottom" id="vlQ-WK-pY4"/> 251 <constraint firstItem="1ak-Ne-wz9" firstAttribute="bottom" secondItem="PW6-AR-UCs" secondAttribute="bottom" id="vlQ-WK-pY4"/>
247 <constraint firstItem="11m-je-qZ1" firstAttribute="top" secondItem="V2B-wZ-Efk" secondAttribute="bottom" constant="8" id="vrX-sS-hWJ"/> 252 <constraint firstItem="11m-je-qZ1" firstAttribute="top" secondItem="V2B-wZ-Efk" secondAttribute="bottom" constant="8" id="vrX-sS-hWJ"/>
248 <constraint firstItem="2SZ-sd-ADD" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" placeholder="YES" id="w1M-Il-jBT"/> 253 <constraint firstItem="2SZ-sd-ADD" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" placeholder="YES" id="w1M-Il-jBT"/>
249 <constraint firstAttribute="trailing" secondItem="oRx-7J-bma" secondAttribute="trailing" constant="60" id="y6f-vv-nWJ"/> 254 <constraint firstAttribute="trailing" secondItem="oRx-7J-bma" secondAttribute="trailing" constant="60" id="y6f-vv-nWJ"/>
250 <constraint firstItem="wHy-xz-GJV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="yEj-yT-PGx"/> 255 <constraint firstItem="wHy-xz-GJV" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="8" id="yEj-yT-PGx"/>
251 <constraint firstItem="yOP-KX-J14" firstAttribute="centerY" secondItem="2SZ-sd-ADD" secondAttribute="centerY" id="ym9-6w-9C5"/> 256 <constraint firstItem="yOP-KX-J14" firstAttribute="centerY" secondItem="2SZ-sd-ADD" secondAttribute="centerY" id="ym9-6w-9C5"/>
252 </constraints> 257 </constraints>
253 <point key="canvasLocation" x="33.5" y="54.5"/> 258 <point key="canvasLocation" x="33.5" y="54.5"/>
254 </view> 259 </view>
255 </objects> 260 </objects>
256 <resources> 261 <resources>
257 <image name="icon_facebook" width="40" height="40"/> 262 <image name="icon_facebook" width="40" height="40"/>
258 <image name="icon_line" width="40" height="40"/> 263 <image name="icon_line" width="40" height="40"/>
259 <image name="icon_menu" width="30" height="30"/> 264 <image name="icon_menu" width="30" height="30"/>
260 <image name="icon_share" width="42" height="57"/> 265 <image name="icon_share" width="42" height="57"/>
261 <image name="icon_walking" width="14" height="25"/> 266 <image name="icon_walking" width="14" height="25"/>
262 <image name="today_back_button" width="73" height="37"/> 267 <image name="today_back_button" width="73" height="37"/>
263 </resources> 268 </resources>
264 </document> 269 </document>
265 270