Commit 923306f25e05be3dfc3995664d89b414ea0be762

Authored by nvtu11790@gmail.com
1 parent c7e5758a7e

add UI for SNS screen

Showing 17 changed files with 411 additions and 15 deletions Side-by-side Diff

LifeLog/LifeLog.xcodeproj/project.pbxproj
... ... @@ -49,6 +49,9 @@
49 49 E9373E4D1F361A230059355A /* HistoryGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E9373E4C1F361A230059355A /* HistoryGraphObject.m */; };
50 50 E9682E2E1F39675A00FE05A2 /* RankingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */; };
51 51 E9682E2F1F39675A00FE05A2 /* RankingTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */; };
  52 + E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E96855091F3C444900317CEF /* AutoTransButton.m */; };
  53 + E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */; };
  54 + E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */; };
52 55 E997E0261F3AB66500709FB1 /* Social.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E997E0251F3AB66500709FB1 /* Social.framework */; };
53 56 E99E13AB1F336F3600C78787 /* CollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = E99E13AA1F336F3600C78787 /* CollectionView.m */; };
54 57 E99E13AD1F336F4500C78787 /* CollectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = E99E13AC1F336F4500C78787 /* CollectionView.xib */; };
... ... @@ -152,6 +155,11 @@
152 155 E9682E2B1F39675A00FE05A2 /* RankingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RankingTableViewCell.h; sourceTree = "<group>"; };
153 156 E9682E2C1F39675A00FE05A2 /* RankingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RankingTableViewCell.m; sourceTree = "<group>"; };
154 157 E9682E2D1F39675A00FE05A2 /* RankingTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RankingTableViewCell.xib; sourceTree = "<group>"; };
  158 + E96855081F3C444900317CEF /* AutoTransButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoTransButton.h; sourceTree = "<group>"; };
  159 + E96855091F3C444900317CEF /* AutoTransButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutoTransButton.m; sourceTree = "<group>"; };
  160 + E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SNSRecentTopicTableViewCell.h; sourceTree = "<group>"; };
  161 + E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SNSRecentTopicTableViewCell.m; sourceTree = "<group>"; };
  162 + E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SNSRecentTopicTableViewCell.xib; sourceTree = "<group>"; };
155 163 E997E0251F3AB66500709FB1 /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; };
156 164 E99E13A91F336F3600C78787 /* CollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectionView.h; sourceTree = "<group>"; };
157 165 E99E13AA1F336F3600C78787 /* CollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectionView.m; sourceTree = "<group>"; };
... ... @@ -383,6 +391,9 @@
383 391 6E84E3BC1F27A9B1001EB88E /* SNSViewController.h */,
384 392 6E84E3BD1F27A9B1001EB88E /* SNSViewController.m */,
385 393 6E84E3BE1F27A9B1001EB88E /* SNSViewController.xib */,
  394 + E968550E1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.h */,
  395 + E968550F1F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m */,
  396 + E96855101F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib */,
386 397 );
387 398 name = SNS;
388 399 sourceTree = "<group>";
... ... @@ -481,6 +492,8 @@
481 492 children = (
482 493 E9373E451F3596940059355A /* AutoTransLabel.h */,
483 494 E9373E461F3596940059355A /* AutoTransLabel.m */,
  495 + E96855081F3C444900317CEF /* AutoTransButton.h */,
  496 + E96855091F3C444900317CEF /* AutoTransButton.m */,
484 497 );
485 498 name = AutoTranslateView;
486 499 sourceTree = "<group>";
... ... @@ -631,6 +644,7 @@
631 644 6EF1630A1F29069300DA306C /* Localizable.strings in Resources */,
632 645 6E84E3B11F27A975001EB88E /* HomeViewController.xib in Resources */,
633 646 6E84E3B61F27A98B001EB88E /* HistoryViewController.xib in Resources */,
  647 + E96855121F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.xib in Resources */,
