Commit 4895c174ce41071ef6584c6d626e977267866c54

Authored by nvtu11790@gmail.com
1 parent cd46bb24e6

Add UI history screen

Showing 14 changed files with 991 additions and 6 deletions Side-by-side Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
... ... @@ -44,6 +44,12 @@
44 44 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0F91F2ECE2C0055DED1 /* BaseViewController.m */; };
45 45 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */; };
46 46 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */; };
  47 + E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
  48 + E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
  49 + E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */; };
  50 + E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */; };
  51 + E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */; };
  52 + E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */; };
47 53 /* End PBXBuildFile section */
48 54  
49 55 /* Begin PBXContainerItemProxy section */
... ... @@ -131,6 +137,15 @@
131 137 9CBDA0FC1F2F03810055DED1 /* RegisterViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RegisterViewController.h; sourceTree = "<group>"; };
132 138 9CBDA0FD1F2F03810055DED1 /* RegisterViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RegisterViewController.m; sourceTree = "<group>"; };
133 139 9CBDA0FE1F2F03810055DED1 /* RegisterViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RegisterViewController.xib; sourceTree = "<group>"; };
  140 + E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
  141 + E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
  142 + E99E13AC1F336F4500C78787 /* CollectionView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CollectionView.xib; sourceTree = "<group>"; };
  143 + E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelCollectionViewCell.h; sourceTree = "<group>"; };
  144 + E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelCollectionViewCell.m; sourceTree = "<group>"; };
  145 + E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelCollectionViewCell.xib; sourceTree = "<group>"; };
  146 + E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryListTableViewCell.h; sourceTree = "<group>"; };
  147 + E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryListTableViewCell.m; sourceTree = "<group>"; };
  148 + E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HistoryListTableViewCell.xib; sourceTree = "<group>"; };
134 149 /* End PBXFileReference section */
135 150  
136 151 /* Begin PBXFrameworksBuildPhase section */
... ... @@ -241,6 +256,7 @@
241 256 6E18CED51F2E3C0E0029891F /* ServerAPI */,
242 257 6EDC8BEB1F2C2F3300765ACC /* Common */,
243 258 6ECC406D1F2A5FA500AAEB97 /* Library */,
  259 + E99E13A71F336F0C00C78787 /* CustomView */,
244 260 6E84E3A81F27A8A9001EB88E /* ViewControllers */,
245 261 6E84E3A71F27A887001EB88E /* AppDelegate */,
246 262 6E84E3801F27A701001EB88E /* Assets.xcassets */,
... ... @@ -319,6 +335,9 @@
319 335 6E84E3B21F27A98B001EB88E /* HistoryViewController.h */,
320 336 6E84E3B31F27A98B001EB88E /* HistoryViewController.m */,
321 337 6E84E3B41F27A98B001EB88E /* HistoryViewController.xib */,
  338 + E9F73DC91F338A0F004A3A6F /* HistoryListTableViewCell.h */,
  339 + E9F73DCA1F338A0F004A3A6F /* HistoryListTableViewCell.m */,
  340 + E9F73DCB1F338A0F004A3A6F /* HistoryListTableViewCell.xib */,
322 341 );
323 342 name = History;
324 343 sourceTree = "<group>";
... ... @@ -432,6 +451,27 @@
432 451 name = Pods;
433 452 sourceTree = "<group>";
434 453 };
  454 + E99E13A71F336F0C00C78787 /* CustomView */ = {
  455 + isa = PBXGroup;
  456 + children = (
  457 + E99E13A81F336F1700C78787 /* CollectionView */,
  458 + );
  459 + name = CustomView;
  460 + sourceTree = "<group>";
  461 + };
  462 + E99E13A81F336F1700C78787 /* CollectionView */ = {
  463 + isa = PBXGroup;
  464 + children = (
  465 + E99E13AE1F33720600C78787 /* LabelCollectionViewCell.h */,
  466 + E99E13AF1F33720600C78787 /* LabelCollectionViewCell.m */,
  467 + E99E13B01F33720600C78787 /* LabelCollectionViewCell.xib */,
  468 + E99E13A91F336F3600C78787 /* CollectionView.h */,
  469 + E99E13AA1F336F3600C78787 /* CollectionView.m */,
  470 + E99E13AC1F336F4500C78787 /* CollectionView.xib */,
  471 + );
  472 + name = CollectionView;
  473 + sourceTree = "<group>";
  474 + };
435 475 /* End PBXGroup section */
436 476  
437 477 /* Begin PBXNativeTarget section */
... ... @@ -544,6 +584,7 @@
544 584 files = (
545 585 9CBDA1001F2F03810055DED1 /* RegisterViewController.xib in Resources */,
546 586 6E18CED41F2E39DB0029891F /* LoginViewController.xib in Resources */,
  587 + E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */,
547 588 6E84E3BB1F27A9A0001EB88E /* RankingViewController.xib in Resources */,
548 589 9CA8AEEB1F31BB4600C5FC74 /* ConfirmForgetPassViewController.xib in Resources */,
549 590 6E84E3C01F27A9B1001EB88E /* SNSViewController.xib in Resources */,
... ... @@ -554,6 +595,8 @@
554 595 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
555 596 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
556 597 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
  598 + E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
  599 + E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
557 600 );
558 601 runOnlyForDeploymentPostprocessing = 0;
559 602 };
560 603  
561 604  
... ... @@ -633,13 +676,16 @@
633 676 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
634 677 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
635 678 6E48AF0D1F2F9D3300C1D184 /* CustomTextField.m in Sources */,
  679 + E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */,
636 680 6E84E3B01F27A975001EB88E /* HomeViewController.m in Sources */,
637 681 6E84E3791F27A701001EB88E /* AppDelegate.m in Sources */,
638 682 6E84E3BA1F27A9A0001EB88E /* RankingViewController.m in Sources */,
639 683 6E7F93441F35872B00EFBC71 /* TPKeyboardAvoidingTableView.m in Sources */,
  684 + E9F73DCC1F338A0F004A3A6F /* HistoryListTableViewCell.m in Sources */,
640 685 6EDC8BF41F2C68D700765ACC /* CMMotionActivityExtra.m in Sources */,
641 686 9CBDA0FF1F2F03810055DED1 /* RegisterViewController.m in Sources */,
642 687 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
  688 + E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
643 689 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
644 690 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
645 691 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
LifeLog/LifeLog/AppDelegate.m
... ... @@ -83,7 +83,8 @@
83 83 HistoryViewController *historyVC = [[HistoryViewController alloc] initWithNibName:@"HistoryViewController" bundle:nil];
84 84 UINavigationController *naviHistory = [[UINavigationController alloc] initWithRootViewController:historyVC];
85 85 naviHistory.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.history", @"") image:[UIImage imageNamed:@"tapbar_history"] tag:2];
86   -
  86 + naviHistory.navigationBar.hidden = YES;
  87 +
