This commit is contained in:
wu736139669
2015-04-08 23:00:01 +08:00
parent da9d1a734f
commit a34fe05b2d
37 changed files with 1495 additions and 128 deletions
+82
View File
@@ -28,6 +28,9 @@
A93442001ACA919F00A6B233 /* tabbarVoiceClick@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A93441FD1ACA919F00A6B233 /* tabbarVoiceClick@2x.png */; };
A93442031ACA981D00A6B233 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A93442011ACA981D00A6B233 /* Default-568h@2x.png */; };
A93442041ACA981D00A6B233 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A93442021ACA981D00A6B233 /* Default@2x.png */; };
A94D0EDD1AD5757A0002DEB1 /* UpdateViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A94D0EDC1AD5757A0002DEB1 /* UpdateViewModel.m */; };
A94DF6351AD4D94E00DCDCB0 /* MyNoteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A94DF6331AD4D94E00DCDCB0 /* MyNoteViewController.m */; };
A94DF6361AD4D94E00DCDCB0 /* MyNoteViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A94DF6341AD4D94E00DCDCB0 /* MyNoteViewController.xib */; };
A95510921AC39E6A0006D16F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A95510911AC39E6A0006D16F /* main.m */; };
A95510951AC39E6A0006D16F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A95510941AC39E6A0006D16F /* AppDelegate.m */; };
A95510981AC39E6A0006D16F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A95510971AC39E6A0006D16F /* ViewController.m */; };
@@ -85,6 +88,8 @@
A97559CF1ACBF0BC004ADA42 /* btn_good@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97559C91ACBF0BC004ADA42 /* btn_good@2x.png */; };
A97559D01ACBF0BC004ADA42 /* btn_share_clicked@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97559CA1ACBF0BC004ADA42 /* btn_share_clicked@2x.png */; };
A97559D11ACBF0BC004ADA42 /* btn_share@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97559CB1ACBF0BC004ADA42 /* btn_share@2x.png */; };
A97883881AD369DF00D46477 /* mainCellDingClick@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97883871AD369DF00D46477 /* mainCellDingClick@2x.png */; };
A978838A1AD36A0500D46477 /* mainCellDing@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97883891AD36A0500D46477 /* mainCellDing@2x.png */; };
A97C54CD1AC8F10F0038818A /* BaseViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54BD1AC8F10F0038818A /* BaseViewModel.m */; };
A97C54CF1AC8F10F0038818A /* NSString+HXAddtions.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54C11AC8F10F0038818A /* NSString+HXAddtions.m */; };
A97C54D01AC8F10F0038818A /* PropertyEntity.m in Sources */ = {isa = PBXBuildFile; fileRef = A97C54C31AC8F10F0038818A /* PropertyEntity.m */; };
@@ -119,6 +124,8 @@
A97DBE481ACAE7F600705682 /* smalliconWeixin@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97DBE471ACAE7F600705682 /* smalliconWeixin@2x.png */; };
A97DBE4C1ACAEBE300705682 /* first-login-sina@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97DBE4B1ACAEBE300705682 /* first-login-sina@2x.png */; };
A97DBE4E1ACAED4900705682 /* camera-close-select@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = A97DBE4D1ACAED4900705682 /* camera-close-select@2x.png */; };
A98D659D1AD37F18008668EE /* MessageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A98D659B1AD37F18008668EE /* MessageTableViewCell.m */; };
A98D659E1AD37F18008668EE /* MessageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = A98D659C1AD37F18008668EE /* MessageTableViewCell.xib */; };
A98F98521ACA29B5007C4594 /* libSocialQQ.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A98F98481ACA29B5007C4594 /* libSocialQQ.a */; };
A98F98531ACA29B5007C4594 /* TencentOpenAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A98F98491ACA29B5007C4594 /* TencentOpenAPI.framework */; };
A98F98541ACA29B5007C4594 /* TencentOpenApi_IOS_Bundle.bundle in Resources */ = {isa = PBXBuildFile; fileRef = A98F984A1ACA29B5007C4594 /* TencentOpenApi_IOS_Bundle.bundle */; };
@@ -135,6 +142,7 @@
A98F986B1ACA2FA9007C4594 /* BaseRefreshViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A98F98691ACA2FA9007C4594 /* BaseRefreshViewController.m */; };
A98F986C1ACA2FA9007C4594 /* BaseRefreshViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A98F986A1ACA2FA9007C4594 /* BaseRefreshViewController.xib */; };
A9B4E39F1AC9908E00A1DBDF /* libMobClickLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9B4E39C1AC9908E00A1DBDF /* libMobClickLibrary.a */; };
A9BE23BF1ACD8CA20032171A /* libSocialSina.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9BE23BD1ACD8CA20032171A /* libSocialSina.a */; };
A9FAD4221AC922A5007ADC10 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FAD4201AC922A5007ADC10 /* MainViewController.m */; };
A9FAD4231AC922A5007ADC10 /* MainViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9FAD4211AC922A5007ADC10 /* MainViewController.xib */; };
A9FAD4271AC922BE007ADC10 /* NoteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9FAD4251AC922BE007ADC10 /* NoteViewController.m */; };
@@ -169,6 +177,11 @@
A93441FD1ACA919F00A6B233 /* tabbarVoiceClick@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tabbarVoiceClick@2x.png"; sourceTree = "<group>"; };
A93442011ACA981D00A6B233 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
A93442021ACA981D00A6B233 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
A94D0EDB1AD5757A0002DEB1 /* UpdateViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpdateViewModel.h; sourceTree = "<group>"; };
A94D0EDC1AD5757A0002DEB1 /* UpdateViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UpdateViewModel.m; sourceTree = "<group>"; };
A94DF6321AD4D94E00DCDCB0 /* MyNoteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyNoteViewController.h; sourceTree = "<group>"; };
A94DF6331AD4D94E00DCDCB0 /* MyNoteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyNoteViewController.m; sourceTree = "<group>"; };
A94DF6341AD4D94E00DCDCB0 /* MyNoteViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MyNoteViewController.xib; sourceTree = "<group>"; };
A955108C1AC39E6A0006D16F /* Ash_AWord.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ash_AWord.app; sourceTree = BUILT_PRODUCTS_DIR; };
A95510901AC39E6A0006D16F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A95510911AC39E6A0006D16F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
@@ -267,6 +280,8 @@
A97559C91ACBF0BC004ADA42 /* btn_good@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_good@2x.png"; sourceTree = "<group>"; };
A97559CA1ACBF0BC004ADA42 /* btn_share_clicked@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_share_clicked@2x.png"; sourceTree = "<group>"; };
A97559CB1ACBF0BC004ADA42 /* btn_share@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "btn_share@2x.png"; sourceTree = "<group>"; };
A97883871AD369DF00D46477 /* mainCellDingClick@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "mainCellDingClick@2x.png"; sourceTree = "<group>"; };
A97883891AD36A0500D46477 /* mainCellDing@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "mainCellDing@2x.png"; sourceTree = "<group>"; };
A97C54BC1AC8F10F0038818A /* BaseViewModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseViewModel.h; sourceTree = "<group>"; };
A97C54BD1AC8F10F0038818A /* BaseViewModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseViewModel.m; sourceTree = "<group>"; };
A97C54C01AC8F10F0038818A /* NSString+HXAddtions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HXAddtions.h"; sourceTree = "<group>"; };
@@ -325,6 +340,9 @@
A97DBE471ACAE7F600705682 /* smalliconWeixin@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "smalliconWeixin@2x.png"; sourceTree = "<group>"; };
A97DBE4B1ACAEBE300705682 /* first-login-sina@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "first-login-sina@2x.png"; sourceTree = "<group>"; };
A97DBE4D1ACAED4900705682 /* camera-close-select@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "camera-close-select@2x.png"; sourceTree = "<group>"; };
A98D659A1AD37F18008668EE /* MessageTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageTableViewCell.h; sourceTree = "<group>"; };
A98D659B1AD37F18008668EE /* MessageTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessageTableViewCell.m; sourceTree = "<group>"; };
A98D659C1AD37F18008668EE /* MessageTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MessageTableViewCell.xib; sourceTree = "<group>"; };
A98F98481ACA29B5007C4594 /* libSocialQQ.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libSocialQQ.a; sourceTree = "<group>"; };
A98F98491ACA29B5007C4594 /* TencentOpenAPI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TencentOpenAPI.framework; sourceTree = "<group>"; };
A98F984A1ACA29B5007C4594 /* TencentOpenApi_IOS_Bundle.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = TencentOpenApi_IOS_Bundle.bundle; sourceTree = "<group>"; };
@@ -348,6 +366,8 @@
A9B4E39C1AC9908E00A1DBDF /* libMobClickLibrary.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libMobClickLibrary.a; sourceTree = "<group>"; };
A9B4E39D1AC9908E00A1DBDF /* MobClick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobClick.h; sourceTree = "<group>"; };
A9B4E39E1AC9908E00A1DBDF /* MobClickSocialAnalytics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobClickSocialAnalytics.h; sourceTree = "<group>"; };
A9BE23BD1ACD8CA20032171A /* libSocialSina.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libSocialSina.a; sourceTree = "<group>"; };
A9BE23BE1ACD8CA20032171A /* UMSocialSinaHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UMSocialSinaHandler.h; sourceTree = "<group>"; };
A9FAD41F1AC922A5007ADC10 /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = "<group>"; };
A9FAD4201AC922A5007ADC10 /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = "<group>"; };
A9FAD4211AC922A5007ADC10 /* MainViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainViewController.xib; sourceTree = "<group>"; };
@@ -382,6 +402,7 @@
A98F98561ACA29B5007C4594 /* libWeChatSDK.a in Frameworks */,
A98F98531ACA29B5007C4594 /* TencentOpenAPI.framework in Frameworks */,
A98F98521ACA29B5007C4594 /* libSocialQQ.a in Frameworks */,
A9BE23BF1ACD8CA20032171A /* libSocialSina.a in Frameworks */,
018BA697D81ADF73A75A2345 /* libPods.a in Frameworks */,
A9B4E39F1AC9908E00A1DBDF /* libMobClickLibrary.a in Frameworks */,
A98F98551ACA29B5007C4594 /* libSocialWechat.a in Frameworks */,
@@ -392,6 +413,15 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
A94D0EDA1AD5753A0002DEB1 /* My */ = {
isa = PBXGroup;
children = (
A94D0EDB1AD5757A0002DEB1 /* UpdateViewModel.h */,
A94D0EDC1AD5757A0002DEB1 /* UpdateViewModel.m */,
);
path = My;
sourceTree = "<group>";
};
A95510831AC39E6A0006D16F = {
isa = PBXGroup;
children = (
@@ -466,6 +496,9 @@
A9617A511ACC27860024AE4A /* SetUpViewController.h */,
A9617A521ACC27860024AE4A /* SetUpViewController.m */,
A9617A531ACC27860024AE4A /* SetUpViewController.xib */,
A94DF6321AD4D94E00DCDCB0 /* MyNoteViewController.h */,
A94DF6331AD4D94E00DCDCB0 /* MyNoteViewController.m */,
A94DF6341AD4D94E00DCDCB0 /* MyNoteViewController.xib */,
);
path = My;
sourceTree = "<group>";
@@ -602,6 +635,7 @@
A97C54B71AC8F0370038818A /* ViewControllers */ = {
isa = PBXGroup;
children = (
A98D65971AD37BDF008668EE /* Message */,
A9617A501ACC274C0024AE4A /* My */,
A97559AE1ACBC615004ADA42 /* Note */,
A97DBE2F1ACAE0F100705682 /* Login */,
@@ -614,6 +648,8 @@
A97C54B81AC8F0370038818A /* ViewModels */ = {
isa = PBXGroup;
children = (
A94D0EDA1AD5753A0002DEB1 /* My */,
A98D65981AD37D99008668EE /* Message */,
A97559BC1ACBE6B7004ADA42 /* Note */,
A9FAD4331AC925AC007ADC10 /* LoginViewModel.h */,
A9FAD4341AC925AC007ADC10 /* LoginViewModel.m */,
@@ -624,6 +660,7 @@
A97C54B91AC8F0370038818A /* Views */ = {
isa = PBXGroup;
children = (
A98D65991AD37EFD008668EE /* Message */,
A97559C01ACBEE71004ADA42 /* Note */,
);
path = Views;
@@ -717,6 +754,8 @@
A97C54E21AC91FD70038818A /* Resource */ = {
isa = PBXGroup;
children = (
A97883891AD36A0500D46477 /* mainCellDing@2x.png */,
A97883871AD369DF00D46477 /* mainCellDingClick@2x.png */,
A968627D1ACCF46E00DDAA6B /* cellmorebtnclickN@2x.png */,
A968627B1ACCF3D200DDAA6B /* cellmorebtnnormalN@2x.png */,
A9617A561ACC2EBC0024AE4A /* mine-setting-icon-click@2x.png */,
@@ -822,9 +861,34 @@
path = Login;
sourceTree = "<group>";
};
A98D65971AD37BDF008668EE /* Message */ = {
isa = PBXGroup;
children = (
);
path = Message;
sourceTree = "<group>";
};
A98D65981AD37D99008668EE /* Message */ = {
isa = PBXGroup;
children = (
);
path = Message;
sourceTree = "<group>";
};
A98D65991AD37EFD008668EE /* Message */ = {
isa = PBXGroup;
children = (
A98D659A1AD37F18008668EE /* MessageTableViewCell.h */,
A98D659B1AD37F18008668EE /* MessageTableViewCell.m */,
A98D659C1AD37F18008668EE /* MessageTableViewCell.xib */,
);
path = Message;
sourceTree = "<group>";
};
A98F98461ACA29B5007C4594 /* UMSocial_Sdk_Extra_Frameworks */ = {
isa = PBXGroup;
children = (
A9BE23BC1ACD8CA20032171A /* Sina */,
A98F98471ACA29B5007C4594 /* TencentOpenAPI */,
A98F984C1ACA29B5007C4594 /* Wechat */,
);
@@ -874,6 +938,15 @@
path = UMAnalytics_Sdk_3.4.6;
sourceTree = "<group>";
};
A9BE23BC1ACD8CA20032171A /* Sina */ = {
isa = PBXGroup;
children = (
A9BE23BD1ACD8CA20032171A /* libSocialSina.a */,
A9BE23BE1ACD8CA20032171A /* UMSocialSinaHandler.h */,
);
path = Sina;
sourceTree = "<group>";
};
A9FAD41E1AC92293007ADC10 /* Main */ = {
isa = PBXGroup;
children = (
@@ -991,6 +1064,7 @@
A955109B1AC39E6A0006D16F /* Main.storyboard in Resources */,
A97559A51ACB9748004ADA42 /* setup-head-default@2x.png in Resources */,
A97DBE3F1ACAE29E00705682 /* Icon.png in Resources */,
A94DF6361AD4D94E00DCDCB0 /* MyNoteViewController.xib in Resources */,
A97DBE3D1ACAE29E00705682 /* Icon-Small.png in Resources */,
A93441ED1ACA8C8F00A6B233 /* defaultUserIcon.png in Resources */,
A97559CF1ACBF0BC004ADA42 /* btn_good@2x.png in Resources */,
@@ -1003,6 +1077,7 @@
A97C54FE1AC933AD0038818A /* UMSocialLocalizable.strings in Resources */,
A93441E91ACA8AD200A6B233 /* Profile_filter_ImageIcon@2x.png in Resources */,
A97C55041AC933AD0038818A /* UMShareEditViewControlleriPad.xib in Resources */,
A978838A1AD36A0500D46477 /* mainCellDing@2x.png in Resources */,
A98F98541ACA29B5007C4594 /* TencentOpenApi_IOS_Bundle.bundle in Resources */,
A9617A591ACC2EBC0024AE4A /* mine-setting-icon@2x.png in Resources */,
A968627C1ACCF3D200DDAA6B /* cellmorebtnnormalN@2x.png in Resources */,
@@ -1020,6 +1095,7 @@
A97559C51ACBEE99004ADA42 /* NoteTableViewCell.xib in Resources */,
A9617A551ACC27860024AE4A /* SetUpViewController.xib in Resources */,
A97559D11ACBF0BC004ADA42 /* btn_share@2x.png in Resources */,
A98D659E1AD37F18008668EE /* MessageTableViewCell.xib in Resources */,
A93441E11ACA89AA00A6B233 /* Profile_filter_voiceIcon@2x.png in Resources */,
A97C55031AC933AD0038818A /* UMShareEditViewController.xib in Resources */,
A97DBE4E1ACAED4900705682 /* camera-close-select@2x.png in Resources */,
@@ -1028,6 +1104,7 @@
A97559A81ACB9DE4004ADA42 /* navigationButtonPublish@2x.png in Resources */,
A97559CE1ACBF0BC004ADA42 /* btn_good_clicked@2x.png in Resources */,
A97DBE3C1ACAE29E00705682 /* Icon-Small-50@2x.png in Resources */,
A97883881AD369DF00D46477 /* mainCellDingClick@2x.png in Resources */,
A97C55061AC933AD0038818A /* UMSnsAccountViewController.xib in Resources */,
A97559CD1ACBF0BC004ADA42 /* btn_bad@2x.png in Resources */,
A93441F71ACA918100A6B233 /* tabbarSetup@2x.png in Resources */,
@@ -1125,9 +1202,11 @@
A97C54CF1AC8F10F0038818A /* NSString+HXAddtions.m in Sources */,
A96862501ACCF12300DDAA6B /* DACircularProgressView.m in Sources */,
A95510951AC39E6A0006D16F /* AppDelegate.m in Sources */,
A94D0EDD1AD5757A0002DEB1 /* UpdateViewModel.m in Sources */,
A97C54D11AC8F10F0038818A /* RequireEngine.m in Sources */,
A96862731ACCF13300DDAA6B /* PSTCollectionViewFlowLayout.m in Sources */,
A96862441ACCF0B400DDAA6B /* MWGridCell.m in Sources */,
A94DF6351AD4D94E00DCDCB0 /* MyNoteViewController.m in Sources */,
A96862741ACCF13300DDAA6B /* PSTCollectionViewItemKey.m in Sources */,
A96862451ACCF0B400DDAA6B /* MWGridViewController.m in Sources */,
A97C54D01AC8F10F0038818A /* PropertyEntity.m in Sources */,
@@ -1141,6 +1220,7 @@
A968626F1ACCF13300DDAA6B /* PSTCollectionView.m in Sources */,
A9FAD4351AC925AC007ADC10 /* LoginViewModel.m in Sources */,
A95510921AC39E6A0006D16F /* main.m in Sources */,
A98D659D1AD37F18008668EE /* MessageTableViewCell.m in Sources */,
A96862711ACCF13300DDAA6B /* PSTCollectionViewController.m in Sources */,
A96862431ACCF0B400DDAA6B /* MWCaptionView.m in Sources */,
);
@@ -1272,6 +1352,7 @@
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/TencentOpenAPI",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/Wechat",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMAnalytics_Sdk_3.4.6",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/Sina",
);
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s x86_64";
@@ -1297,6 +1378,7 @@
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/TencentOpenAPI",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/Wechat",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMAnalytics_Sdk_3.4.6",
"$(PROJECT_DIR)/Ash_AWord/Vender/UMSocial_Sdk_Extra_Frameworks/Sina",
);
PRODUCT_NAME = "$(TARGET_NAME)";
VALID_ARCHS = "arm64 armv7 armv7s x86_64";
@@ -10,11 +10,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/AppDelegate.m"
timestampString = "449628804.640986"
timestampString = "449679166.085695"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "94"
endingLineNumber = "94"
startingLineNumber = "95"
endingLineNumber = "95"
landmarkName = "-setUmeng"
landmarkType = "5">
</BreakpointContent>
@@ -26,11 +26,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/AppDelegate.m"
timestampString = "449487306.916401"
timestampString = "449679166.085695"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "58"
endingLineNumber = "58"
startingLineNumber = "59"
endingLineNumber = "59"
landmarkName = "-application:handleOpenURL:"
landmarkType = "5">
</BreakpointContent>
@@ -42,11 +42,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/AppDelegate.m"
timestampString = "449487307.6863"
timestampString = "449679166.085695"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "65"
endingLineNumber = "65"
startingLineNumber = "66"
endingLineNumber = "66"
landmarkName = "-application:openURL:sourceApplication:annotation:"
landmarkType = "5">
</BreakpointContent>
@@ -58,11 +58,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "449628804.640986"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "79"
endingLineNumber = "79"
startingLineNumber = "123"
endingLineNumber = "123"
landmarkName = "-weixinLoginBtnClick:"
landmarkType = "5">
</BreakpointContent>
@@ -74,11 +74,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "449628804.640986"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "81"
endingLineNumber = "81"
startingLineNumber = "125"
endingLineNumber = "125"
landmarkName = "-weixinLoginBtnClick:"
landmarkType = "5">
</BreakpointContent>
@@ -106,11 +106,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "449676821.867894"
timestampString = "450197601.430116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "116"
endingLineNumber = "116"
startingLineNumber = "145"
endingLineNumber = "145"
landmarkName = "-tableView:cellForRowAtIndexPath:"
landmarkType = "5">
</BreakpointContent>
@@ -163,38 +163,6 @@
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewModels/Note/NotePublishViewModel.m"
timestampString = "449593347.867064"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "25"
endingLineNumber = "25"
landmarkName = "+requireAddNote:withImage:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewModels/Note/NotePublishViewModel.m"
timestampString = "449593350.893995"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "24"
endingLineNumber = "24"
landmarkName = "+requireAddNote:withImage:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
@@ -250,11 +218,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewModels/Note/NoteViewModel.m"
timestampString = "449593965.74301"
timestampString = "449799647.215245"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "28"
endingLineNumber = "28"
startingLineNumber = "37"
endingLineNumber = "37"
landmarkName = "-initWithDictionary:error:"
landmarkType = "5">
</BreakpointContent>
@@ -266,11 +234,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "449676821.867894"
timestampString = "450197601.430116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "100"
endingLineNumber = "100"
startingLineNumber = "129"
endingLineNumber = "129"
landmarkName = "-tableView:heightForRowAtIndexPath:"
landmarkType = "5">
</BreakpointContent>
@@ -282,11 +250,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "449676821.867894"
timestampString = "450197601.430116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "86"
endingLineNumber = "86"
startingLineNumber = "115"
endingLineNumber = "115"
landmarkName = "-numberOfSectionsInTableView:"
landmarkType = "5">
</BreakpointContent>
@@ -298,11 +266,11 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Note/NotePublishViewController.m"
timestampString = "449627906.406541"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "66"
endingLineNumber = "66"
startingLineNumber = "68"
endingLineNumber = "68"
landmarkName = "-textView:shouldChangeTextInRange:replacementText:"
landmarkType = "5">
</BreakpointContent>
@@ -326,18 +294,506 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/My/SetUpViewController.m"
timestampString = "449661357.291857"
timestampString = "450066451.852346"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "81"
endingLineNumber = "81"
startingLineNumber = "82"
endingLineNumber = "82"
landmarkName = "-tableView:cellForRowAtIndexPath:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "450197601.430116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "90"
endingLineNumber = "90"
landmarkName = "-loadData"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "450197601.430116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "88"
endingLineNumber = "88"
landmarkName = "-loadData"
landmarkType = "5">
<Locations>
<Location
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[NoteViewController loadData]"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "449747725.438284"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "59"
endingLineNumber = "59"
offsetFromSymbolStart = "148">
</Location>
<Location
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__30-[NoteViewController loadData]_block_invoke"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "449747725.438437"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "59"
endingLineNumber = "59"
offsetFromSymbolStart = "36">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449744146.412588"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "49"
endingLineNumber = "49"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449744148.574608"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "51"
endingLineNumber = "51"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Pods/Mantle/Mantle/MTLJSONAdapter.m"
timestampString = "449802017.708998"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "47"
endingLineNumber = "47"
landmarkName = "+modelOfClass:fromJSONDictionary:error:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Pods/Mantle/Mantle/MTLJSONAdapter.m"
timestampString = "449802018.78585"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "48"
endingLineNumber = "48"
landmarkName = "+modelOfClass:fromJSONDictionary:error:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449802022.996154"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "60"
endingLineNumber = "60"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449802023.989666"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "61"
endingLineNumber = "61"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewModels/Note/NoteViewModel.m"
timestampString = "449802115.789683"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "36"
endingLineNumber = "36"
landmarkName = "-initWithDictionary:error:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "102"
endingLineNumber = "102"
landmarkName = "-sianLoginBtnClick:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "147"
endingLineNumber = "147"
landmarkName = "-loginWithOpenId:withName:withGender:withFigureUrl:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449802724.556268"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "50"
endingLineNumber = "50"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "131"
endingLineNumber = "131"
landmarkName = "-weixinLoginBtnClick:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449803239.736145"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "91"
endingLineNumber = "91"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449803256.3496"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "93"
endingLineNumber = "93"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "449803272.940646"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "104"
endingLineNumber = "104"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "176"
endingLineNumber = "176"
landmarkName = "-loginWithOpenId:withName:withGender:withFigureUrl:"
landmarkType = "5">
<Locations>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__73-[LoginViewController loginWithOpenId:withName:withGender:withFigureUrl:]_block_invoke"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197440.690785"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "176"
endingLineNumber = "176"
offsetFromSymbolStart = "1010">
</Location>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__73-[LoginViewController loginWithOpenId:withName:withGender:withFigureUrl:]_block_invoke"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197440.691083"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "176"
endingLineNumber = "176"
offsetFromSymbolStart = "1032">
</Location>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__73-[LoginViewController loginWithOpenId:withName:withGender:withFigureUrl:]_block_invoke163"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197440.691456"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "176"
endingLineNumber = "176"
offsetFromSymbolStart = "36">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "158"
endingLineNumber = "158"
landmarkName = "-loginWithOpenId:withName:withGender:withFigureUrl:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197270.567043"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "154"
endingLineNumber = "154"
landmarkName = "-loginWithOpenId:withName:withGender:withFigureUrl:"
landmarkType = "5">
<Locations>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[LoginViewController loginWithOpenId:withName:withGender:withFigureUrl:]"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197440.710551"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "154"
endingLineNumber = "154"
offsetFromSymbolStart = "364">
</Location>
<Location
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__73-[LoginViewController loginWithOpenId:withName:withGender:withFigureUrl:]_block_invoke"
moduleName = "Ash_AWord"
urlString = "file:///Users/xmfish/Documents/Ash_Soft/Ash_AWord/Ash_AWord/ViewControllers/Login/LoginViewController.m"
timestampString = "450197440.711116"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "154"
endingLineNumber = "154"
offsetFromSymbolStart = "39">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "450064654.998358"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "53"
endingLineNumber = "53"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Utility/Network/RequireEngine.m"
timestampString = "450064655.606038"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "55"
endingLineNumber = "55"
landmarkName = "+requireWithProperty:completionBlock:failedBlock:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/Views/Note/NoteTableViewCell.m"
timestampString = "450197858.951449"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "145"
endingLineNumber = "145"
landmarkName = "-setText_Image:"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/My/MyNoteViewController.m"
timestampString = "450167209.784582"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "35"
endingLineNumber = "35"
landmarkName = "-viewDidLoad"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Ash_AWord/ViewControllers/Main/NoteViewController.m"
timestampString = "450197440.107655"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "54"
endingLineNumber = "54"
landmarkName = "-checkUpdate"
landmarkType = "5">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
+2
View File
@@ -10,6 +10,7 @@
#import "UMSocial.h"
#import "UMSocialWechatHandler.h"
#import "UMSocialQQHandler.h"
#import "UMSocialSinaHandler.h"
#import "MobClick.h"
#import "MainViewController.h"
@interface AppDelegate ()
@@ -92,6 +93,7 @@
[UMSocialData setAppKey:kUmengAppkey];
[UMSocialWechatHandler setWXAppId:kWXAppId appSecret:kWXAppSecret url:@"http://www.xiaoyu.com"];
[UMSocialQQHandler setQQWithAppId:kQQAppId appKey:kQQAppSecret url:@"http://www.xiaoyu.com"];
[UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
[MobClick startWithAppkey:kUmengAppkey reportPolicy:REALTIME channelId:@"App Store"];
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
+10 -1
View File
@@ -29,7 +29,7 @@
/**
* app store上的Apple ID
*/
#define kAppleID 957252253
#define kAppleID 983458853
/**
* 系统版本
@@ -78,6 +78,15 @@
#define kUmengAppkey @"551cf898fd98c586460011d1"
/**
* 友盟的数据
*/
#define kUmen_wxlogin @"wxlogin"
#define kUmen_qqlogin @"qqlogin"
#define kUmen_sinalogin @"sinalogin"
#define kUmen_note @"note"
#define kUmen_addnote @"addnote"
#define kUmen_logout @"logout"
/**
* 调整图片的宽度
*/
+9 -1
View File
@@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>OneWord</string>
<string>遇见你</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFiles</key>
@@ -51,6 +51,14 @@
<string>wx8fbd37e4da758bbd</string>
</array>
</dict>
<dict>
<key>CFBundleURLName</key>
<string>sina</string>
<key>CFBundleURLSchemes</key>
<array>
<string>sina.54abd4a4fd98c51d33000807</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1</string>
+2
View File
@@ -36,6 +36,8 @@
#import "Ash_UIUtil.h"
#import "Mantle.h"
#import "SVWebViewController.h"
#import "MobClick.h"
#import "LoginViewController.h"
#endif
#endif
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

+1 -1
View File
@@ -11,7 +11,7 @@
@interface BaseViewModel : MTLModel<MTLJSONSerializing>
@property (nonatomic, readonly) NSInteger errCode;
@property (nonatomic, readonly) NSNumber* errCode;
@property (nonatomic, readonly) NSString *errMessage;
- (BOOL)success;
+3 -3
View File
@@ -12,7 +12,7 @@
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"errCode": @"ret",
@"errMessage": @"errMessage",
@"errMessage": @"msg",
};
}
@@ -27,12 +27,12 @@
- (BOOL)success
{
return (self.errCode == 0);
return (self.errCode.integerValue == 0);
}
- (BOOL)needLogin
{
return (self.errCode == 1001);
return (self.errCode.integerValue == 1001);
}
@end
+2
View File
@@ -48,6 +48,8 @@ NetworkType;
* NSdate返回与指定NSdate相差天数的新的NSDate
*/
+(NSDate*)newDateWithDate:(NSDate*)oldDate withOffSetDay:(NSInteger)day;
//时间戳转时间
+(NSString*)timeFromtimeSp:(NSString*)timeSp;
//判断是否同一天
+(BOOL)isSameDay:(NSDate*)date1 date2:(NSDate*)date2;
@end
+83
View File
@@ -179,6 +179,89 @@
[adcomps setDay:day];
return [calendar dateByAddingComponents:adcomps toDate:oldDate options:0];
}
+(NSString*)timeFromtimeSp:(NSString*)timeSp
{
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
// [formatter setDateStyle:NSDateFormatterMediumStyle];
// [formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:MM"];
NSDate * d = [NSDate dateWithTimeIntervalSince1970:[timeSp floatValue]/1000];
NSTimeInterval late = [d timeIntervalSince1970]*1;
NSString * timeString = [formatter stringFromDate:d];
NSDate * dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval now = [dat timeIntervalSince1970]*1;
NSTimeInterval cha = now - late;
if (cha/3600 < 1) {
timeString = [NSString stringWithFormat:@"%f", cha/60];
timeString = [timeString substringToIndex:timeString.length-7];
int num= [timeString intValue];
if (num < 1) {
timeString = [NSString stringWithFormat:@"刚刚"];
}else{
timeString = [NSString stringWithFormat:@"%@分钟前", timeString];
}
}
if (cha/3600 > 1 && cha/86400 < 1) {
timeString = [NSString stringWithFormat:@"%f", cha/3600];
timeString = [timeString substringToIndex:timeString.length-7];
timeString = [NSString stringWithFormat:@"%@小时前", timeString];
}
if (cha/86400 > 1)
{
timeString = [NSString stringWithFormat:@"%f", cha/86400];
timeString = [timeString substringToIndex:timeString.length-7];
int num = [timeString intValue];
if (num < 2) {
timeString = [NSString stringWithFormat:@"昨天"];
}else if(num == 2){
timeString = [NSString stringWithFormat:@"前天"];
}else if (num > 2 && num <7){
timeString = [NSString stringWithFormat:@"%@天前", timeString];
}else if (num >= 7 && num <= 10) {
timeString = [NSString stringWithFormat:@"1周前"];
}else if(num > 10){
// timeString = [NSString stringWithFormat:@"n天前"];
}
}
return timeString;
}
+(BOOL)isSameDay:(NSDate *)date1 date2:(NSDate *)date2
{
NSCalendar* calendar = [NSCalendar currentCalendar];
@@ -0,0 +1,15 @@
//
// UMSocialSinaHandler.h
// SocialSDK
//
// Created by yeahugo on 14-6-11.
// Copyright (c) 2014年 Umeng. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface UMSocialSinaHandler : NSObject
+(void)openSSOWithRedirectURL:(NSString *)redirectURL;
@end
@@ -10,11 +10,14 @@
@interface LoginViewController : UIViewController<UINavigationControllerDelegate>
- (IBAction)qqLoginBtnClick:(id)sender;
- (IBAction)sianLoginBtnClick:(id)sender;
- (IBAction)weixinLoginBtnClick:(id)sender;
- (IBAction)closeBtnClick:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *qqBtn;
@property (strong, nonatomic)void (^loginSuccessBlock)();
@property (weak, nonatomic) IBOutlet UIButton *wxBtn;
+ (LoginViewController *)shareLoginViewController;
@@ -10,6 +10,8 @@
#import "LoginViewModel.h"
#import "UMSocial.h"
#import "AppDelegate.h"
#import <TencentOpenAPI/QQApi.h>
#import "WXApi.h"
@interface LoginViewController ()
@end
@@ -19,6 +21,13 @@
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if (![QQApi isQQInstalled]) {
_qqBtn.hidden = YES;
}
if (![WXApi isWXAppInstalled]) {
_wxBtn.hidden = YES;
}
}
-(void)viewWillAppear:(BOOL)animated
{
@@ -42,6 +51,8 @@
- (IBAction)qqLoginBtnClick:(id)sender
{
[MobClick event:kUmen_qqlogin attributes:nil];
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
@@ -66,8 +77,41 @@
}
- (IBAction)sianLoginBtnClick:(id)sender {
[MobClick event:kUmen_sinalogin attributes:nil];
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
// 获取微博用户名、uid、token等
if (response.responseCode == UMSResponseCodeSuccess) {
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];
NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
[[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToSina completion:^(UMSocialResponseEntity *response){
NSLog(@"SnsInformation is %@",response.data);
if (response.data) {
NSString* gender = @"";
if ([[response.data objectForKey:@"gender"] integerValue]==0) {
gender = @"";
}
NSString* openid = [NSString stringWithFormat:@"%ld",((NSNumber*)[response.data objectForKey:@"uid"]).integerValue];
[self loginWithOpenId:openid withName:[response.data objectForKey:@"screen_name"] withGender:gender withFigureUrl:[response.data objectForKey:@"profile_image_url"]];
}else{
[MBProgressHUD errorHudWithView:self.view label:kSSoErrorTips hidesAfter:1.0];
}
}];
}});
}
- (IBAction)weixinLoginBtnClick:(id)sender
{
[MobClick event:kUmen_wxlogin attributes:nil];
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
@@ -130,6 +174,7 @@
[MBProgressHUD errorHudWithView:self.view label:kSSoErrorTips hidesAfter:1.0];
}
} failedBlock:^(NSError *error) {
[MBProgressHUD hideAllHUDsForView:self.view animated:YES];
}];
}
@@ -7,7 +7,9 @@
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginViewController">
<connections>
<outlet property="qqBtn" destination="d5n-Fh-iLu" id="5MN-io-dC2"/>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
<outlet property="wxBtn" destination="UkD-jq-1FA" id="KBt-Gx-hhf"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
@@ -43,20 +45,43 @@
<constraint firstAttribute="height" constant="1" id="gvB-h3-6cR"/>
</constraints>
</view>
<view alpha="0.30000001192092896" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="N0z-zr-FIh">
<rect key="frame" x="30" y="330" width="260" height="1"/>
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="1" id="dyY-bi-m4c"/>
<constraint firstAttribute="height" constant="1" id="xMQ-Fj-c7T"/>
</constraints>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UkD-jq-1FA">
<rect key="frame" x="0.0" y="280" width="320" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="Gq2-tu-f83"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<state key="normal" title=" 微信账号登录" image="first-login-sina.png">
<color key="titleColor" red="0.85882352939999995" green="0.0" blue="0.13725490200000001" alpha="1" colorSpace="calibratedRGB"/>
<state key="normal" title=" 微信账号登录" image="iconWeixin.png">
<color key="titleColor" red="0.035294117649999998" green="0.73333333329999995" blue="0.027450980390000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="weixinLoginBtnClick:" destination="-1" eventType="touchUpInside" id="NNj-L8-Jpp"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EOa-ZS-ast">
<rect key="frame" x="0.0" y="330" width="320" height="48"/>
<constraints>
<constraint firstAttribute="height" constant="48" id="IY8-e9-DWd"/>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="48" id="wtE-EE-68S"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<state key="normal" title=" 微博账号登录" image="first-login-sina.png">
<color key="titleColor" red="0.93725490199999995" green="0.2470588235" blue="0.33333333329999998" alpha="1" colorSpace="calibratedRGB"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="sianLoginBtnClick:" destination="-1" eventType="touchUpInside" id="8Eq-fl-vhm"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="07x-dP-nLy">
<rect key="frame" x="15" y="20" width="31" height="31"/>
<constraints>
@@ -79,12 +104,18 @@
<constraint firstItem="07x-dP-nLy" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" constant="20" id="Lfs-7l-4av"/>
<constraint firstItem="d5n-Fh-iLu" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="MSR-l1-iMs"/>
<constraint firstItem="d5n-Fh-iLu" firstAttribute="top" secondItem="MRU-Mw-Lxc" secondAttribute="bottom" constant="32" id="NSR-lT-IgV"/>
<constraint firstAttribute="trailing" secondItem="N0z-zr-FIh" secondAttribute="trailing" constant="30" id="PGb-6j-Kam"/>
<constraint firstAttribute="centerX" secondItem="MRU-Mw-Lxc" secondAttribute="centerX" id="RbP-3H-0mQ"/>
<constraint firstItem="UkD-jq-1FA" firstAttribute="top" secondItem="itZ-sn-jaF" secondAttribute="bottom" constant="3" id="WTN-PU-MmF"/>
<constraint firstItem="itZ-sn-jaF" firstAttribute="top" secondItem="d5n-Fh-iLu" secondAttribute="bottom" constant="2" id="ZG8-bE-RNp"/>
<constraint firstItem="itZ-sn-jaF" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="30" id="a6i-G7-yf6"/>
<constraint firstItem="EOa-ZS-ast" firstAttribute="top" secondItem="UkD-jq-1FA" secondAttribute="bottom" constant="2" id="aR8-dm-Bo0"/>
<constraint firstAttribute="trailing" secondItem="EOa-ZS-ast" secondAttribute="trailing" id="be9-xL-usb"/>
<constraint firstItem="N0z-zr-FIh" firstAttribute="top" secondItem="UkD-jq-1FA" secondAttribute="bottom" constant="2" id="cTr-9w-W8z"/>
<constraint firstItem="EOa-ZS-ast" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="iKK-V5-xpJ"/>
<constraint firstItem="UkD-jq-1FA" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="l54-ha-fXW"/>
<constraint firstItem="07x-dP-nLy" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="15" id="rlE-tw-9ZZ"/>
<constraint firstItem="N0z-zr-FIh" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" constant="30" id="s8L-zA-6NL"/>
<constraint firstAttribute="trailing" secondItem="d5n-Fh-iLu" secondAttribute="trailing" id="yTx-cp-DRM"/>
</constraints>
<simulatedScreenMetrics key="simulatedDestinationMetrics"/>
@@ -96,5 +127,6 @@
<image name="first-login-icon.png" width="114" height="114"/>
<image name="first-login-qq.png" width="24" height="24"/>
<image name="first-login-sina.png" width="22" height="22"/>
<image name="iconWeixin.png" width="28" height="28"/>
</resources>
</document>
@@ -33,7 +33,9 @@
[_myNav setTabBarItem:[[UITabBarItem alloc] initWithTitle:@"我的" image:[UIImage imageNamed:@"tabbarSetup-dark"] selectedImage:[UIImage imageNamed:@"tabbarSetupClick"]]];
}
self.viewControllers = @[_noteNav, _messageNav, _myNav];
// self.viewControllers = @[_noteNav, _messageNav, _myNav];
self.viewControllers = @[_noteNav, _myNav];
}
return self;
}
@@ -48,6 +50,8 @@
[UIBarButtonItem.appearance setTintColor:[UIColor blackColor]];
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
}
- (void)didReceiveMemoryWarning
@@ -11,6 +11,7 @@
#import "LoginViewModel.h"
#import "LoginViewController.h"
#import "SetUpViewController.h"
#import "MyNoteViewController.h"
@interface MyViewController ()
{
NSArray* cellTitleArr;
@@ -66,7 +67,7 @@
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 1) {
return 2;
return 1;
}
return 1;
}
@@ -122,6 +123,22 @@
[LoginViewController presentLoginViewControllerInView:self success:nil];
}
}
break;
case 1:
{
if (![AWordUser sharedInstance].isLogin)
{
[LoginViewController presentLoginViewControllerInView:self success:nil];
}else
{
if (indexPath.row == 0) {
MyNoteViewController* myNoteViewController = [[MyNoteViewController alloc] init];
myNoteViewController.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:myNoteViewController animated:YES];
}
}
}
break;
@@ -10,7 +10,8 @@
#import "NotePublishViewController.h"
#import "NoteTableViewCell.h"
#import "NoteViewModel.h"
@interface NoteViewController ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
#import "UpdateViewModel.h"
@interface NoteViewController ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UIAlertViewDelegate>
{
NSInteger _page;
NSMutableArray* _text_imageArr;
@@ -40,8 +41,34 @@
self.navigationItem.leftBarButtonItem = [Ash_UIUtil leftBarButtonItemWithTarget:self action:@selector(publish) image:[UIImage imageNamed:@"navigationButtonPublish"] highlightedImage:[UIImage imageNamed:@"navigationButtonPublishClick"]];
self.navigationItem.rightBarButtonItem = [Ash_UIUtil leftBarButtonItemWithTarget:self action:@selector(headerBeginRefreshing) image:[UIImage imageNamed:@"navigationButtonRefresh"] highlightedImage:[UIImage imageNamed:@"navigationButtonRefreshClick"]];
[self headerBeginRefreshing];
[self checkUpdate];
}
-(void)checkUpdate
{
PropertyEntity* pro = [UpdateViewModel requireUpdate];
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
DLog(@"%@",viewModel);
UpdateViewModel* updateViewModel = (UpdateViewModel*)viewModel;
if ([updateViewModel success]) {
if (updateViewModel.update==NO) {
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:nil message:updateViewModel.version_info delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确认", nil];
[alertView show];
}
}
} failedBlock:^(NSError *error) {
}];
}
#pragma mark UIAlertDelegate
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex==1) {
NSString *str = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%d?mt=8", kAppleID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
}
#pragma mark MJRefreshDelegate
-(void)headerRereshing
{
@@ -55,6 +82,8 @@
}
-(void)loadData
{
[MobClick event:kUmen_note attributes:nil];
PropertyEntity* pro = [NoteViewModel requireWithOrder_by:Order_by_Time withPage:_page withPage_size:20];
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
@@ -118,6 +147,11 @@
#pragma mark publish
-(void)publish
{
if (![AWordUser sharedInstance].isLogin)
{
[LoginViewController presentLoginViewControllerInView:self success:nil];
return;
}
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从手机相册选择", nil];
actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
@@ -0,0 +1,16 @@
//
// MyNoteViewController.h
// Ash_AWord
//
// Created by xmfish on 15/4/8.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "BaseRefreshViewController.h"
@interface MyNoteViewController : BaseRefreshViewController
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (strong, nonatomic)NSString* otherUserId;
@property (strong, nonatomic)NSString* otherName;
@end
@@ -0,0 +1,139 @@
//
// MyNoteViewController.m
// Ash_AWord
//
// Created by xmfish on 15/4/8.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "MyNoteViewController.h"
#import "NoteViewModel.h"
#import "NoteTableViewCell.h"
@interface MyNoteViewController ()
{
NSInteger _page;
NSMutableArray* _text_imageArr;
}
@end
@implementation MyNoteViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
_page = 1;
_text_imageArr = [[NSMutableArray alloc] init];
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if(!_otherUserId){
self.navigationItem.title = @"我发表的图片";
}else{
self.navigationItem.title = [NSString stringWithFormat:@"%@发表的图片",_otherName];
}
[self customViewDidLoad];
[self headerBeginRefreshing];
}
#pragma mark MJRefreshDelegate
-(void)headerRereshing
{
_page=1;
[self loadData];
}
-(void)footerRereshing
{
_page++;
[self footerEndRefreshing];
}
-(void)loadData
{
PropertyEntity* pro;
if (!_otherUserId) {
pro = [NoteViewModel requireMyWithOrder_by:Order_by_Time withPage:_page withPage_size:20];
}else{
pro = [NoteViewModel requireOhterWithOrder_by:Order_by_Time withPage:_page withPage_size:20 withOtherId:_otherUserId];
}
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
NoteViewModel* noteViewModel = (NoteViewModel*)viewModel;
if (_page <= 1) {
[_text_imageArr removeAllObjects];
}
if (noteViewModel.text_imagesArr) {
[_text_imageArr addObjectsFromArray:noteViewModel.text_imagesArr];
}
[self footerEndRefreshing];
[self headerEndRefreshing];
if (noteViewModel.text_imagesArr.count<20) {
[self.tableView removeFooter];
}else{
[self.tableView addGifFooterWithRefreshingTarget:self refreshingAction:@selector(footerRereshing)];
}
[self.tableView reloadData];
} failedBlock:^(NSError *error) {
[MBProgressHUD errorHudWithView:self.view label:kNetworkErrorTips hidesAfter:1.0];
[self footerEndRefreshing];
[self headerEndRefreshing];
}];
}
#pragma mark UITableViewDelegate
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return _text_imageArr.count;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return 1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 0.1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 10.0;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
Text_Image* text_image = [_text_imageArr objectAtIndex:indexPath.section];
return [NoteTableViewCell heightWith:text_image];
// return 140;
}
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString* cellIdentifier = @"cellIdentifier";
NoteTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell) {
UINib* nib = [UINib nibWithNibName:@"NoteTableViewCell" bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
Text_Image* text_image = [_text_imageArr objectAtIndex:indexPath.section];
[cell setText_Image:text_image];
return cell;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6751" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6736"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MyNoteViewController">
<connections>
<outlet property="tableView" destination="Olt-dV-VMy" id="shS-Ui-Y1k"/>
<outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
</connections>
</placeholder>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="Olt-dV-VMy">
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
</tableView>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="Olt-dV-VMy" firstAttribute="top" secondItem="i5M-Pr-FkT" secondAttribute="top" id="HU7-Yv-upJ"/>
<constraint firstAttribute="bottom" secondItem="Olt-dV-VMy" secondAttribute="bottom" id="IkT-33-oxS"/>
<constraint firstItem="Olt-dV-VMy" firstAttribute="leading" secondItem="i5M-Pr-FkT" secondAttribute="leading" id="KrR-Vq-gjs"/>
<constraint firstAttribute="trailing" secondItem="Olt-dV-VMy" secondAttribute="trailing" id="dep-lQ-H0T"/>
</constraints>
<simulatedScreenMetrics key="simulatedDestinationMetrics"/>
</view>
</objects>
</document>
@@ -9,6 +9,7 @@
#import "SetUpViewController.h"
#import "EGOCache.h"
#import "UMSocial.h"
#import "AppDelegate.h"
@interface SetUpViewController ()
@end
@@ -117,11 +118,14 @@
case 0:
[self cleanCache];
break;
case 1:
case 1:
{
[SetUpViewController shareAppWithViewController:self andTitle:@"听说" andContent:@"最真的表白,是我欲言又止的沉默" andImage:[UIImage imageNamed:@"Icon@2x"] andUrl:@"http://www.baidu.com"];
}
break;
case 3:
[self showAbout];
break;
case 4:
[self goToAppraisal];
break;
@@ -139,7 +143,8 @@
#pragma mark 关于
-(void)showAbout
{
SVWebViewController* svWebViewController = [[SVWebViewController alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/about.html",Ash_AWord_API_URL]]];
[self.navigationController pushViewController:svWebViewController animated:YES];
}
#pragma mark 清除缓存
- (void)cleanCache{
@@ -168,6 +173,8 @@
}
-(void)lgout:(id)sender
{
[MobClick event:kUmen_logout attributes:nil];
[AWordUser sharedInstance].isLogin = NO;
[AWordUser sharedInstance].uid = @"";
[[NSNotificationCenter defaultCenter] postNotificationName:kLogoutSuccessNotificationName object:nil];
@@ -176,6 +183,9 @@
+ (void)shareAppWithViewController:(UIViewController *)controller andTitle:(NSString *)title andContent:(NSString *)content andImage:(UIImage *)image andUrl:(NSString *)url
{
if (controller == nil) {
controller = [AppDelegate visibleViewController];
}
if(title.length <= 0)
{
title = @"听说";
@@ -40,6 +40,8 @@
-(void)publish
{
if (_contentTextView.text.length>0 && _publishImage) {
[MobClick event:kUmen_addnote attributes:nil];
[MBProgressHUD hudWithView:self.view label:@"发布中"];
PropertyEntity* notePublishViewModel = [NotePublishViewModel requireAddNote:_contentTextView.text withImage:_publishImage];
[RequireEngine requireWithProperty:notePublishViewModel completionBlock:^(id viewModel) {
+4 -4
View File
@@ -11,9 +11,9 @@
@implementation LoginViewModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"uId": @"uid",
};
NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithDictionary:[super JSONKeyPathsByPropertyKey]];
[dic setObject:@"uid" forKey:@"uId"];
return dic;
}
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
@@ -29,7 +29,7 @@
{
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithPOST;
pro.reqURL = @"rs/login";
pro.reqURL = @"rs/common/login";
pro.responesOBJ = self.class;
pro.pro = @{@"openid": openId,
@"name": name,
+17
View File
@@ -0,0 +1,17 @@
//
// UpdateViewModel.h
// Ash_AWord
//
// Created by xmfish on 15/4/8.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "BaseViewModel.h"
@interface UpdateViewModel : BaseViewModel
@property(assign,nonatomic)BOOL update;
@property(readonly,nonatomic)NSString* version;
@property(readonly,nonatomic)NSString* version_info;
+ (PropertyEntity *)requireUpdate;
@end
+46
View File
@@ -0,0 +1,46 @@
//
// UpdateViewModel.m
// Ash_AWord
//
// Created by xmfish on 15/4/8.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "UpdateViewModel.h"
@implementation UpdateViewModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithDictionary:[super JSONKeyPathsByPropertyKey]];
[dic setObject:@"update" forKey:@"update"];
[dic setObject:@"version" forKey:@"version"];
[dic setObject:@"version_info" forKey:@"version_info"];
return dic;
}
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
self = [super initWithDictionary:dictionaryValue error:error];
if (self == nil) return nil;
// Store a value that needs to be determined locally upon initialization.
return self;
}
+(PropertyEntity*)requireUpdate
{
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
NSString *app_Version = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSString *buildVersion = [infoDictionary objectForKey:@"CFBundleVersion"];
NSString *version = [NSString stringWithFormat:@"v%@.%@",app_Version, buildVersion];
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithPOST;
pro.reqURL = @"rs/common/get_version";
pro.responesOBJ = self.class;
pro.pro = @{@"version": version,
};
return pro;
}
@end
+15 -1
View File
@@ -14,15 +14,29 @@ typedef enum {
@interface Text_Image : MTLModel<MTLJSONSerializing>
@property (nonatomic, strong)NSString* content;
@property (nonatomic, strong)NSString* createTime;
@property (nonatomic, strong)NSNumber* createTime;
@property (nonatomic, strong)NSURL* imageUrl;
@property (nonatomic, strong)NSURL* ownerFigureurl;
@property (nonatomic, strong)NSString* ownerName;
@property (nonatomic, strong)NSNumber* imageWidth;
@property (nonatomic, strong)NSNumber* imageHeight;
@property (nonatomic, strong)NSString* ownerId;
@property (nonatomic, assign)BOOL hasPraised;
@property (nonatomic, assign)BOOL hasShared;
@property (nonatomic, assign)NSInteger shareCount;
@property (nonatomic, assign)NSInteger praiseCount;
@property (nonatomic, assign)NSInteger messageId;
@end
@interface NoteViewModel : BaseViewModel
@property (nonatomic, strong)NSArray* text_imagesArr;
+(PropertyEntity*)requireWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size;
+(PropertyEntity*)requireMyWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size;
+(PropertyEntity*)requireOhterWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size withOtherId:(NSString*)otherid;
+(PropertyEntity*)requirePraiseWithRecordId:(NSInteger)recordId;
+(PropertyEntity*)requireShareWithRecordId:(NSInteger)recordId;
@end
+70 -3
View File
@@ -17,11 +17,20 @@
@"imageUrl" : @"imageUrl",
@"ownerId" : @"ownerId",
@"praiseCount": @"praiseCount",
@"imageWidth" : @"imageInfo.width",
@"imageHeight" : @"imageInfo.height",
@"ownerFigureurl" : @"ownerFigureurl",
@"ownerName" : @"ownerName",
@"shareCount": @"shareCount",
@"hasShared": @"hasShared",
};
}
+ (NSValueTransformer *)imageUrlJSONTransformer {
return [NSValueTransformer valueTransformerForName:MTLURLValueTransformerName];
}
+ (NSValueTransformer *)ownerFigureurlJSONTransformer {
return [NSValueTransformer valueTransformerForName:MTLURLValueTransformerName];
}
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
self = [super initWithDictionary:dictionaryValue error:error];
if (self == nil) return nil;
@@ -35,9 +44,15 @@
@implementation NoteViewModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"text_imagesArr": @"text_images",
};
NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithDictionary:[super JSONKeyPathsByPropertyKey]];
[dic setObject:@"text_images" forKey:@"text_imagesArr"];
return dic;
}
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
self = [super initWithDictionary:dictionaryValue error:error];
if (self == nil) return nil;
return self;
}
+ (NSValueTransformer *)text_imagesArrJSONTransformer{
return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass:Text_Image.class];
@@ -56,5 +71,57 @@
return pro;
}
+(PropertyEntity*)requireOhterWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size withOtherId:(NSString *)otherid
{
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithGET;
pro.reqURL = @"rs/text_image/load_others";
pro.responesOBJ = self.class;
pro.pro = @{@"order_by": [NSString stringWithFormat:@"%u",order_by],
@"page": [NSString stringWithFormat:@"%ld",page],
@"page_size": [NSString stringWithFormat:@"%ld",page_size],
@"target_uid": otherid
};
return pro;
}
+(PropertyEntity*)requireMyWithOrder_by:(Order_by)order_by withPage:(NSInteger)page withPage_size:(NSInteger)page_size
{
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithGET;
pro.reqURL = @"rs/text_image/load_my";
pro.responesOBJ = self.class;
pro.pro = @{@"order_by": [NSString stringWithFormat:@"%u",order_by],
@"page": [NSString stringWithFormat:@"%ld",page],
@"page_size": [NSString stringWithFormat:@"%ld",page_size],
};
return pro;
}
+(PropertyEntity*)requirePraiseWithRecordId:(NSInteger)recordId
{
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithGET;
pro.reqURL = @"rs/text_image/praise";
pro.responesOBJ = self.class;
pro.pro = @{
@"record_id": [NSString stringWithFormat:@"%ld",recordId],
};
return pro;
}
+(PropertyEntity*)requireShareWithRecordId:(NSInteger)recordId
{
PropertyEntity *pro = [[PropertyEntity alloc] init];
pro.requireType = HTTPRequestTypeWithGET;
pro.reqURL = @"rs/text_image/share";
pro.responesOBJ = self.class;
pro.pro = @{
@"record_id": [NSString stringWithFormat:@"%ld",recordId],
};
return pro;
}
@end
@@ -0,0 +1,13 @@
//
// MessageTableViewCell.h
// Ash_AWord
//
// Created by xmfish on 15/4/7.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface MessageTableViewCell : UITableViewCell
@end
@@ -0,0 +1,23 @@
//
// MessageTableViewCell.m
// Ash_AWord
//
// Created by xmfish on 15/4/7.
// Copyright (c) 2015年 ash. All rights reserved.
//
#import "MessageTableViewCell.h"
@implementation MessageTableViewCell
- (void)awakeFromNib {
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6751" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6736"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" rowHeight="100" id="KGk-i7-Jjw" customClass="MessageTableViewCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="100"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defaultUserIcon.png" translatesAutoresizingMaskIntoConstraints="NO" id="Mb7-Fd-CcX">
<rect key="frame" x="8" y="8" width="24" height="24"/>
<constraints>
<constraint firstAttribute="width" constant="24" id="Dct-Tr-Hx3"/>
<constraint firstAttribute="height" constant="24" id="YI7-Jl-uDN"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" " textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="A4o-4F-Vj2">
<rect key="frame" x="112" y="12" width="200" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="Kog-Jk-pSl"/>
<constraint firstAttribute="width" constant="200" id="pSd-hM-Mw6"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="12"/>
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="内容" translatesAutoresizingMaskIntoConstraints="NO" id="Zgh-Pl-82c">
<rect key="frame" x="2" y="34" width="300" height="27"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="27" id="PIJ-QV-qOs"/>
<constraint firstAttribute="height" constant="27" id="w4d-ER-9ON"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hjS-Gz-Iqz">
<rect key="frame" x="40" y="10" width="280" height="21"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="hSd-8k-KI1"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstAttribute="trailingMargin" secondItem="Zgh-Pl-82c" secondAttribute="trailing" constant="10" id="1EM-t1-EzZ"/>
<constraint firstItem="hjS-Gz-Iqz" firstAttribute="leading" secondItem="Mb7-Fd-CcX" secondAttribute="trailing" constant="8" id="BcF-qT-CDg"/>
<constraint firstItem="Mb7-Fd-CcX" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="CYN-ty-UlC"/>
<constraint firstItem="Mb7-Fd-CcX" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" id="D1A-fL-DnX"/>
<constraint firstItem="A4o-4F-Vj2" firstAttribute="trailing" secondItem="H2p-sc-9uM" secondAttribute="trailingMargin" id="Dp0-tx-ZsJ"/>
<constraint firstItem="Zgh-Pl-82c" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" constant="-6" id="IFH-Qj-baB"/>
<constraint firstAttribute="trailingMargin" secondItem="hjS-Gz-Iqz" secondAttribute="trailing" constant="-8" id="LDg-yd-xOx"/>
<constraint firstAttribute="bottomMargin" secondItem="Zgh-Pl-82c" secondAttribute="bottom" constant="30" id="oHE-kw-lMN"/>
<constraint firstItem="A4o-4F-Vj2" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="4" id="ofv-4k-5DG"/>
<constraint firstItem="Zgh-Pl-82c" firstAttribute="top" secondItem="A4o-4F-Vj2" secondAttribute="bottom" constant="1" id="q1y-cr-NIe"/>
<constraint firstItem="hjS-Gz-Iqz" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="2" id="xX7-lH-BiV"/>
</constraints>
<variation key="default">
<mask key="constraints">
<exclude reference="oHE-kw-lMN"/>
</mask>
</variation>
</tableViewCellContentView>
<point key="canvasLocation" x="140" y="239"/>
</tableViewCell>
</objects>
<resources>
<image name="defaultUserIcon.png" width="50" height="50"/>
</resources>
</document>
+1
View File
@@ -19,6 +19,7 @@
@property (weak, nonatomic) IBOutlet UIButton *badBtn;
@property (weak, nonatomic) IBOutlet UIButton *shareBtn;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *contentHeight;
- (IBAction)avatarBtnClick:(id)sender;
- (IBAction)imageBtnClick:(id)sender;
+99 -4
View File
@@ -10,6 +10,8 @@
#import "NoteViewModel.h"
#import "AppDelegate.h"
#import "MWPhotoBrowser.h"
#import "SetUpViewController.h"
#import "MyNoteViewController.h"
@interface NoteTableViewCell()<MWPhotoBrowserDelegate>
@end
@implementation NoteTableViewCell
@@ -26,6 +28,16 @@
_avatar.layer.cornerRadius = _avatar.frame.size.width/2;
_avatar.layer.masksToBounds = YES;
_contentImgView.contentMode = UIViewContentModeScaleAspectFill;
_contentImgView.clipsToBounds = YES;
_goodBtn.layer.cornerRadius = 3;
_goodBtn.layer.masksToBounds = YES;
_shareBtn.layer.cornerRadius = 3;
_shareBtn.layer.masksToBounds = YES;
_goodBtn.backgroundColor = [UIColor lineColor];
_shareBtn.backgroundColor = [UIColor lineColor];
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
@@ -36,14 +48,74 @@
- (IBAction)goodBtnClick:(id)sender
{
}
if (![AWordUser sharedInstance].isLogin)
{
[LoginViewController presentLoginViewControllerInView:nil success:nil];
return;
}
_goodBtn.enabled = NO;
if (_goodBtn.selected) {
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",_text_image.praiseCount-1] forState:UIControlStateNormal];
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",_text_image.praiseCount-1] forState:UIControlStateSelected];
}else{
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",_text_image.praiseCount+1] forState:UIControlStateNormal];
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",_text_image.praiseCount+1] forState:UIControlStateSelected];
}
[self setGoodBtnSelect:!_goodBtn.selected];
PropertyEntity* pro = [NoteViewModel requirePraiseWithRecordId:_text_image.messageId];
Text_Image* tempTI = _text_image;
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
NoteViewModel* noteViewModel = (NoteViewModel*)viewModel;
_goodBtn.enabled = YES;
if ([noteViewModel success]) {
if (tempTI.hasPraised) {
tempTI.hasPraised = NO;
tempTI.praiseCount--;
}else{
tempTI.hasPraised = YES;
tempTI.praiseCount++;
}
}else{
[MBProgressHUD errorHudWithView:nil label:noteViewModel.errMessage hidesAfter:1.0];
[self setGoodBtnSelect:!_goodBtn.selected];
}
} failedBlock:^(NSError *error) {
_goodBtn.enabled = YES;
[self setGoodBtnSelect:!_goodBtn.selected];
[MBProgressHUD errorHudWithView:nil label:kNetworkErrorTips hidesAfter:1.0];
}];
}
-(void)setGoodBtnSelect:(BOOL)isSelect
{
if (isSelect) {
_goodBtn.selected = YES;
_goodBtn.backgroundColor = [UIColor lineColor];
}else{
_goodBtn.selected = NO;
_goodBtn.backgroundColor = [UIColor lineColor];
}
}
- (IBAction)badBtnClick:(id)sender
{
}
- (IBAction)shareBtnClick:(id)sender
{
[SetUpViewController shareAppWithViewController:nil andTitle:@"听说" andContent:_text_image.content andImage:_contentImgView.image andUrl:@"http://www.baidu.com"];
PropertyEntity* pro = [NoteViewModel requireShareWithRecordId:_text_image.messageId];
[RequireEngine requireWithProperty:pro completionBlock:^(id viewModel) {
if ([viewModel success]) {
_text_image.shareCount++;
}
} failedBlock:^(NSError *error) {
}];
}
-(void)setText_Image:(Text_Image *)text_image
{
@@ -55,9 +127,11 @@
UIImage *pressedColorImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
_userName.text = text_image.ownerName;
[_avatar sd_setImageWithURL:text_image.ownerFigureurl placeholderImage:[UIImage imageNamed:@"defaultUserIcon"]];
_timeLabel.text = text_image.createTime;
_timeLabel.text = [CommonUtil timeFromtimeSp:text_image.createTime.stringValue];
UIFont *font = [UIFont appFontOfSize:14.0];
CGSize size = CGSizeMake(300*[Ash_UIUtil currentScreenSizeRate],MAXFLOAT);
@@ -66,6 +140,14 @@
_contentTextView.text = text_image.content;
[_contentImgView sd_setImageWithURL:text_image.imageUrl placeholderImage:pressedColorImg];
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",text_image.praiseCount] forState:UIControlStateNormal];
[_goodBtn setTitle:[NSString stringWithFormat:@"%ld",text_image.praiseCount] forState:UIControlStateSelected];
[_shareBtn setTitle:[NSString stringWithFormat:@"%ld",text_image.shareCount] forState:UIControlStateNormal];
[self setGoodBtnSelect:text_image.hasPraised];
}
+(CGFloat)heightWith:(Text_Image *)text_image
{
@@ -75,15 +157,28 @@
CGRect labelRect = [text_image.content boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil];
CGSize imageSize = [Ash_UIUtil downloadImageSizeWithURL:text_image.imageUrl];
// CGSize imageSize = CGSizeMake(320, 600);
CGSize imageSize = CGSizeMake(text_image.imageWidth.floatValue, text_image.imageHeight.floatValue);
CGFloat imageHeight = imageSize.height;
if (imageHeight!=0 &&imageSize.width!=0)
{
imageHeight = imageHeight/(imageSize.width/(304*[Ash_UIUtil currentScreenSizeRate]));
}
if (imageHeight>500) {
imageHeight = 500;
}
return imageHeight+labelRect.size.height+95;
}
- (IBAction)avatarBtnClick:(id)sender {
if (![_text_image.ownerId isEqualToString:[AWordUser sharedInstance].uid] ) {
MyNoteViewController* myNoteViewController = [[MyNoteViewController alloc] init];
myNoteViewController.otherUserId = _text_image.ownerId;
myNoteViewController.otherName = _text_image.ownerName;
myNoteViewController.hidesBottomBarWhenPushed = YES;
[[AppDelegate visibleViewController].navigationController pushViewController:myNoteViewController animated:YES];
}
}
- (IBAction)imageBtnClick:(id)sender {
MWPhotoBrowser *pBrowser = [[MWPhotoBrowser alloc]initWithDelegate:self];
+50 -34
View File
@@ -15,13 +15,6 @@
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defaultUserIcon.png" translatesAutoresizingMaskIntoConstraints="NO" id="j8x-8X-1uX">
<rect key="frame" x="8" y="8" width="24" height="24"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="7Ud-nZ-Cv0"/>
<constraint firstAttribute="width" constant="24" id="eLa-By-4UF"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="游客" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Zq3-YP-dwB">
<rect key="frame" x="40" y="10" width="280" height="21"/>
<constraints>
@@ -31,26 +24,7 @@
<color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xeW-Yw-x4V">
<rect key="frame" x="8" y="190" width="60" height="24"/>
<color key="backgroundColor" red="0.86274509799999999" green="0.86274509799999999" blue="0.86274509799999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="RFj-ny-DWm"/>
<constraint firstAttribute="width" constant="60" id="byb-Kg-xTe"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<state key="normal" title="0" image="btn_good.png">
<color key="titleColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="selected" image="btn_good_clicked.png">
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="goodBtnClick:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="IBH-8l-81g"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="A54-Sv-7Vo">
<button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="A54-Sv-7Vo">
<rect key="frame" x="76" y="190" width="60" height="24"/>
<color key="backgroundColor" red="0.86274509799999999" green="0.86274509799999999" blue="0.86274509799999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
@@ -102,7 +76,7 @@
<nil key="highlightedColor"/>
</label>
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" scrollEnabled="NO" showsHorizontalScrollIndicator="NO" showsVerticalScrollIndicator="NO" editable="NO" text="内容" translatesAutoresizingMaskIntoConstraints="NO" id="2Rh-LI-LRT">
<rect key="frame" x="8" y="34" width="300" height="27"/>
<rect key="frame" x="2" y="34" width="300" height="27"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
<constraints>
<constraint firstAttribute="height" constant="27" id="Uex-tf-US9"/>
@@ -110,7 +84,7 @@
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kWq-q0-MPl">
<button opaque="NO" contentMode="scaleAspectFit" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="kWq-q0-MPl">
<rect key="frame" x="8" y="61" width="304" height="120"/>
<state key="normal">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
@@ -119,6 +93,46 @@
<action selector="imageBtnClick:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="Fbt-xq-94q"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="defaultUserIcon.png" translatesAutoresizingMaskIntoConstraints="NO" id="j8x-8X-1uX">
<rect key="frame" x="8" y="8" width="24" height="24"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="7Ud-nZ-Cv0"/>
<constraint firstAttribute="width" constant="24" id="eLa-By-4UF"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xeW-Yw-x4V">
<rect key="frame" x="8" y="190" width="60" height="24"/>
<color key="backgroundColor" red="0.86274509799999999" green="0.86274509799999999" blue="0.86274509799999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="RFj-ny-DWm"/>
<constraint firstAttribute="width" constant="60" id="byb-Kg-xTe"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<state key="normal" title="0" image="mainCellDing.png">
<color key="titleColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="selected" image="mainCellDingClick.png">
<color key="titleColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted" image="mainCellDingClick.png"/>
<connections>
<action selector="goodBtnClick:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="IBH-8l-81g"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nwn-Sg-HbR">
<rect key="frame" x="8" y="9" width="24" height="26"/>
<constraints>
<constraint firstAttribute="height" constant="26" id="rBV-dO-ZZD"/>
<constraint firstAttribute="width" constant="24" id="tee-R1-XN3"/>
</constraints>
<state key="normal">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<connections>
<action selector="avatarBtnClick:" destination="KGk-i7-Jjw" eventType="touchUpInside" id="cRR-4P-gdr"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstAttribute="bottomMargin" secondItem="DAR-mT-RbS" secondAttribute="bottom" constant="-3" id="4TG-zs-Q0N"/>
@@ -127,18 +141,20 @@
<constraint firstAttribute="bottomMargin" secondItem="xeW-Yw-x4V" secondAttribute="bottom" constant="-3" id="CHt-YD-DRF"/>
<constraint firstItem="kO5-Uc-AhU" firstAttribute="trailing" secondItem="H2p-sc-9uM" secondAttribute="trailingMargin" id="Dxu-6O-Q88"/>
<constraint firstAttribute="bottomMargin" secondItem="A54-Sv-7Vo" secondAttribute="bottom" constant="-3" id="GQb-si-pt6"/>
<constraint firstItem="nwn-Sg-HbR" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="Jfg-4S-075"/>
<constraint firstItem="Zq3-YP-dwB" firstAttribute="leading" secondItem="j8x-8X-1uX" secondAttribute="trailing" constant="8" id="Jr5-MH-iSW"/>
<constraint firstItem="kWq-q0-MPl" firstAttribute="centerY" secondItem="p9l-PS-2tC" secondAttribute="centerY" id="Jwe-wJ-Fh7"/>
<constraint firstItem="A54-Sv-7Vo" firstAttribute="leading" secondItem="xeW-Yw-x4V" secondAttribute="trailing" constant="8" id="PDA-wH-xbu"/>
<constraint firstItem="j8x-8X-1uX" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="PiZ-qa-B5O"/>
<constraint firstItem="2Rh-LI-LRT" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="UIC-fn-AiY"/>
<constraint firstItem="2Rh-LI-LRT" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" constant="-6" id="UIC-fn-AiY"/>
<constraint firstItem="2Rh-LI-LRT" firstAttribute="top" secondItem="kO5-Uc-AhU" secondAttribute="bottom" constant="1" id="VMh-KQ-qOG"/>
<constraint firstItem="DAR-mT-RbS" firstAttribute="trailing" secondItem="H2p-sc-9uM" secondAttribute="trailingMargin" id="XpE-yY-Jq9"/>
<constraint firstItem="Zq3-YP-dwB" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="2" id="Yz4-qJ-JUc"/>
<constraint firstItem="xeW-Yw-x4V" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leadingMargin" id="YzT-Tf-o6a"/>
<constraint firstItem="kWq-q0-MPl" firstAttribute="height" secondItem="p9l-PS-2tC" secondAttribute="height" id="Zgr-1g-SIR"/>
<constraint firstItem="kWq-q0-MPl" firstAttribute="centerX" secondItem="p9l-PS-2tC" secondAttribute="centerX" id="b9R-Qn-j79"/>
<constraint firstAttribute="trailingMargin" secondItem="2Rh-LI-LRT" secondAttribute="trailing" constant="4" id="ble-e8-Va3"/>
<constraint firstItem="nwn-Sg-HbR" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="1" id="bJZ-pq-qa8"/>
<constraint firstAttribute="trailingMargin" secondItem="2Rh-LI-LRT" secondAttribute="trailing" constant="10" id="ble-e8-Va3"/>
<constraint firstItem="p9l-PS-2tC" firstAttribute="top" secondItem="2Rh-LI-LRT" secondAttribute="bottom" id="dUD-nk-z5D"/>
<constraint firstItem="kO5-Uc-AhU" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="topMargin" constant="4" id="fRB-tZ-fsb"/>
<constraint firstItem="kWq-q0-MPl" firstAttribute="width" secondItem="p9l-PS-2tC" secondAttribute="width" id="g4i-cb-kjD"/>
@@ -164,16 +180,16 @@
<outlet property="timeLabel" destination="kO5-Uc-AhU" id="jky-Wu-oYB"/>
<outlet property="userName" destination="Zq3-YP-dwB" id="Ggo-yh-zdb"/>
</connections>
<point key="canvasLocation" x="193" y="146"/>
<point key="canvasLocation" x="193" y="144"/>
</tableViewCell>
</objects>
<resources>
<image name="btn_bad.png" width="18" height="18"/>
<image name="btn_bad_clicked.png" width="18" height="18"/>
<image name="btn_good.png" width="18" height="18"/>
<image name="btn_good_clicked.png" width="18" height="18"/>
<image name="btn_share.png" width="18" height="18"/>
<image name="btn_share_clicked.png" width="18" height="18"/>
<image name="defaultUserIcon.png" width="50" height="50"/>
<image name="mainCellDing.png" width="20" height="20"/>
<image name="mainCellDingClick.png" width="20" height="20"/>
</resources>
</document>