634 648 E99E13B21F33720600C78787 /* LabelCollectionViewCell.xib in Resources */,
635 649 E9F73DCD1F338A0F004A3A6F /* HistoryListTableViewCell.xib in Resources */,
636 650 );
... ... @@ -708,6 +722,7 @@
708 722 6E18CED81F2E3C840029891F /* ServerAPI.m in Sources */,
709 723 6E7F93431F35872B00EFBC71 /* TPKeyboardAvoidingScrollView.m in Sources */,
710 724 6E7F93421F35872B00EFBC71 /* TPKeyboardAvoidingCollectionView.m in Sources */,
  725 + E968550A1F3C444900317CEF /* AutoTransButton.m in Sources */,
711 726 9CBDA0FA1F2ECE2C0055DED1 /* BaseViewController.m in Sources */,
712 727 6E8DA0F71F2BAC3400CCE941 /* TodayViewController.m in Sources */,
713 728 6E7F93451F35872B00EFBC71 /* UIScrollView+TPKeyboardAvoidingAdditions.m in Sources */,
... ... @@ -726,6 +741,7 @@
726 741 9CA8AEEA1F31BB4600C5FC74 /* ConfirmForgetPassViewController.m in Sources */,
727 742 E99E13B11F33720600C78787 /* LabelCollectionViewCell.m in Sources */,
728 743 6EDC8BEE1F2C2FB800765ACC /* Utilities.m in Sources */,
  744 + E96855111F3C5D9A00317CEF /* SNSRecentTopicTableViewCell.m in Sources */,
729 745 6E84E3C51F27ACAE001EB88E /* MapViewController.m in Sources */,
730 746 6E18CEDC1F2E40F50029891F /* User.m in Sources */,
731 747 6ECC40711F2A5FEB00AAEB97 /* NSDate+helper.m in Sources */,
LifeLog/LifeLog/AppDelegate.m
... ... @@ -97,7 +97,8 @@
97 97 SNSViewController *snsVC = [[SNSViewController alloc] initWithNibName:@"SNSViewController" bundle:nil];
98 98 UINavigationController *naviSNS = [[UINavigationController alloc] initWithRootViewController:snsVC];
99 99 naviSNS.tabBarItem = [[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"lifelog.tapbar.sns", @"") image:[UIImage imageNamed:@"tapbar_sns"] tag:5];
100   -
  100 + naviSNS.navigationBar.hidden = YES;
  101 +
101 102 tabBarViewController.viewControllers = [NSArray arrayWithObjects:naviToday, naviHistory, naviRanking, naviMap, naviSNS, nil];
102 103  
103 104 self.window.rootViewController = tabBarViewController;
LifeLog/LifeLog/AutoTransButton.h
  1 +//
  2 +// AutoTransButton.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/10/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface AutoTransButton : UIButton
  12 +
  13 +@property (nonatomic) IBInspectable NSString *localizeKey;
  14 +
  15 +@end
LifeLog/LifeLog/AutoTransButton.m
  1 +//
  2 +// AutoTransButton.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/10/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "AutoTransButton.h"
  10 +
  11 +@implementation AutoTransButton
  12 +
  13 +-(void) awakeFromNib {
  14 + [super awakeFromNib];
  15 + if(![self.localizeKey isEqual: @""] && self.titleLabel != NULL) {
  16 + self.titleLabel.text = NSLocalizedString(self.localizeKey, nil);
  17 + }
  18 +}
  19 +
  20 +@end