87 88 RankingViewController *rankingVC = [[RankingViewController alloc] initWithNibName:@"RankingViewController" bundle:nil];
88 89 UINavigationController *naviRanking = [[UINavigationController alloc] initWithRootViewController:rankingVC];
89 90 naviRanking.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.ranking", @"") image:[UIImage imageNamed:@"tapbar_ranking"] tag:3];
LifeLog/LifeLog/CollectionView.h
  1 +//
  2 +// CollectionView.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface CollectionView : UIView <UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout> {
  12 + int _number;
  13 + int _selectedIndex;
  14 +
  15 + float _spacing;
  16 + float _cornerRadius;
  17 +
  18 + UIColor * _highlightColor;
  19 + UIColor * _normalColor;
  20 + UIColor * _textColor;
  21 +
  22 + NSArray * _arrayTitle;
  23 +}
  24 +
  25 +@property (weak, nonatomic) IBOutlet UIView *view;
  26 +@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
  27 +
  28 +-(void) setButtonNumber: (int) number;
  29 +-(void) setSpacing: (float) spacing;
  30 +-(void) setCornerRadius: (float) radius;
  31 +-(void) setSelectedIndex: (int) index;
  32 +-(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text;
  33 +-(void) setArrayTitle: (NSArray *) title;
  34 +
  35 +-(int) getCurrentIndex;
  36 +@end
LifeLog/LifeLog/CollectionView.m
  1 +//
  2 +// CollectionView.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "CollectionView.h"
  10 +#import "LabelCollectionViewCell.h"
  11 +#import "Utilities.h"
  12 +
  13 +@implementation CollectionView
  14 +
  15 +-(id) initWithCoder:(NSCoder *)aDecoder {
  16 + self = [super initWithCoder:aDecoder];
  17 + if(self) {
  18 + [[UINib nibWithNibName:@"CollectionView" bundle:nil] instantiateWithOwner:self options:nil];
  19 + [self addSubview:self.view];
  20 + self.view.frame = self.bounds;
  21 + _number = 0;
  22 + _spacing = 1;
  23 + _cornerRadius = 5.0;
  24 + _highlightColor = [Utilities convertHecToColor:0x999999];
  25 + _normalColor = [UIColor whiteColor];
  26 + _textColor = [UIColor blackColor];
  27 + }
  28 + return self;
  29 +}
  30 +
  31 +-(void) awakeFromNib {
  32 + [super awakeFromNib];
  33 + [self.collectionView registerNib:[UINib nibWithNibName:@"LabelCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"LabelCell"];
  34 +}
  35 +
  36 +-(void) setButtonNumber: (int) number {
  37 + _number = number;
  38 +}
  39 +
  40 +-(void) setSpacing: (float) spacing {
  41 + _spacing = spacing;
  42 +}
  43 +
  44 +-(void) setCornerRadius: (float) radius {
  45 + _cornerRadius = radius;
  46 +}
  47 +
  48 +-(void) setSelectedIndex: (int) index {
  49 + _selectedIndex = index;
  50 + [_collectionView reloadData];
  51 +}
  52 +
  53 +-(void) setNormalColor: (UIColor *) normal highlightColor: (UIColor *) highlight textColor: (UIColor *) text {
  54 + _normalColor = normal;
  55 + _highlightColor = highlight;
  56 + _textColor = text;
  57 +}
  58 +
  59 +-(void) setArrayTitle: (NSArray *) title {
  60 + _arrayTitle = title;
  61 +}
  62 +
  63 +-(int) getCurrentIndex {
  64 + return _selectedIndex;
  65 +}
  66 +
  67 +#pragma mark - UICollectionView Delegate
  68 +- (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
  69 + return 1;
  70 +}
  71 +
  72 +- (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
  73 + return _number;
  74 +}
  75 +
  76 +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
  77 + LabelCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"LabelCell" forIndexPath:indexPath];
  78 + cell.lblTitle.text = [_arrayTitle objectAtIndex:indexPath.row];
  79 + cell.lblTitle.textColor = _textColor;
  80 + cell.lblTitle.layer.cornerRadius = _cornerRadius;
  81 + cell.lblTitle.backgroundColor = (indexPath.row == _selectedIndex) ? _highlightColor : _normalColor;
  82 + return cell;
  83 +}
  84 +
  85 +- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
  86 + return CGSizeMake((self.frame.size.width - (_spacing * _number)) / _number, collectionView.frame.size.height);
  87 +}
  88 +
  89 +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
  90 + return _spacing;
  91 +}
  92 +
  93 +-(void) collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
  94 + _selectedIndex = indexPath.row;
  95 + [collectionView reloadData];
  96 +}
  97 +@end
LifeLog/LifeLog/CollectionView.xib
  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">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  8 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  9 + </dependencies>
  10 + <objects>
  11 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CollectionView">
  12 + <connections>
  13 + <outlet property="collectionView" destination="ubI-h8-MKY" id="QC1-lD-4ud"/>
  14 + <outlet property="view" destination="iN0-l3-epB" id="31f-60-rLl"/>
  15 + </connections>
  16 + </placeholder>
  17 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
  18 + <view contentMode="scaleToFill" id="iN0-l3-epB">
  19 + <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
  20 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  21 + <subviews>
  22 + <collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" fixedFrame="YES" bounces="NO" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" dataMode="none" translatesAutoresizingMaskIntoConstraints="NO" id="ubI-h8-MKY">
  23 + <rect key="frame" x="0.0" y="0.0" width="375" height="50"/>
  24 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  25 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  26 + <collectionViewFlowLayout key="collectionViewLayout" scrollDirection="horizontal" minimumLineSpacing="3" minimumInteritemSpacing="0.0" id="Q46-34-Q0S">
  27 + <size key="itemSize" width="50" height="50"/>
  28 + <size key="headerReferenceSize" width="0.0" height="0.0"/>
  29 + <size key="footerReferenceSize" width="0.0" height="0.0"/>
  30 + <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
  31 + </collectionViewFlowLayout>
  32 + <connections>
  33 + <outlet property="dataSource" destination="-1" id="Zto-lx-R1Z"/>
  34 + <outlet property="delegate" destination="-1" id="bmL-e4-Zy9"/>
  35 + </connections>
  36 + </collectionView>
  37 + </subviews>
  38 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  39 + <nil key="simulatedStatusBarMetrics"/>
  40 + <nil key="simulatedTopBarMetrics"/>
  41 + <nil key="simulatedBottomBarMetrics"/>
  42 + <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
  43 + <point key="canvasLocation" x="5.5" y="-17"/>
  44 + </view>
  45 + </objects>
  46 +</document>
LifeLog/LifeLog/HistoryListTableViewCell.h
  1 +//
  2 +// HistoryListTableViewCell.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface HistoryListTableViewCell : UITableViewCell
  12 +
  13 +@property (weak, nonatomic) IBOutlet UILabel *lblTitle;
  14 +@property (weak, nonatomic) IBOutlet UILabel *lblStep;
  15 +@property (weak, nonatomic) IBOutlet UILabel *lblDistance;
  16 +@property (weak, nonatomic) IBOutlet UILabel *lblPower;
  17 +@property (weak, nonatomic) IBOutlet UILabel *lblDuration;
  18 +
  19 +@end
LifeLog/LifeLog/HistoryListTableViewCell.m
  1 +//
  2 +// HistoryListTableViewCell.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "HistoryListTableViewCell.h"
  10 +
  11 +@implementation HistoryListTableViewCell
  12 +
  13 +- (void)awakeFromNib {
  14 + [super awakeFromNib];
  15 + // Initialization code
  16 +}
  17 +
  18 +- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
  19 + [super setSelected:selected animated:animated];
  20 +
  21 + // Configure the view for the selected state
  22 +}
  23 +
  24 +@end