LifeLog/LifeLog/HistoryViewController.h
... ... @@ -22,7 +22,6 @@
22 22 int _curPageIndex;
23 23 }
24 24  
25   -@property (weak, nonatomic) IBOutlet UILabel *lblHeader;
26 25 @property (weak, nonatomic) IBOutlet UILabel *lblCircleStep;
27 26 @property (weak, nonatomic) IBOutlet UILabel *lblCircleRemain;
28 27  
LifeLog/LifeLog/HistoryViewController.m
... ... @@ -22,7 +22,6 @@
22 22 [super viewDidLoad];
23 23 // Do any additional setup after loading the view from its nib.
24 24 self.title = NSLocalizedString(@"lifelog.history.title", nil);
25   - self.lblHeader.text = NSLocalizedString(@"lifelog.history.title", nil);
26 25  
27 26 [self setupView];
28 27 [self setupChartView];
LifeLog/LifeLog/HistoryViewController.xib
... ... @@ -15,7 +15,6 @@
15 15 <outlet property="lblCircleRemain" destination="Kr7-S0-Fpl" id="UQe-Bt-i0X"/>
16 16 <outlet property="lblCircleStep" destination="oWg-A8-aCr" id="Q9g-UY-hyv"/>
17 17 <outlet property="lblDistance" destination="1tR-JC-pyw" id="q4s-Ru-vLO"/>
18   - <outlet property="lblHeader" destination="Ht6-rd-JXF" id="SSk-xp-GLP"/>
19 18 <outlet property="lblPercent" destination="8Ru-Jc-Ouv" id="ZHn-Kt-0Qk"/>
20 19 <outlet property="lblRemaining" destination="1NH-b3-ST8" id="hFc-q9-b0h"/>
21 20 <outlet property="lblStep" destination="0pf-fX-QXT" id="jK4-9Y-89Q"/>
22 21  
... ... @@ -37,11 +36,14 @@
37 36 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="clL-JG-rbd" userLabel="ViewHeader">
38 37 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
39 38 <subviews>
40   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TODAY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ht6-rd-JXF">
  39 + <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">
41 40 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
42 41 <fontDescription key="fontDescription" type="system" pointSize="17"/>
43 42 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
44 43 <nil key="highlightedColor"/>
  44 + <userDefinedRuntimeAttributes>
  45 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.history.title"/>
  46 + </userDefinedRuntimeAttributes>
45 47 </label>
46 48 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ytc-zM-ZGC">
47 49 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
LifeLog/LifeLog/Localizable.strings
No preview for this file type
LifeLog/LifeLog/RankingViewController.h
... ... @@ -12,8 +12,6 @@
12 12  
13 13 @interface RankingViewController : UIViewController
14 14  
15   -@property (weak, nonatomic) IBOutlet UILabel *lblHeader;
16   -
17 15 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionTime;
18 16 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionMode;
19 17 @property (weak, nonatomic) IBOutlet CollectionView *viewCollectionType;
LifeLog/LifeLog/RankingViewController.m
... ... @@ -19,7 +19,6 @@
19 19 [super viewDidLoad];
20 20 // Do any additional setup after loading the view from its nib.
21 21 self.title = NSLocalizedString(@"lifelog.rank.title", nil);
22   - self.lblHeader.text = NSLocalizedString(@"lifelog.rank.title", nil);
23 22  
24 23 [self setupView];
25 24  
LifeLog/LifeLog/RankingViewController.xib
1 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="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
6 6 <dependencies>
7   - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12086"/>
  7 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
8 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
9 9 </dependencies>
10 10 <objects>
11 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="RankingViewController">
12 12 <connections>
13   - <outlet property="lblHeader" destination="p97-40-8m9" id="KEJ-IZ-kLi"/>
14 13 <outlet property="tableRank" destination="R3A-K9-MFe" id="uEX-sL-6D2"/>
15 14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
16 15 <outlet property="viewCollectionMode" destination="B33-xX-Jro" id="HP4-Xb-LJm"/>
17 16  
... ... @@ -26,11 +25,14 @@
26 25 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="GBx-lY-9YI" userLabel="ViewHeader">
27 26 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
28 27 <subviews>
29   - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="TODAY" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="p97-40-8m9">
  28 + <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">
30 29 <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
31 30 <fontDescription key="fontDescription" type="system" pointSize="17"/>
32 31 <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
33 32 <nil key="highlightedColor"/>
  33 + <userDefinedRuntimeAttributes>
  34 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.rank.title"/>
  35 + </userDefinedRuntimeAttributes>