LifeLog/LifeLog/HistoryListTableViewCell.xib
  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">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  8 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  9 + </dependencies>
  10 + <objects>
  11 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
  12 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
  13 + <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="HistoryListCell" rowHeight="100" id="KGk-i7-Jjw" customClass="HistoryListTableViewCell">
  14 + <rect key="frame" x="0.0" y="0.0" width="320" height="188"/>
  15 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  16 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
  17 + <rect key="frame" x="0.0" y="0.0" width="320" height="188"/>
  18 + <autoresizingMask key="autoresizingMask"/>
  19 + <subviews>
  20 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="l97-iI-4Nl">
  21 + <rect key="frame" x="0.0" y="0.0" width="320" height="35"/>
  22 + <subviews>
  23 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1日(月 )" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zW0-JI-PIE">
  24 + <rect key="frame" x="4" y="0.0" width="80" height="30"/>
  25 + <constraints>
  26 + <constraint firstAttribute="width" constant="80" id="2SR-JF-W5T"/>
  27 + </constraints>
  28 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  29 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  30 + <nil key="highlightedColor"/>
  31 + </label>
  32 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qgK-8d-giH">
  33 + <rect key="frame" x="240" y="0.0" width="80" height="30"/>
  34 + <constraints>
  35 + <constraint firstAttribute="width" constant="80" id="efJ-dz-Eyh"/>
  36 + </constraints>
  37 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  38 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  39 + <nil key="highlightedColor"/>
  40 + </label>
  41 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Eop-bg-Dy9">
  42 + <rect key="frame" x="84" y="0.0" width="156" height="30"/>
  43 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  44 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  45 + <nil key="highlightedColor"/>
  46 + </label>
  47 + </subviews>
  48 + <color key="backgroundColor" red="0.36078431372549019" green="0.36078431372549019" blue="0.36078431372549019" alpha="1" colorSpace="calibratedRGB"/>
  49 + <constraints>
  50 + <constraint firstAttribute="trailing" secondItem="qgK-8d-giH" secondAttribute="trailing" id="4eG-yY-bgS"/>
  51 + <constraint firstItem="qgK-8d-giH" firstAttribute="top" secondItem="l97-iI-4Nl" secondAttribute="top" id="8YS-4x-HVg"/>
  52 + <constraint firstAttribute="height" constant="35" id="R67-hu-UQW"/>
  53 + <constraint firstItem="Eop-bg-Dy9" firstAttribute="leading" secondItem="zW0-JI-PIE" secondAttribute="trailing" id="Rh3-lL-CfE"/>
  54 + <constraint firstAttribute="bottom" secondItem="zW0-JI-PIE" secondAttribute="bottom" constant="5" id="W55-gD-NIx"/>
  55 + <constraint firstAttribute="bottom" secondItem="Eop-bg-Dy9" secondAttribute="bottom" constant="5" id="Wor-Tc-WPf"/>
  56 + <constraint firstItem="zW0-JI-PIE" firstAttribute="leading" secondItem="l97-iI-4Nl" secondAttribute="leading" constant="4" id="ZBL-QQ-0jD"/>
  57 + <constraint firstAttribute="bottom" secondItem="qgK-8d-giH" secondAttribute="bottom" constant="5" id="cyO-Tr-6Md"/>
  58 + <constraint firstItem="zW0-JI-PIE" firstAttribute="top" secondItem="l97-iI-4Nl" secondAttribute="top" id="iDg-dJ-y0S"/>
  59 + <constraint firstItem="qgK-8d-giH" firstAttribute="leading" secondItem="Eop-bg-Dy9" secondAttribute="trailing" id="vhm-kx-gmg"/>
  60 + <constraint firstItem="Eop-bg-Dy9" firstAttribute="top" secondItem="l97-iI-4Nl" secondAttribute="top" id="xli-4P-Kun"/>
  61 + </constraints>
  62 + <userDefinedRuntimeAttributes>
  63 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  64 + <integer key="value" value="5"/>
  65 + </userDefinedRuntimeAttribute>
  66 + </userDefinedRuntimeAttributes>
  67 + </view>
  68 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yAb-sD-Uf2">
  69 + <rect key="frame" x="0.0" y="30" width="320" height="158"/>
  70 + <subviews>
  71 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pTa-iM-GGE">
  72 + <rect key="frame" x="10" y="8" width="45" height="15"/>
  73 + <constraints>
  74 + <constraint firstAttribute="height" constant="15" id="FsR-rA-SoL"/>
  75 + <constraint firstAttribute="width" constant="45" id="GEl-5g-KCw"/>
  76 + </constraints>
  77 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  78 + <nil key="highlightedColor"/>
  79 + </label>
  80 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="カロリー" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JCF-ib-9hs">
  81 + <rect key="frame" x="10" y="23" width="45" height="15"/>
  82 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  83 + <nil key="highlightedColor"/>
  84 + </label>
  85 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="距離" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6g7-qJ-zHF">
  86 + <rect key="frame" x="10" y="38" width="45" height="15"/>
  87 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  88 + <nil key="highlightedColor"/>
  89 + </label>
  90 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 km" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="f2Y-XG-L6g">
  91 + <rect key="frame" x="63" y="8" width="219" height="15"/>
  92 + <constraints>
  93 + <constraint firstAttribute="height" constant="15" id="kWm-bt-xfO"/>
  94 + </constraints>
  95 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  96 + <nil key="highlightedColor"/>
  97 + </label>
  98 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yy6-cn-agT">
  99 + <rect key="frame" x="63" y="23" width="219" height="15"/>
  100 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  101 + <nil key="highlightedColor"/>
  102 + </label>
  103 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0:50:11" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lmZ-T8-ABg">
  104 + <rect key="frame" x="63" y="38" width="219" height="15"/>
  105 + <fontDescription key="fontDescription" type="system" pointSize="10"/>
  106 + <nil key="highlightedColor"/>
  107 + </label>
  108 + </subviews>
  109 + <color key="backgroundColor" red="0.93333333333333335" green="0.93333333333333335" blue="0.93333333333333335" alpha="1" colorSpace="calibratedRGB"/>
  110 + <constraints>
  111 + <constraint firstItem="Yy6-cn-agT" firstAttribute="leading" secondItem="f2Y-XG-L6g" secondAttribute="leading" id="2Ee-SX-8go"/>
  112 + <constraint firstItem="lmZ-T8-ABg" firstAttribute="height" secondItem="f2Y-XG-L6g" secondAttribute="height" id="2nz-Eq-Wuy"/>
  113 + <constraint firstItem="Yy6-cn-agT" firstAttribute="leading" secondItem="f2Y-XG-L6g" secondAttribute="leading" id="5GH-Il-KeE"/>
  114 + <constraint firstItem="JCF-ib-9hs" firstAttribute="leading" secondItem="pTa-iM-GGE" secondAttribute="leading" id="9hV-iQ-0Bo"/>
  115 + <constraint firstItem="lmZ-T8-ABg" firstAttribute="top" secondItem="Yy6-cn-agT" secondAttribute="bottom" id="Aam-YG-wSE"/>
  116 + <constraint firstItem="lmZ-T8-ABg" firstAttribute="width" secondItem="f2Y-XG-L6g" secondAttribute="width" id="ETo-YC-5aI"/>
  117 + <constraint firstItem="Yy6-cn-agT" firstAttribute="height" secondItem="f2Y-XG-L6g" secondAttribute="height" id="Es4-R8-oEa"/>
  118 + <constraint firstItem="Yy6-cn-agT" firstAttribute="top" secondItem="f2Y-XG-L6g" secondAttribute="bottom" id="Jgb-7C-kb9"/>
  119 + <constraint firstItem="pTa-iM-GGE" firstAttribute="leading" secondItem="yAb-sD-Uf2" secondAttribute="leading" constant="10" id="LVc-pD-XW4"/>
  120 + <constraint firstItem="Yy6-cn-agT" firstAttribute="width" secondItem="f2Y-XG-L6g" secondAttribute="width" id="Qxi-If-K2Y"/>
  121 + <constraint firstItem="JCF-ib-9hs" firstAttribute="top" secondItem="pTa-iM-GGE" secondAttribute="bottom" id="Sob-0k-rC4"/>
  122 + <constraint firstItem="6g7-qJ-zHF" firstAttribute="width" secondItem="pTa-iM-GGE" secondAttribute="width" id="UwK-Ej-eer"/>
  123 + <constraint firstItem="6g7-qJ-zHF" firstAttribute="top" secondItem="JCF-ib-9hs" secondAttribute="bottom" id="VSr-9F-5cc"/>
  124 + <constraint firstItem="JCF-ib-9hs" firstAttribute="height" secondItem="pTa-iM-GGE" secondAttribute="height" id="Yhh-Zn-2tX"/>
  125 + <constraint firstItem="pTa-iM-GGE" firstAttribute="top" secondItem="yAb-sD-Uf2" secondAttribute="top" constant="8" id="hUP-mB-2dz"/>
  126 + <constraint firstItem="lmZ-T8-ABg" firstAttribute="leading" secondItem="f2Y-XG-L6g" secondAttribute="leading" id="hto-gS-Mz2"/>
  127 + <constraint firstItem="lmZ-T8-ABg" firstAttribute="leading" secondItem="f2Y-XG-L6g" secondAttribute="leading" id="i7D-G9-PPF"/>
  128 + <constraint firstItem="f2Y-XG-L6g" firstAttribute="top" secondItem="yAb-sD-Uf2" secondAttribute="top" constant="8" id="jmU-mq-AaY"/>
  129 + <constraint firstItem="6g7-qJ-zHF" firstAttribute="height" secondItem="pTa-iM-GGE" secondAttribute="height" id="mvT-lk-mcd"/>
  130 + <constraint firstAttribute="trailing" secondItem="f2Y-XG-L6g" secondAttribute="trailing" constant="38" id="pFC-Zy-Ydq"/>
  131 + <constraint firstItem="f2Y-XG-L6g" firstAttribute="leading" secondItem="pTa-iM-GGE" secondAttribute="trailing" constant="8" id="svF-aI-4pu"/>
  132 + <constraint firstItem="JCF-ib-9hs" firstAttribute="width" secondItem="pTa-iM-GGE" secondAttribute="width" id="v8t-01-PGN"/>
  133 + <constraint firstItem="6g7-qJ-zHF" firstAttribute="leading" secondItem="pTa-iM-GGE" secondAttribute="leading" id="zgT-uC-I9l"/>
  134 + </constraints>
  135 + </view>
  136 + </subviews>
  137 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  138 + <constraints>
  139 + <constraint firstItem="yAb-sD-Uf2" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="65T-wN-9af"/>
  140 + <constraint firstItem="yAb-sD-Uf2" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="30" id="7y1-zF-cRh"/>
  141 + <constraint firstAttribute="trailing" secondItem="l97-iI-4Nl" secondAttribute="trailing" id="DF1-YD-2mu"/>
  142 + <constraint firstItem="l97-iI-4Nl" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="WNb-sn-9xi"/>
  143 + <constraint firstAttribute="trailing" secondItem="yAb-sD-Uf2" secondAttribute="trailing" id="mbU-jM-lKI"/>
  144 + <constraint firstItem="l97-iI-4Nl" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="rgY-N8-3mT"/>
  145 + <constraint firstAttribute="bottom" secondItem="yAb-sD-Uf2" secondAttribute="bottom" id="tgk-Kq-NYY"/>
  146 + </constraints>
  147 + </tableViewCellContentView>
  148 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  149 + <connections>
  150 + <outlet property="lblDistance" destination="f2Y-XG-L6g" id="gwM-yJ-wWM"/>
  151 + <outlet property="lblDuration" destination="lmZ-T8-ABg" id="ioM-85-tg7"/>
  152 + <outlet property="lblPower" destination="Yy6-cn-agT" id="6KD-eN-oTW"/>
  153 + <outlet property="lblStep" destination="Eop-bg-Dy9" id="JII-VL-w0n"/>
  154 + <outlet property="lblTitle" destination="zW0-JI-PIE" id="RaR-hQ-48q"/>
  155 + </connections>
  156 + <point key="canvasLocation" x="26" y="124"/>
  157 + </tableViewCell>
  158 + </objects>
  159 +</document>
LifeLog/LifeLog/HistoryViewController.h
... ... @@ -8,7 +8,16 @@
8 8  
9 9 #import <UIKit/UIKit.h>
10 10  
11   -@interface HistoryViewController : UIViewController
  11 +#import "CollectionView.h"
12 12  
  13 +@interface HistoryViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate>
  14 +
  15 +@property (weak, nonatomic) IBOutlet UILabel *lblHeader;
  16 +@property (weak, nonatomic) IBOutlet CollectionView *viewCollectionTime;
  17 +@property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType;
  18 +@property (weak, nonatomic) IBOutlet CollectionView *viewCollectionShare;
  19 +
  20 +@property (weak, nonatomic) IBOutlet UITableView *tableListHistory;
  21 +@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
13 22 @end
LifeLog/LifeLog/HistoryViewController.m
... ... @@ -7,7 +7,10 @@
7 7 //
8 8  
9 9 #import "HistoryViewController.h"
  10 +#import "Utilities.h"
10 11  
  12 +#import "HistoryListTableViewCell.h"
  13 +
11 14 @interface HistoryViewController ()
12 15  
13 16 @end
14 17  
15 18  
... ... @@ -18,11 +21,48 @@
18 21 [super viewDidLoad];
19 22 // Do any additional setup after loading the view from its nib.
20 23 self.title = NSLocalizedString(@"lifelog.tapbar.history", nil);
  24 + self.lblHeader.text = NSLocalizedString(@"lifelog.tapbar.history", nil);
  25 +
  26 + [self.viewCollectionTime setButtonNumber:5];
  27 + [self.viewCollectionTime setSpacing:2];
  28 + [self.viewCollectionTime setArrayTitle:[NSArray arrayWithObjects:@"1日", @"1週間", @"1ヶ月", @"3ヶ月", @"6ヶ月", nil]];
  29 +
  30 + [self.viewCollectionType setButtonNumber:3];
  31 + [self.viewCollectionType setSpacing:0];
  32 + [self.viewCollectionType setCornerRadius:0];
  33 + [self.viewCollectionType setNormalColor:[Utilities convertHecToColor:0x191919] highlightColor:[Utilities convertHecToColor:0x474747] textColor:[UIColor whiteColor]];
  34 + [self.viewCollectionType setArrayTitle:[NSArray arrayWithObjects:@"BIKE", @"WALKING", @"RUNNING", nil]];
  35 +
  36 + [self.viewCollectionShare setButtonNumber:5];
  37 + [self.viewCollectionShare setSpacing:3];
  38 + [self.viewCollectionShare setSelectedIndex:-1];
  39 + [self.viewCollectionShare setArrayTitle:[NSArray arrayWithObjects:@"facebook", @"twitter", @"line", @"メール", @"その他", nil]];
  40 +
  41 + [self.tableListHistory registerNib:[UINib nibWithNibName:@"HistoryListTableViewCell" bundle:nil] forCellReuseIdentifier:@"HistoryListCell"];
21 42 }
22 43  
  44 +- (void)viewDidAppear:(BOOL) animated
  45 +{
  46 + [super viewDidAppear:animated];
  47 + self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 400);
  48 + [self.scrollView setNeedsLayout];
  49 + [self.scrollView setNeedsUpdateConstraints];
  50 +
  51 +}
  52 +
23 53 - (void)didReceiveMemoryWarning {
24 54 [super didReceiveMemoryWarning];
25 55 // Dispose of any resources that can be recreated.
  56 +}
  57 +
  58 +#pragma mark UITableView Delegate
  59 +- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  60 + return 4;
  61 +}
  62 +
  63 +- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  64 + HistoryListTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"HistoryListCell"];
  65 + return cell;
26 66 }
27 67  
28 68 @end
LifeLog/LifeLog/HistoryViewController.xib
1   -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2   -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  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">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
3 6 <dependencies>
4   - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  8 + <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
5 9 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
6 10 </dependencies>
7 11 <objects>
8 12 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="HistoryViewController">
9 13 <connections>
  14 + <outlet property="lblHeader" destination="Ht6-rd-JXF" id="SSk-xp-GLP"/>
  15 + <outlet property="scrollView" destination="rey-N3-l8b" id="s3w-fi-n5l"/>
  16 + <outlet property="tableListHistory" destination="FXQ-4O-sRc" id="VNN-sx-9xu"/>
10 17 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
  18 + <outlet property="viewCollectionShare" destination="Iw2-nW-e7g" id="LW3-j0-yEY"/>
  19 + <outlet property="viewCollectionTime" destination="yxY-4d-tB6" id="jp8-TP-N5g"/>
  20 + <outlet property="viewCollectionType" destination="BVv-qD-EHM" id="0MR-m4-P1Y"/>