34 36 </label>
35 37 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="qPe-ff-jRp">
36 38 <rect key="frame" x="0.0" y="5" width="70" height="36"/>
LifeLog/LifeLog/SNSRecentTopicTableViewCell.h
  1 +//
  2 +// SNSRecentTopicTableViewCell.h
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/10/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +@interface SNSRecentTopicTableViewCell : UITableViewCell
  12 +
  13 +@property (weak, nonatomic) IBOutlet UIImageView *imgAvatar;
  14 +@property (weak, nonatomic) IBOutlet UILabel *lblDateTime;
  15 +@property (weak, nonatomic) IBOutlet UILabel *lblLocation;
  16 +@property (weak, nonatomic) IBOutlet UILabel *lblDes;
  17 +@property (weak, nonatomic) IBOutlet UILabel *lblMode;
  18 +@property (weak, nonatomic) IBOutlet UILabel *lblDistance;
  19 +@property (weak, nonatomic) IBOutlet UILabel *lblDuration;
  20 +
  21 +@end
LifeLog/LifeLog/SNSRecentTopicTableViewCell.m
  1 +//
  2 +// SNSRecentTopicTableViewCell.m
  3 +// LifeLog
  4 +//
  5 +// Created by nvtu on 8/10/17.
  6 +// Copyright © 2017 PhongNV. All rights reserved.
  7 +//
  8 +
  9 +#import "SNSRecentTopicTableViewCell.h"
  10 +
  11 +@implementation SNSRecentTopicTableViewCell
  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/SNSRecentTopicTableViewCell.xib
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" 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="12089"/>
  8 + <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
  9 + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
  10 + </dependencies>
  11 + <objects>
  12 + <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
  13 + <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
  14 + <tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="RecentTopicCell" rowHeight="100" id="KGk-i7-Jjw" customClass="SNSRecentTopicTableViewCell">
  15 + <rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
  16 + <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 + <rect key="frame" x="0.0" y="0.0" width="320" height="99.5"/>
  19 + <autoresizingMask key="autoresizingMask"/>
  20 + <subviews>
  21 + <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="avatar_default" translatesAutoresizingMaskIntoConstraints="NO" id="ybP-aK-loM">
  22 + <rect key="frame" x="8" y="17.5" width="50" height="65"/>
  23 + <constraints>
  24 + <constraint firstAttribute="width" secondItem="ybP-aK-loM" secondAttribute="height" multiplier="10:13" id="6rL-og-ZNA"/>
  25 + <constraint firstAttribute="width" constant="50" id="Bkh-J5-a8V"/>
  26 + </constraints>
  27 + </imageView>
  28 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Sv2-7A-ngx">
  29 + <rect key="frame" x="66" y="8" width="120" height="15"/>
  30 + <constraints>
  31 + <constraint firstAttribute="width" constant="120" id="KgG-xx-rd2"/>
  32 + <constraint firstAttribute="height" constant="15" id="tb0-2N-6dg"/>
  33 + </constraints>
  34 + <string key="text" base64-UTF8="YES">
  35 +MDE3LzAxLzI144CA44CAMTE6MjIAA
  36 +</string>
  37 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  38 + <nil key="textColor"/>
  39 + <nil key="highlightedColor"/>
  40 + </label>
  41 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="w7w-q1-yZi">
  42 + <rect key="frame" x="66" y="76.5" width="76.5" height="15"/>
  43 + <constraints>
  44 + <constraint firstAttribute="height" constant="15" id="Gdv-rY-LV2"/>
  45 + </constraints>
  46 + <string key="text" base64-UTF8="YES">
  47 +44Op44Oz44OL44Oz44KwAA
  48 +</string>
  49 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  50 + <nil key="textColor"/>
  51 + <nil key="highlightedColor"/>
  52 + </label>
  53 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="0:24:12" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JHq-wA-TUm">
  54 + <rect key="frame" x="235.5" y="76.5" width="76.5" height="15"/>
  55 + <constraints>
  56 + <constraint firstAttribute="height" constant="15" id="NOM-ku-c4b"/>
  57 + </constraints>
  58 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  59 + <nil key="textColor"/>
  60 + <nil key="highlightedColor"/>
  61 + </label>
  62 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Kato" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3XR-JQ-EfG">
  63 + <rect key="frame" x="192" y="8" width="128" height="15"/>
  64 + <constraints>
  65 + <constraint firstAttribute="height" constant="15" id="wEn-nY-4f9"/>
  66 + </constraints>
  67 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  68 + <nil key="textColor"/>
  69 + <nil key="highlightedColor"/>
  70 + </label>
  71 + <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="rfd-Mx-5Wv">
  72 + <rect key="frame" x="66" y="28" width="246" height="45.5"/>
  73 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  74 + <nil key="textColor"/>
  75 + <nil key="highlightedColor"/>
  76 + </label>
  77 + <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3my-zj-mjo">
  78 + <rect key="frame" x="0.0" y="98" width="320" height="2"/>
  79 + <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  80 + <constraints>
  81 + <constraint firstAttribute="height" constant="2" id="hLK-fr-eKj"/>
  82 + </constraints>
  83 + </view>
  84 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Qs8-Mr-CzW">
  85 + <rect key="frame" x="150.5" y="76.5" width="77" height="15"/>
  86 + <constraints>
  87 + <constraint firstAttribute="height" constant="15" id="14e-tA-Vna"/>
  88 + </constraints>
  89 + <string key="text" base64-UTF8="YES">
  90 +NzY1NSBtAA
  91 +</string>
  92 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  93 + <nil key="textColor"/>
  94 + <nil key="highlightedColor"/>
  95 + </label>
  96 + </subviews>
  97 + <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
  98 + <constraints>
  99 + <constraint firstItem="Sv2-7A-ngx" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="1aY-jp-czy"/>
  100 + <constraint firstAttribute="trailing" secondItem="JHq-wA-TUm" secondAttribute="trailing" constant="8" id="27p-rJ-RBo"/>
  101 + <constraint firstItem="JHq-wA-TUm" firstAttribute="leading" secondItem="Qs8-Mr-CzW" secondAttribute="trailing" constant="8" id="7Nm-Gn-Bd7"/>
  102 + <constraint firstItem="Qs8-Mr-CzW" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="89T-VG-8NX"/>
  103 + <constraint firstItem="3my-zj-mjo" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="A4w-9G-PRn"/>
  104 + <constraint firstItem="JHq-wA-TUm" firstAttribute="top" secondItem="rfd-Mx-5Wv" secondAttribute="bottom" constant="3" id="BB7-0q-BwH"/>
  105 + <constraint firstItem="ybP-aK-loM" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="8" id="E0T-rm-dl4"/>
  106 + <constraint firstAttribute="bottom" secondItem="Qs8-Mr-CzW" secondAttribute="bottom" constant="8" id="EAa-Bf-W0s"/>
  107 + <constraint firstAttribute="trailing" secondItem="3XR-JQ-EfG" secondAttribute="trailing" id="ITt-4A-dZf"/>
  108 + <constraint firstItem="3XR-JQ-EfG" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="JnC-1w-zzm"/>
  109 + <constraint firstItem="Sv2-7A-ngx" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="8" id="LtV-QN-jZm"/>
  110 + <constraint firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" constant="8" id="Mq8-bd-QS7"/>
  111 + <constraint firstAttribute="trailing" secondItem="3my-zj-mjo" secondAttribute="trailing" id="NYe-7c-w4q"/>
  112 + <constraint firstItem="Qs8-Mr-CzW" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="XJe-fI-OWd"/>
  113 + <constraint firstAttribute="trailing" secondItem="rfd-Mx-5Wv" secondAttribute="trailing" constant="8" id="YM4-b4-Y3r"/>
  114 + <constraint firstItem="Qs8-Mr-CzW" firstAttribute="leading" secondItem="w7w-q1-yZi" secondAttribute="trailing" constant="8" id="YNv-fN-5J9"/>
  115 + <constraint firstItem="JHq-wA-TUm" firstAttribute="bottom" secondItem="w7w-q1-yZi" secondAttribute="bottom" id="bcB-ih-bcL"/>
  116 + <constraint firstItem="rfd-Mx-5Wv" firstAttribute="top" secondItem="3XR-JQ-EfG" secondAttribute="bottom" constant="5" id="gmY-fN-31L"/>
  117 + <constraint firstItem="rfd-Mx-5Wv" firstAttribute="leading" secondItem="ybP-aK-loM" secondAttribute="trailing" constant="8" id="lv3-qx-SEc"/>
  118 + <constraint firstItem="ybP-aK-loM" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="qWh-wM-2wu"/>
  119 + <constraint firstAttribute="bottom" secondItem="3my-zj-mjo" secondAttribute="bottom" id="rIh-im-BkJ"/>
  120 + <constraint firstItem="JHq-wA-TUm" firstAttribute="width" secondItem="w7w-q1-yZi" secondAttribute="width" id="twf-Rn-SmF"/>
  121 + <constraint firstItem="3XR-JQ-EfG" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="trailing" constant="6" id="twv-av-7dS"/>
  122 + <constraint firstItem="w7w-q1-yZi" firstAttribute="leading" secondItem="Sv2-7A-ngx" secondAttribute="leading" id="y33-i7-bXu"/>
  123 + </constraints>
  124 + </tableViewCellContentView>
  125 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  126 + <connections>
  127 + <outlet property="imgAvatar" destination="ybP-aK-loM" id="olo-f0-GtK"/>
  128 + <outlet property="lblDateTime" destination="Sv2-7A-ngx" id="OCS-je-WGl"/>
  129 + <outlet property="lblDes" destination="rfd-Mx-5Wv" id="cHd-S3-6NO"/>
  130 + <outlet property="lblDistance" destination="Qs8-Mr-CzW" id="19w-MP-GTq"/>
  131 + <outlet property="lblDuration" destination="JHq-wA-TUm" id="cKs-J1-eJa"/>
  132 + <outlet property="lblLocation" destination="3XR-JQ-EfG" id="xnZ-Ab-KhF"/>
  133 + <outlet property="lblMode" destination="w7w-q1-yZi" id="uke-pj-NlL"/>
  134 + </connections>
  135 + <point key="canvasLocation" x="25" y="113"/>
  136 + </tableViewCell>
  137 + </objects>
  138 + <resources>
  139 + <image name="avatar_default" width="80" height="80"/>
  140 + </resources>
  141 +</document>