11 21 </connections>
12 22 </placeholder>
13 23 <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
14 24 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
15 25 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
16 26 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
17   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  27 + <subviews>
  28 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader">
  29 + <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
  30 + <subviews>
  31 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="TODAY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF">
  32 + <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
  33 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  34 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  35 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  36 + <nil key="highlightedColor"/>
  37 + </label>
  38 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC">
  39 + <rect key="frame" x="0.0" y="5" width="70" height="36"/>
  40 + <constraints>
  41 + <constraint firstAttribute="width" constant="70" id="xAE-oP-WEf"/>
  42 + </constraints>
  43 + <state key="normal" image="today_back_button"/>
  44 + </button>
  45 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CFx-sO-MAH">
  46 + <rect key="frame" x="330" y="0.0" width="45" height="46"/>
  47 + <constraints>
  48 + <constraint firstAttribute="width" constant="45" id="V0g-Ii-pNQ"/>
  49 + </constraints>
  50 + <state key="normal" image="icon_menu"/>
  51 + </button>
  52 + </subviews>
  53 + <color key="backgroundColor" red="0.098039215686274508" green="0.098039215686274508" blue="0.098039215686274508" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  54 + <constraints>
  55 + <constraint firstItem="ytc-zM-ZGC" firstAttribute="leading" secondItem="clL-JG-rbd" secondAttribute="leading" id="LDb-Pq-Z5k"/>
  56 + <constraint firstAttribute="trailing" secondItem="CFx-sO-MAH" secondAttribute="trailing" id="PTh-vI-2DI"/>
  57 + <constraint firstItem="CFx-sO-MAH" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" id="Uxg-Wl-DlF"/>
  58 + <constraint firstAttribute="bottom" secondItem="CFx-sO-MAH" secondAttribute="bottom" id="X9D-m3-QXF"/>
  59 + <constraint firstAttribute="bottom" secondItem="ytc-zM-ZGC" secondAttribute="bottom" constant="5" id="hWb-ga-1wm"/>
  60 + <constraint firstItem="ytc-zM-ZGC" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="top" constant="5" id="vFt-FE-klC"/>
  61 + <constraint firstAttribute="height" constant="46" id="xGd-BD-bgs"/>
  62 + </constraints>
  63 + </view>
  64 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Cf1-lP-zbB" userLabel="ViewTime">
  65 + <rect key="frame" x="10" y="46" width="355" height="35"/>
  66 + <subviews>
  67 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6T2-M9-9wV">
  68 + <rect key="frame" x="0.0" y="0.0" width="35" height="35"/>
  69 + <constraints>
  70 + <constraint firstAttribute="width" secondItem="6T2-M9-9wV" secondAttribute="height" multiplier="1:1" id="RlM-6u-eer"/>
  71 + </constraints>
  72 + <state key="normal" backgroundImage="arrow_back"/>
  73 + </button>
  74 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cwb-8M-pDi">
  75 + <rect key="frame" x="320" y="0.0" width="35" height="35"/>
  76 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  77 + <state key="normal" backgroundImage="arrow_next"/>
  78 + </button>
  79 + <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">
  80 + <rect key="frame" x="40" y="2" width="275" height="31"/>
  81 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  82 + <nil key="textColor"/>
  83 + <nil key="highlightedColor"/>
  84 + </label>
  85 + </subviews>
  86 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  87 + <constraints>
  88 + <constraint firstItem="Cwb-8M-pDi" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="4Jr-r7-y6d"/>
  89 + <constraint firstAttribute="bottom" secondItem="6T2-M9-9wV" secondAttribute="bottom" id="8bU-NI-m32"/>
  90 + <constraint firstItem="EM7-vA-s1e" firstAttribute="leading" secondItem="6T2-M9-9wV" secondAttribute="trailing" constant="5" id="9G1-I6-nSV"/>
  91 + <constraint firstItem="EM7-vA-s1e" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" constant="2" id="9Yk-sv-gkx"/>
  92 + <constraint firstItem="Cwb-8M-pDi" firstAttribute="leading" secondItem="EM7-vA-s1e" secondAttribute="trailing" constant="5" id="JQI-18-cWP"/>
  93 + <constraint firstAttribute="height" constant="35" id="Pdg-IR-g8y"/>
  94 + <constraint firstItem="6T2-M9-9wV" firstAttribute="leading" secondItem="Cf1-lP-zbB" secondAttribute="leading" id="Pgh-zZ-vrG"/>
  95 + <constraint firstAttribute="bottom" secondItem="Cwb-8M-pDi" secondAttribute="bottom" id="WWs-Ey-osm"/>
  96 + <constraint firstItem="Cwb-8M-pDi" firstAttribute="width" secondItem="Cwb-8M-pDi" secondAttribute="height" multiplier="1:1" id="YHa-MU-GKi"/>
  97 + <constraint firstItem="6T2-M9-9wV" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="top" id="fiM-o3-Us0"/>
  98 + <constraint firstAttribute="trailing" secondItem="Cwb-8M-pDi" secondAttribute="trailing" id="oCE-RP-EmX"/>
  99 + <constraint firstAttribute="bottom" secondItem="EM7-vA-s1e" secondAttribute="bottom" constant="2" id="oOd-ip-MZy"/>
  100 + </constraints>
  101 + </view>
  102 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="yxY-4d-tB6" customClass="CollectionView">
  103 + <rect key="frame" x="2" y="96" width="371" height="40"/>
  104 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  105 + <constraints>
  106 + <constraint firstAttribute="height" constant="40" id="U7Q-wa-CDi"/>
  107 + </constraints>
  108 + </view>
  109 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVv-qD-EHM" customClass="CollectionView">
  110 + <rect key="frame" x="0.0" y="567" width="375" height="40"/>
  111 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  112 + <constraints>
  113 + <constraint firstAttribute="height" constant="40" id="6wc-NQ-UAH"/>
  114 + </constraints>
  115 + </view>
  116 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FLa-rV-Aas" userLabel="ViewContent">
  117 + <rect key="frame" x="0.0" y="151" width="375" height="411"/>
  118 + <subviews>
  119 + <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="FXQ-4O-sRc">
  120 + <rect key="frame" x="5" y="0.0" width="365" height="411"/>
  121 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  122 + <connections>
  123 + <outlet property="dataSource" destination="-1" id="GQy-lg-1Af"/>
  124 + <outlet property="delegate" destination="-1" id="Jka-Ij-zNq"/>
  125 + </connections>
  126 + </tableView>
  127 + <scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rey-N3-l8b">
  128 + <rect key="frame" x="0.0" y="0.0" width="375" height="411"/>
  129 + <subviews>
  130 + <view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Cam-ML-IEO">
  131 + <rect key="frame" x="0.0" y="0.0" width="375" height="411"/>
  132 + <subviews>
  133 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Kzk-mN-AOf">
  134 + <rect key="frame" x="20" y="30" width="120" height="120"/>
  135 + <subviews>
  136 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oWg-A8-aCr">
  137 + <rect key="frame" x="18" y="35" width="82" height="21"/>
  138 + <constraints>
  139 + <constraint firstAttribute="height" constant="21" id="zOX-0d-IVv"/>
  140 + </constraints>
  141 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  142 + <nil key="textColor"/>
  143 + <nil key="highlightedColor"/>
  144 + </label>
  145 + <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">
  146 + <rect key="frame" x="20.5" y="61" width="80" height="42"/>
  147 + <constraints>
  148 + <constraint firstAttribute="width" constant="80" id="IOc-sB-dA2"/>
  149 + <constraint firstAttribute="height" constant="42" id="zRP-Fu-qZ9"/>
  150 + </constraints>
  151 + <string key="text">目標まであと
  152 +500 stepです</string>
  153 + <fontDescription key="fontDescription" type="system" pointSize="11"/>
  154 + <nil key="textColor"/>
  155 + <nil key="highlightedColor"/>
  156 + </label>
  157 + </subviews>
  158 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  159 + <constraints>
  160 + <constraint firstItem="Kr7-S0-Fpl" firstAttribute="top" secondItem="oWg-A8-aCr" secondAttribute="bottom" constant="5" id="2KK-Lm-h74"/>
  161 + <constraint firstItem="oWg-A8-aCr" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="leading" constant="18" id="CdG-qa-ud5"/>
  162 + <constraint firstAttribute="width" constant="120" id="E48-cC-dsc"/>
  163 + <constraint firstAttribute="height" constant="120" id="SlY-sr-tR9"/>
  164 + <constraint firstItem="Kr7-S0-Fpl" firstAttribute="centerX" secondItem="Kzk-mN-AOf" secondAttribute="centerX" id="jJV-RH-pk1"/>
  165 + <constraint firstItem="oWg-A8-aCr" firstAttribute="top" secondItem="Kzk-mN-AOf" secondAttribute="top" constant="35" id="oBl-zo-td5"/>
  166 + <constraint firstAttribute="trailing" secondItem="oWg-A8-aCr" secondAttribute="trailing" constant="20" id="xgh-d4-jOF"/>
  167 + </constraints>
  168 + <userDefinedRuntimeAttributes>
  169 + <userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
  170 + <integer key="value" value="60"/>
  171 + </userDefinedRuntimeAttribute>
  172 + </userDefinedRuntimeAttributes>
  173 + </view>
  174 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4ix-HE-d9T">
  175 + <rect key="frame" x="148" y="30" width="219" height="120"/>
  176 + <subviews>
  177 + <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">
  178 + <rect key="frame" x="10" y="37.5" width="45" height="15"/>
  179 + <constraints>
  180 + <constraint firstAttribute="width" constant="45" id="6Ce-YE-wbx"/>
  181 + <constraint firstAttribute="height" constant="15" id="eFR-Ao-75U"/>
  182 + </constraints>
  183 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  184 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  185 + <nil key="highlightedColor"/>
  186 + </label>
  187 + <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">
  188 + <rect key="frame" x="10" y="52.5" width="45" height="15"/>
  189 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  190 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  191 + <nil key="highlightedColor"/>
  192 + </label>
  193 + <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">
  194 + <rect key="frame" x="10" y="67.5" width="45" height="15"/>
  195 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  196 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  197 + <nil key="highlightedColor"/>
  198 + </label>
  199 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0pf-fX-QXT">
  200 + <rect key="frame" x="63" y="37.5" width="118" height="15"/>
  201 + <constraints>
  202 + <constraint firstAttribute="height" constant="15" id="Z6o-LI-Eu9"/>
  203 + </constraints>
  204 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  205 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  206 + <nil key="highlightedColor"/>
  207 + </label>
  208 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="500 step" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1NH-b3-ST8">
  209 + <rect key="frame" x="63" y="52.5" width="118" height="15"/>
  210 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  211 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  212 + <nil key="highlightedColor"/>
  213 + </label>
  214 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="50 %" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8Ru-Jc-Ouv">
  215 + <rect key="frame" x="63" y="67.5" width="118" height="15"/>
  216 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  217 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  218 + <nil key="highlightedColor"/>
  219 + </label>
  220 + </subviews>
  221 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  222 + <constraints>
  223 + <constraint firstItem="l0h-qA-2Ai" firstAttribute="top" secondItem="HOl-Tj-xiT" secondAttribute="bottom" id="0dv-3h-eHs"/>
  224 + <constraint firstItem="l0h-qA-2Ai" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="7z3-ph-BM4"/>
  225 + <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="ACu-BV-ieg"/>
  226 + <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="top" secondItem="1NH-b3-ST8" secondAttribute="bottom" id="Abh-FK-4X7"/>
  227 + <constraint firstItem="1NH-b3-ST8" firstAttribute="top" secondItem="0pf-fX-QXT" secondAttribute="bottom" id="B3I-n2-Oks"/>
  228 + <constraint firstItem="1NH-b3-ST8" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="BAn-7O-jBX"/>
  229 + <constraint firstItem="0pf-fX-QXT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="trailing" constant="8" id="G20-xx-HEH"/>
  230 + <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="NIm-Zw-fnf"/>
  231 + <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="height" secondItem="0pf-fX-QXT" secondAttribute="height" id="PdQ-qd-Sqc"/>
  232 + <constraint firstItem="HOl-Tj-xiT" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="WpC-o9-bDa"/>
  233 + <constraint firstItem="l0h-qA-2Ai" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="bR8-Ki-lS1"/>
  234 + <constraint firstItem="HOl-Tj-xiT" firstAttribute="height" secondItem="YE6-wh-77T" secondAttribute="height" id="c0u-hz-5O9"/>
  235 + <constraint firstItem="1NH-b3-ST8" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="chf-kb-ClX"/>
  236 + <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="leading" secondItem="0pf-fX-QXT" secondAttribute="leading" id="din-4T-V5w"/>
  237 + <constraint firstItem="l0h-qA-2Ai" firstAttribute="width" secondItem="YE6-wh-77T" secondAttribute="width" id="eo0-xw-d1f"/>
  238 + <constraint firstItem="8Ru-Jc-Ouv" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="gjt-3e-Pkx"/>
  239 + <constraint firstItem="1NH-b3-ST8" firstAttribute="width" secondItem="0pf-fX-QXT" secondAttribute="width" id="kOM-6S-Amv"/>
  240 + <constraint firstItem="HOl-Tj-xiT" firstAttribute="leading" secondItem="YE6-wh-77T" secondAttribute="leading" id="oOc-TB-k4j"/>
  241 + <constraint firstItem="1NH-b3-ST8" firstAttribute="centerY" secondItem="HOl-Tj-xiT" secondAttribute="centerY" id="pGW-dw-56G"/>
  242 + <constraint firstItem="HOl-Tj-xiT" firstAttribute="top" secondItem="YE6-wh-77T" secondAttribute="bottom" id="s6n-mU-Sp6"/>
  243 + <constraint firstItem="HOl-Tj-xiT" firstAttribute="centerY" secondItem="4ix-HE-d9T" secondAttribute="centerY" id="vB9-RR-pao"/>
  244 + <constraint firstAttribute="trailing" secondItem="0pf-fX-QXT" secondAttribute="trailing" constant="38" id="xiP-fg-Ozi"/>
  245 + <constraint firstItem="YE6-wh-77T" firstAttribute="leading" secondItem="4ix-HE-d9T" secondAttribute="leading" constant="10" id="xj6-In-ihz"/>
  246 + </constraints>
  247 + </view>
  248 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="iEh-Ze-suq">
  249 + <rect key="frame" x="20" y="158" width="335" height="35"/>
  250 + <subviews>
  251 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="UwA-5Q-gdv">
  252 + <rect key="frame" x="0.0" y="0.0" width="111.5" height="35"/>
  253 + <subviews>
  254 + <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">
  255 + <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
  256 + <constraints>
  257 + <constraint firstAttribute="height" constant="18" id="Ywp-RA-6am"/>
  258 + </constraints>
  259 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  260 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  261 + <nil key="highlightedColor"/>
  262 + </label>
  263 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1000 kcal" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="dAE-C8-QLr">
  264 + <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
  265 + <constraints>
  266 + <constraint firstAttribute="height" constant="18" id="r0d-xi-3u7"/>
  267 + </constraints>
  268 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  269 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  270 + <nil key="highlightedColor"/>
  271 + </label>
  272 + </subviews>
  273 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  274 + <constraints>
  275 + <constraint firstItem="zRU-L6-Ed4" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="Zbe-7f-cuR"/>
  276 + <constraint firstAttribute="bottom" secondItem="dAE-C8-QLr" secondAttribute="bottom" id="aZH-zh-M1V"/>
  277 + <constraint firstItem="zRU-L6-Ed4" firstAttribute="top" secondItem="UwA-5Q-gdv" secondAttribute="top" id="bsw-KU-Tcu"/>
  278 + <constraint firstAttribute="trailing" secondItem="zRU-L6-Ed4" secondAttribute="trailing" id="iMB-ch-u4B"/>
  279 + <constraint firstItem="dAE-C8-QLr" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="leading" id="qNu-WH-Jjj"/>
  280 + <constraint firstAttribute="trailing" secondItem="dAE-C8-QLr" secondAttribute="trailing" id="wRF-1x-XC1"/>
  281 + </constraints>
  282 + </view>
  283 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BVs-KG-fDF">
  284 + <rect key="frame" x="111.5" y="0.0" width="112" height="35"/>
  285 + <subviews>
  286 + <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">
  287 + <rect key="frame" x="0.0" y="0.0" width="112" height="18"/>
  288 + <constraints>
  289 + <constraint firstAttribute="height" constant="18" id="tct-pY-7wo"/>
  290 + </constraints>
  291 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  292 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  293 + <nil key="highlightedColor"/>
  294 + </label>
  295 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="4.0 KM" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1tR-JC-pyw">
  296 + <rect key="frame" x="0.0" y="17" width="112" height="18"/>
  297 + <constraints>
  298 + <constraint firstAttribute="height" constant="18" id="sNT-xl-BKH"/>
  299 + </constraints>
  300 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  301 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  302 + <nil key="highlightedColor"/>
  303 + </label>
  304 + </subviews>
  305 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  306 + <constraints>
  307 + <constraint firstItem="XGt-pc-sd7" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="Bd8-ZX-shc"/>
  308 + <constraint firstAttribute="trailing" secondItem="1tR-JC-pyw" secondAttribute="trailing" id="Mrw-gb-r3n"/>
  309 + <constraint firstAttribute="trailing" secondItem="XGt-pc-sd7" secondAttribute="trailing" id="cTc-te-Pc1"/>
  310 + <constraint firstItem="XGt-pc-sd7" firstAttribute="top" secondItem="BVs-KG-fDF" secondAttribute="top" id="cs1-A7-e5C"/>
  311 + <constraint firstAttribute="bottom" secondItem="1tR-JC-pyw" secondAttribute="bottom" id="vsZ-FE-X5m"/>
  312 + <constraint firstItem="1tR-JC-pyw" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="leading" id="xOd-ZK-rZn"/>
  313 + </constraints>
  314 + </view>
  315 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="j5h-QD-Igf">
  316 + <rect key="frame" x="223.5" y="0.0" width="111.5" height="35"/>
  317 + <subviews>
  318 + <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">
  319 + <rect key="frame" x="0.0" y="0.0" width="111.5" height="18"/>
  320 + <constraints>
  321 + <constraint firstAttribute="height" constant="18" id="EVe-qW-qqp"/>
  322 + </constraints>
  323 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  324 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  325 + <nil key="highlightedColor"/>
  326 + </label>
  327 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1:00 時間" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PfZ-7x-LAR">
  328 + <rect key="frame" x="0.0" y="17" width="111.5" height="18"/>
  329 + <constraints>
  330 + <constraint firstAttribute="height" constant="18" id="lno-Dx-ZNm"/>
  331 + </constraints>
  332 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  333 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  334 + <nil key="highlightedColor"/>
  335 + </label>
  336 + </subviews>
  337 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  338 + <constraints>
  339 + <constraint firstAttribute="trailing" secondItem="PfZ-7x-LAR" secondAttribute="trailing" id="3Ir-mZ-xmI"/>
  340 + <constraint firstItem="OEO-l8-Ibg" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="5oW-CQ-vWi"/>
  341 + <constraint firstItem="PfZ-7x-LAR" firstAttribute="leading" secondItem="j5h-QD-Igf" secondAttribute="leading" id="Qur-SO-10d"/>
  342 + <constraint firstAttribute="trailing" secondItem="OEO-l8-Ibg" secondAttribute="trailing" id="WQn-Gv-plQ"/>
  343 + <constraint firstItem="OEO-l8-Ibg" firstAttribute="top" secondItem="j5h-QD-Igf" secondAttribute="top" id="lt7-Qt-rBM"/>
  344 + <constraint firstAttribute="bottom" secondItem="PfZ-7x-LAR" secondAttribute="bottom" id="qcA-M9-NYS"/>
  345 + </constraints>
  346 + </view>
  347 + </subviews>
  348 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  349 + <constraints>
  350 + <constraint firstAttribute="bottom" secondItem="j5h-QD-Igf" secondAttribute="bottom" id="IsO-UX-w9t"/>
  351 + <constraint firstItem="j5h-QD-Igf" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Msr-oS-nFH"/>
  352 + <constraint firstItem="BVs-KG-fDF" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Ohk-mJ-oCK"/>
  353 + <constraint firstItem="UwA-5Q-gdv" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="top" id="Pue-sC-wfB"/>
  354 + <constraint firstAttribute="height" constant="35" id="WDe-uC-4Qb"/>
  355 + <constraint firstItem="BVs-KG-fDF" firstAttribute="leading" secondItem="UwA-5Q-gdv" secondAttribute="trailing" id="f8Q-F0-hjc"/>
  356 + <constraint firstItem="BVs-KG-fDF" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="fdz-YH-1kJ"/>
  357 + <constraint firstAttribute="bottom" secondItem="UwA-5Q-gdv" secondAttribute="bottom" id="gxD-wy-TgL"/>
  358 + <constraint firstItem="j5h-QD-Igf" firstAttribute="width" secondItem="UwA-5Q-gdv" secondAttribute="width" id="i3o-n4-fZN"/>
  359 + <constraint firstAttribute="trailing" secondItem="j5h-QD-Igf" secondAttribute="trailing" id="nT6-nS-H9z"/>
  360 + <constraint firstAttribute="bottom" secondItem="BVs-KG-fDF" secondAttribute="bottom" id="nqB-N3-F3F"/>
  361 + <constraint firstItem="UwA-5Q-gdv" firstAttribute="leading" secondItem="iEh-Ze-suq" secondAttribute="leading" id="oV9-IH-tYC"/>
  362 + <constraint firstItem="j5h-QD-Igf" firstAttribute="leading" secondItem="BVs-KG-fDF" secondAttribute="trailing" id="zOb-WE-3CI"/>
  363 + </constraints>
  364 + </view>
  365 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VqD-Y3-cYQ">
  366 + <rect key="frame" x="20" y="201" width="335" height="100"/>
  367 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  368 + <constraints>
  369 + <constraint firstAttribute="height" constant="100" id="aQR-hf-MhR"/>
  370 + </constraints>
  371 + </view>
  372 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Iw2-nW-e7g" customClass="CollectionView">
  373 + <rect key="frame" x="20" y="316" width="335" height="50"/>
  374 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  375 + <constraints>
  376 + <constraint firstAttribute="height" constant="50" id="Yzh-hD-r0n"/>
  377 + </constraints>
  378 + </view>
  379 + </subviews>
  380 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  381 + <constraints>
  382 + <constraint firstItem="VqD-Y3-cYQ" firstAttribute="top" secondItem="iEh-Ze-suq" secondAttribute="bottom" constant="8" id="0BA-6p-JLT"/>
  383 + <constraint firstItem="Iw2-nW-e7g" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="2lH-sF-Mp0"/>
  384 + <constraint firstItem="iEh-Ze-suq" firstAttribute="top" secondItem="4ix-HE-d9T" secondAttribute="bottom" constant="8" id="9Sm-IQ-feL"/>
  385 + <constraint firstItem="VqD-Y3-cYQ" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="Gbd-bD-rFf"/>
  386 + <constraint firstItem="4ix-HE-d9T" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="JyQ-KD-MhR"/>
  387 + <constraint firstAttribute="trailing" secondItem="iEh-Ze-suq" secondAttribute="trailing" constant="20" id="RcZ-yN-56e"/>
  388 + <constraint firstAttribute="trailing" secondItem="Iw2-nW-e7g" secondAttribute="trailing" constant="20" id="Xso-Or-Fgf"/>
  389 + <constraint firstItem="Kzk-mN-AOf" firstAttribute="top" secondItem="Cam-ML-IEO" secondAttribute="top" constant="30" id="YzU-Mb-veC"/>
  390 + <constraint firstAttribute="trailing" secondItem="4ix-HE-d9T" secondAttribute="trailing" constant="8" id="del-xz-Tos"/>
  391 + <constraint firstItem="4ix-HE-d9T" firstAttribute="height" secondItem="Kzk-mN-AOf" secondAttribute="height" id="duV-wT-9wp"/>
  392 + <constraint firstItem="Iw2-nW-e7g" firstAttribute="top" secondItem="VqD-Y3-cYQ" secondAttribute="bottom" constant="15" id="ekR-kS-L5v"/>
  393 + <constraint firstItem="Kzk-mN-AOf" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="hFq-WM-gLq"/>
  394 + <constraint firstItem="4ix-HE-d9T" firstAttribute="leading" secondItem="Kzk-mN-AOf" secondAttribute="trailing" constant="8" id="hzO-hA-cNG"/>
  395 + <constraint firstAttribute="trailing" secondItem="VqD-Y3-cYQ" secondAttribute="trailing" constant="20" id="ptF-2O-CNR"/>
  396 + <constraint firstItem="iEh-Ze-suq" firstAttribute="leading" secondItem="Cam-ML-IEO" secondAttribute="leading" constant="20" id="u5o-P4-qkL"/>
  397 + </constraints>
  398 + </view>
  399 + </subviews>
  400 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  401 + <constraints>
  402 + <constraint firstItem="Cam-ML-IEO" firstAttribute="width" secondItem="rey-N3-l8b" secondAttribute="width" id="LbF-3h-cxa"/>
  403 + <constraint firstAttribute="trailing" secondItem="Cam-ML-IEO" secondAttribute="trailing" id="UHb-6d-wF8"/>
  404 + <constraint firstItem="Cam-ML-IEO" firstAttribute="leading" secondItem="rey-N3-l8b" secondAttribute="leading" id="Y4U-kD-V28"/>
  405 + <constraint firstItem="Cam-ML-IEO" firstAttribute="top" secondItem="rey-N3-l8b" secondAttribute="top" id="ohS-iH-IIM"/>
  406 + <constraint firstAttribute="bottom" secondItem="Cam-ML-IEO" secondAttribute="bottom" id="th8-dH-zv1"/>
  407 + </constraints>
  408 + <connections>
  409 + <outlet property="delegate" destination="-1" id="3Fl-Qy-gjm"/>
  410 + </connections>
  411 + </scrollView>
  412 + </subviews>
  413 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  414 + <constraints>
  415 + <constraint firstAttribute="trailing" secondItem="FXQ-4O-sRc" secondAttribute="trailing" constant="5" id="5y0-NC-rHp"/>
  416 + <constraint firstItem="FXQ-4O-sRc" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" constant="5" id="C0U-21-SKl"/>
  417 + <constraint firstItem="FXQ-4O-sRc" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="CB0-VD-h5m"/>
  418 + <constraint firstAttribute="bottom" secondItem="FXQ-4O-sRc" secondAttribute="bottom" id="FbP-FY-h1E"/>
  419 + <constraint firstAttribute="trailing" secondItem="rey-N3-l8b" secondAttribute="trailing" id="KFD-f5-xci"/>
  420 + <constraint firstItem="rey-N3-l8b" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="top" id="SpB-31-H3a"/>
  421 + <constraint firstItem="rey-N3-l8b" firstAttribute="leading" secondItem="FLa-rV-Aas" secondAttribute="leading" id="YvS-I2-8Dg"/>
  422 + <constraint firstAttribute="bottom" secondItem="rey-N3-l8b" secondAttribute="bottom" id="enX-7g-Eib"/>
  423 + </constraints>
  424 + </view>
  425 + </subviews>
  426 + <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  427 + <constraints>
  428 + <constraint firstAttribute="trailing" secondItem="Cf1-lP-zbB" secondAttribute="trailing" constant="10" id="20C-UL-MCu"/>
  429 + <constraint firstItem="clL-JG-rbd" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="3tf-ab-v41"/>
  430 + <constraint firstItem="Cf1-lP-zbB" firstAttribute="top" secondItem="clL-JG-rbd" secondAttribute="bottom" id="5vy-x5-G38"/>
  431 + <constraint firstItem="Cf1-lP-zbB" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="10" id="974-wJ-aRb"/>
  432 + <constraint firstItem="yxY-4d-tB6" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="2" id="Jqg-nE-6dv"/>
  433 + <constraint firstAttribute="trailing" secondItem="BVv-qD-EHM" secondAttribute="trailing" id="MCi-Tl-hSp"/>
  434 + <constraint firstAttribute="trailing" secondItem="yxY-4d-tB6" secondAttribute="trailing" constant="2" id="Qs5-ky-nmB"/>
  435 + <constraint firstAttribute="bottom" secondItem="BVv-qD-EHM" secondAttribute="bottom" constant="60" id="SbT-PG-8MJ"/>
  436 + <constraint firstItem="BVv-qD-EHM" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="SqH-AA-Z2K"/>
  437 + <constraint firstItem="FLa-rV-Aas" firstAttribute="top" secondItem="yxY-4d-tB6" secondAttribute="bottom" constant="15" id="cWw-RX-1Kp"/>
  438 + <constraint firstItem="yxY-4d-tB6" firstAttribute="top" secondItem="Cf1-lP-zbB" secondAttribute="bottom" constant="15" id="dSN-ey-gQ7"/>
  439 + <constraint firstItem="clL-JG-rbd" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="i5Z-XR-Msb"/>
  440 + <constraint firstItem="FLa-rV-Aas" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iiN-Zj-1uu"/>
  441 + <constraint firstAttribute="trailing" secondItem="FLa-rV-Aas" secondAttribute="trailing" id="jme-cz-cFt"/>
  442 + <constraint firstItem="BVv-qD-EHM" firstAttribute="top" secondItem="FLa-rV-Aas" secondAttribute="bottom" constant="5" id="qbT-yT-phN"/>
  443 + <constraint firstAttribute="trailing" secondItem="clL-JG-rbd" secondAttribute="trailing" id="ri5-LG-xJH"/>
  444 + </constraints>
  445 + <point key="canvasLocation" x="26.5" y="52.5"/>