LifeLog/LifeLog/SNSViewController.h
... ... @@ -10,5 +10,7 @@
10 10  
11 11 @interface SNSViewController : UIViewController
12 12  
  13 +@property (weak, nonatomic) IBOutlet UITableView *tableRecent;
  14 +
13 15 @end
LifeLog/LifeLog/SNSViewController.m
... ... @@ -7,6 +7,7 @@
7 7 //
8 8  
9 9 #import "SNSViewController.h"
  10 +#import "SNSRecentTopicTableViewCell.h"
10 11  
11 12 @interface SNSViewController ()
12 13  
13 14  
... ... @@ -18,11 +19,40 @@
18 19 [super viewDidLoad];
19 20 // Do any additional setup after loading the view from its nib.
20 21 self.title = NSLocalizedString(@"lifelog.tapbar.sns", nil);
  22 +
  23 + //register nib for table view
  24 + [self.tableRecent registerNib:[UINib nibWithNibName:@"SNSRecentTopicTableViewCell" bundle:nil] forCellReuseIdentifier:@"RecentTopicCell"];
21 25 }
22 26  
23 27 - (void)didReceiveMemoryWarning {
24 28 [super didReceiveMemoryWarning];
25 29 // Dispose of any resources that can be recreated.
  30 +}
  31 +
  32 +
  33 +#pragma mark UITableView Delegate
  34 +- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
  35 + // if(_curHisList == nil || _curHisList.count == 0) {
  36 + // UILabel * noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.frame.size.height)];
  37 + // noDataLabel.text = @"No data available";
  38 + // noDataLabel.backgroundColor = [UIColor clearColor];
  39 + // noDataLabel.textColor = [UIColor whiteColor];
  40 + // noDataLabel.textAlignment = NSTextAlignmentCenter;
  41 + // tableView.backgroundView = noDataLabel;
  42 + // tableView.backgroundView.layer.zPosition -= 1;
  43 + // return 0;
  44 + // }
  45 + // tableView.backgroundView = nil;
  46 + return 1;
  47 +}
  48 +
  49 +- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
  50 + return 6;
  51 +}
  52 +
  53 +- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  54 + SNSRecentTopicTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"RecentTopicCell"];
  55 + return cell;
26 56 }
27 57  
28 58 @end
LifeLog/LifeLog/SNSViewController.xib
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16F73" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="12121" systemVersion="16A323" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
3 3 <device id="retina4_7" orientation="portrait">
4 4 <adaptation id="fullscreen"/>
5 5 </device>
6 6 <dependencies>
7   - <deployment identifier="iOS"/>
8 7 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
9 8 <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
10 9 </dependencies>
11 10 <objects>
12 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="SNSViewController">
13 12 <connections>
  13 + <outlet property="tableRecent" destination="KcG-O5-UhK" id="80p-fP-6Pb"/>
14 14 <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
15 15 </connections>
16 16 </placeholder>
17 17  
... ... @@ -18,8 +18,135 @@
18 18 <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
19 19 <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
20 20 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
21   - <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  21 + <subviews>
  22 + <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"/>
  24 + <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">
  26 + <rect key="frame" x="0.0" y="0.0" width="375" height="46"/>
  27 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  28 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  29 + <nil key="highlightedColor"/>
  30 + <userDefinedRuntimeAttributes>
  31 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.title"/>
  32 + </userDefinedRuntimeAttributes>
  33 + </label>
  34 + <button 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"/>
  36 + <constraints>
  37 + <constraint firstAttribute="width" constant="70" id="ZpD-Ru-8wG"/>
  38 + </constraints>
  39 + <state key="normal" image="today_back_button"/>
  40 + </button>
  41 + <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"/>
  43 + <constraints>
  44 + <constraint firstAttribute="width" constant="45" id="5jv-6w-JAE"/>
  45 + </constraints>
  46 + <state key="normal" image="icon_menu"/>
  47 + </button>
  48 + </subviews>
  49 + <color key="backgroundColor" red="0.098039215690000001" green="0.098039215690000001" blue="0.098039215690000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  50 + <constraints>
  51 + <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"/>
  53 + <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"/>
  55 + <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"/>
  57 + <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"/>
  59 + <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"/>
  61 + <constraint firstItem="afS-51-Q5Z" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="top" id="vAx-Bu-CLe"/>
  62 + </constraints>
  63 + </view>
  64 + <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"/>
  66 + <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  67 + <constraints>
  68 + <constraint firstAttribute="height" constant="40" id="ATx-eA-hJ1"/>
  69 + </constraints>
  70 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  71 + <state key="normal">
  72 + <string key="title" base64-UTF8="YES">
  73 +44Kq44K544K544Oh44Kw44Or44O844OXAA
  74 +</string>
  75 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  76 + </state>
  77 + <userDefinedRuntimeAttributes>
  78 + <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
  79 + <integer key="value" value="5"/>
  80 + </userDefinedRuntimeAttribute>
  81 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.commendgroup"/>
  82 + </userDefinedRuntimeAttributes>
  83 + </button>
  84 + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB3-Sm-i6e" customClass="AutoTransButton">
  85 + <rect key="frame" x="20" y="126" width="335" height="40"/>
  86 + <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
  87 + <constraints>
  88 + <constraint firstAttribute="height" constant="40" id="oph-d8-bxh"/>
  89 + </constraints>
  90 + <fontDescription key="fontDescription" type="system" pointSize="13"/>
  91 + <state key="normal">
  92 + <string key="title" base64-UTF8="YES">
  93 +44Oe44Kk44Kw44Or44O844OXAA
  94 +</string>
  95 + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  96 + </state>
  97 + <userDefinedRuntimeAttributes>
  98 + <userDefinedRuntimeAttribute type="number" keyPath="layer.corderRadius">
  99 + <integer key="value" value="5"/>
  100 + </userDefinedRuntimeAttribute>
  101 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.bt.mygroup"/>
  102 + </userDefinedRuntimeAttributes>
  103 + </button>
  104 + <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">
  105 + <rect key="frame" x="20" y="226" width="335" height="21"/>
  106 + <constraints>
  107 + <constraint firstAttribute="height" constant="21" id="Gu9-7U-YXF"/>
  108 + </constraints>
  109 + <fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
  110 + <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  111 + <nil key="highlightedColor"/>
  112 + <userDefinedRuntimeAttributes>
  113 + <userDefinedRuntimeAttribute type="string" keyPath="localizeKey" value="lifelog.sns.lbl.recent"/>
  114 + </userDefinedRuntimeAttributes>
  115 + </label>
  116 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="none" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="KcG-O5-UhK">
  117 + <rect key="frame" x="0.0" y="255" width="375" height="362"/>
  118 + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
  119 + <connections>
  120 + <outlet property="dataSource" destination="-1" id="Y5Y-4y-Bzz"/>
  121 + <outlet property="delegate" destination="-1" id="VCg-Ha-vdk"/>
  122 + </connections>
  123 + </tableView>
  124 + </subviews>
  125 + <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
  126 + <constraints>
  127 + <constraint firstItem="O4Q-H0-WBO" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="0u7-Ks-LSt"/>
  128 + <constraint firstAttribute="trailing" secondItem="O4Q-H0-WBO" secondAttribute="trailing" id="2pA-85-kwM"/>
  129 + <constraint firstItem="zzn-bU-X6s" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="4Uu-Hd-lEX"/>
  130 + <constraint firstItem="uB3-Sm-i6e" firstAttribute="top" secondItem="5ZL-zf-geZ" secondAttribute="bottom" constant="10" id="BBu-TF-Z8P"/>
  131 + <constraint firstItem="O4Q-H0-WBO" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="Ml4-eE-LTb"/>
  132 + <constraint firstAttribute="bottom" secondItem="KcG-O5-UhK" secondAttribute="bottom" constant="50" id="O0M-Cr-W0f"/>
  133 + <constraint firstAttribute="trailing" secondItem="uB3-Sm-i6e" secondAttribute="trailing" constant="20" id="Qu0-ja-Iwx"/>
  134 + <constraint firstAttribute="trailing" secondItem="5ZL-zf-geZ" secondAttribute="trailing" constant="20" id="Sdn-yt-XFa"/>
  135 + <constraint firstAttribute="trailing" secondItem="KcG-O5-UhK" secondAttribute="trailing" id="T6S-Bu-Yqj"/>
  136 + <constraint firstItem="5ZL-zf-geZ" firstAttribute="top" secondItem="O4Q-H0-WBO" secondAttribute="bottom" constant="30" id="byK-GM-sv0"/>
  137 + <constraint firstItem="KcG-O5-UhK" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="eBl-Gj-eMk"/>
  138 + <constraint firstItem="zzn-bU-X6s" firstAttribute="top" secondItem="uB3-Sm-i6e" secondAttribute="bottom" constant="60" id="edW-Ji-61a"/>
  139 + <constraint firstAttribute="trailing" secondItem="zzn-bU-X6s" secondAttribute="trailing" constant="20" id="ftd-7J-C4c"/>
  140 + <constraint firstItem="5ZL-zf-geZ" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="jDz-q1-ufR"/>
  141 + <constraint firstItem="KcG-O5-UhK" firstAttribute="top" secondItem="zzn-bU-X6s" secondAttribute="bottom" constant="8" id="lFR-We-lIy"/>
  142 + <constraint firstItem="uB3-Sm-i6e" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="20" id="v4n-Fr-Vhx"/>
  143 + </constraints>
  144 + <point key="canvasLocation" x="24.5" y="52.5"/>
22 145 </view>
23 146 </objects>
  147 + <resources>
  148 + <image name="icon_menu" width="30" height="30"/>
  149 + <image name="today_back_button" width="73" height="37"/>
  150 + </resources>
24 151 </document>