18 446 </view>
19 447 </objects>
  448 + <resources>
  449 + <image name="arrow_back" width="22" height="22"/>
  450 + <image name="arrow_next" width="22" height="22"/>
  451 + <image name="icon_menu" width="30" height="30"/>
  452 + <image name="today_back_button" width="73" height="37"/>
  453 + </resources>
20 454 </document>
LifeLog/LifeLog/LabelCollectionViewCell.h
  1 +//
  2 +// LabelCollectionViewCell.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface LabelCollectionViewCell : UICollectionViewCell
  12 +@property (weak, nonatomic) IBOutlet UILabel *lblTitle;
  13 +@end
LifeLog/LifeLog/LabelCollectionViewCell.m
  1 +//
  2 +// LabelCollectionViewCell.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/3/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "LabelCollectionViewCell.h"
  10 +
  11 +@implementation LabelCollectionViewCell
  12 +
  13 +- (void)awakeFromNib {
  14 + [super awakeFromNib];
  15 + self.lblTitle.layer.masksToBounds = true;
  16 + // Initialization code
  17 +}
  18 +
  19 +@end
LifeLog/LifeLog/LabelCollectionViewCell.xib
  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">
  3 + <device id="retina4_7" orientation="portrait">
  4 + <adaptation id="fullscreen"/>
  5 + </device>
  6 + <dependencies>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  8 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  9 + </dependencies>
  10 + <objects>
  11 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
  12 + <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 + <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
  15 + <autoresizingMask key="autoresizingMask"/>
  16 + <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 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  19 + <subviews>
  20 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R7x-TO-3nQ">
  21 + <rect key="frame" x="0.0" y="0.0" width="246" height="175"/>
  22 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  23 + <fontDescription key="fontDescription" type="system" pointSize="15"/>
  24 + <nil key="textColor"/>
  25 + <nil key="highlightedColor"/>
  26 + </label>
  27 + </subviews>
  28 + </view>
  29 + <constraints>
  30 + <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"/>
  32 + <constraint firstAttribute="bottom" secondItem="R7x-TO-3nQ" secondAttribute="bottom" id="bir-WN-giG"/>
  33 + <constraint firstItem="R7x-TO-3nQ" firstAttribute="top" secondItem="gTV-IL-0wX" secondAttribute="top" id="nEO-eg-OOM"/>
  34 + </constraints>
  35 + <size key="customSize" width="246" height="175"/>
  36 + <connections>
  37 + <outlet property="lblTitle" destination="R7x-TO-3nQ" id="Iuz-tJ-aWb"/>
  38 + </connections>
  39 + <point key="canvasLocation" x="123" y="114.5"/>
  40 + </collectionViewCell>
  41 + </objects>
  42 +</document>