diff --git a/WeChat.xcodeproj/project.pbxproj b/WeChat.xcodeproj/project.pbxproj index af4cc2b..d82793d 100644 --- a/WeChat.xcodeproj/project.pbxproj +++ b/WeChat.xcodeproj/project.pbxproj @@ -22,6 +22,28 @@ F962F64C1CB53218005D73EA /* InsetsTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = F962F64B1CB53218005D73EA /* InsetsTextField.m */; }; F97BF8A01CC4E45C00403E47 /* Messages+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F97BF89D1CC4E45C00403E47 /* Messages+CoreDataProperties.m */; }; F97BF8A11CC4E45C00403E47 /* Messages.m in Sources */ = {isa = PBXBuildFile; fileRef = F97BF89F1CC4E45C00403E47 /* Messages.m */; }; + F9808A671CCB875B00C67C2D /* Moment.m in Sources */ = {isa = PBXBuildFile; fileRef = F9808A661CCB875B00C67C2D /* Moment.m */; }; + F9808A6D1CCB8E1100C67C2D /* hualaishi-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A691CCB8E1100C67C2D /* hualaishi-1.jpg */; }; + F9808A6E1CCB8E1100C67C2D /* hualaishi-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A6A1CCB8E1100C67C2D /* hualaishi-2.jpg */; }; + F9808A6F1CCB8E1100C67C2D /* laosiji.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A6B1CCB8E1100C67C2D /* laosiji.jpg */; }; + F9808A701CCB8E1100C67C2D /* yunmo.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A6C1CCB8E1100C67C2D /* yunmo.jpg */; }; + F9808A7B1CCB93B400C67C2D /* fanguang-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A711CCB93B400C67C2D /* fanguang-1.jpg */; }; + F9808A7C1CCB93B400C67C2D /* fanguang-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A721CCB93B400C67C2D /* fanguang-2.jpg */; }; + F9808A7D1CCB93B400C67C2D /* fanguang-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A731CCB93B400C67C2D /* fanguang-3.jpg */; }; + F9808A7E1CCB93B400C67C2D /* jingdizhiwa.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A741CCB93B400C67C2D /* jingdizhiwa.jpg */; }; + F9808A7F1CCB93B400C67C2D /* miyan-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A751CCB93B400C67C2D /* miyan-1.jpg */; }; + F9808A801CCB93B400C67C2D /* miyan-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A761CCB93B400C67C2D /* miyan-2.jpg */; }; + F9808A811CCB93B400C67C2D /* miyan-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A771CCB93B400C67C2D /* miyan-3.jpg */; }; + F9808A821CCB93B400C67C2D /* miyan-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A781CCB93B400C67C2D /* miyan-4.jpg */; }; + F9808A831CCB93B400C67C2D /* miyan-5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A791CCB93B400C67C2D /* miyan-5.jpg */; }; + F9808A841CCB93B400C67C2D /* miyan-6.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A7A1CCB93B400C67C2D /* miyan-6.jpg */; }; + F9808A8C1CCB963D00C67C2D /* jf-1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A851CCB963D00C67C2D /* jf-1.jpg */; }; + F9808A8D1CCB963D00C67C2D /* jf-2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A861CCB963D00C67C2D /* jf-2.jpg */; }; + F9808A8E1CCB963D00C67C2D /* jf-3.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A871CCB963D00C67C2D /* jf-3.jpg */; }; + F9808A8F1CCB963D00C67C2D /* jf-4.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A881CCB963D00C67C2D /* jf-4.jpg */; }; + F9808A901CCB963D00C67C2D /* jf-5.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A891CCB963D00C67C2D /* jf-5.jpg */; }; + F9808A911CCB963D00C67C2D /* jf-6.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A8A1CCB963D00C67C2D /* jf-6.jpg */; }; + F9808A921CCB963D00C67C2D /* jf-7.jpg in Resources */ = {isa = PBXBuildFile; fileRef = F9808A8B1CCB963D00C67C2D /* jf-7.jpg */; }; F996B0951CC8B9A200164929 /* Empty.xib in Resources */ = {isa = PBXBuildFile; fileRef = F996B0941CC8B9A200164929 /* Empty.xib */; }; F9A2AD1E1CB65981002CE5F8 /* BaseMessageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A2AD1D1CB65981002CE5F8 /* BaseMessageTableViewCell.m */; }; F9B263311CC3A0E20013EEF2 /* IQDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B2632F1CC3A0E20013EEF2 /* IQDatabaseManager.m */; }; @@ -30,7 +52,6 @@ F9B974751CC8CB630090D19E /* CoverHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B974731CC8CB630090D19E /* CoverHeaderView.m */; }; F9B974761CC8CB630090D19E /* CoverHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9B974741CC8CB630090D19E /* CoverHeaderView.xib */; }; F9C9CBD81CB254A900ABF0E0 /* TextMessageTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C9CBD71CB254A900ABF0E0 /* TextMessageTableViewCell.m */; }; - F9D065071CC901BC005CFDFD /* CoverHeaderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D065061CC901BC005CFDFD /* CoverHeaderViewController.m */; }; F9D0650A1CC933C7005CFDFD /* SGRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = F9D065091CC933C7005CFDFD /* SGRefreshHeader.m */; }; F9DA96021CB513E2008033A6 /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = F9DA96011CB513E2008033A6 /* DateUtil.m */; }; F9E02DD91CBE246600B14B7E /* libTuringSDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F9E02DD81CBE246600B14B7E /* libTuringSDK.a */; }; @@ -112,6 +133,7 @@ F9E073A71CA9167300468EDC /* MainTabBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = F9E073A61CA9167300468EDC /* MainTabBarController.m */; }; F9E073AC1CA96AF000468EDC /* MeTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F9E073AB1CA96AF000468EDC /* MeTableViewCell.m */; }; F9E073AF1CA96B1E00468EDC /* PersonModel.m in Sources */ = {isa = PBXBuildFile; fileRef = F9E073AE1CA96B1E00468EDC /* PersonModel.m */; }; + F9FF185B1CCB6E3200CFB496 /* MomentsDataSource.m in Sources */ = {isa = PBXBuildFile; fileRef = F9FF185A1CCB6E3200CFB496 /* MomentsDataSource.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -162,6 +184,29 @@ F97BF89D1CC4E45C00403E47 /* Messages+CoreDataProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Messages+CoreDataProperties.m"; sourceTree = ""; }; F97BF89E1CC4E45C00403E47 /* Messages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Messages.h; sourceTree = ""; }; F97BF89F1CC4E45C00403E47 /* Messages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Messages.m; sourceTree = ""; }; + F9808A651CCB875B00C67C2D /* Moment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Moment.h; sourceTree = ""; }; + F9808A661CCB875B00C67C2D /* Moment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Moment.m; sourceTree = ""; }; + F9808A691CCB8E1100C67C2D /* hualaishi-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "hualaishi-1.jpg"; sourceTree = ""; }; + F9808A6A1CCB8E1100C67C2D /* hualaishi-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "hualaishi-2.jpg"; sourceTree = ""; }; + F9808A6B1CCB8E1100C67C2D /* laosiji.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = laosiji.jpg; sourceTree = ""; }; + F9808A6C1CCB8E1100C67C2D /* yunmo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = yunmo.jpg; sourceTree = ""; }; + F9808A711CCB93B400C67C2D /* fanguang-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "fanguang-1.jpg"; sourceTree = ""; }; + F9808A721CCB93B400C67C2D /* fanguang-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "fanguang-2.jpg"; sourceTree = ""; }; + F9808A731CCB93B400C67C2D /* fanguang-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "fanguang-3.jpg"; sourceTree = ""; }; + F9808A741CCB93B400C67C2D /* jingdizhiwa.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = jingdizhiwa.jpg; sourceTree = ""; }; + F9808A751CCB93B400C67C2D /* miyan-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-1.jpg"; sourceTree = ""; }; + F9808A761CCB93B400C67C2D /* miyan-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-2.jpg"; sourceTree = ""; }; + F9808A771CCB93B400C67C2D /* miyan-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-3.jpg"; sourceTree = ""; }; + F9808A781CCB93B400C67C2D /* miyan-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-4.jpg"; sourceTree = ""; }; + F9808A791CCB93B400C67C2D /* miyan-5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-5.jpg"; sourceTree = ""; }; + F9808A7A1CCB93B400C67C2D /* miyan-6.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "miyan-6.jpg"; sourceTree = ""; }; + F9808A851CCB963D00C67C2D /* jf-1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-1.jpg"; sourceTree = ""; }; + F9808A861CCB963D00C67C2D /* jf-2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-2.jpg"; sourceTree = ""; }; + F9808A871CCB963D00C67C2D /* jf-3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-3.jpg"; sourceTree = ""; }; + F9808A881CCB963D00C67C2D /* jf-4.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-4.jpg"; sourceTree = ""; }; + F9808A891CCB963D00C67C2D /* jf-5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-5.jpg"; sourceTree = ""; }; + F9808A8A1CCB963D00C67C2D /* jf-6.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-6.jpg"; sourceTree = ""; }; + F9808A8B1CCB963D00C67C2D /* jf-7.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "jf-7.jpg"; sourceTree = ""; }; F996B0941CC8B9A200164929 /* Empty.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Empty.xib; sourceTree = ""; }; F9A2AD1C1CB65981002CE5F8 /* BaseMessageTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BaseMessageTableViewCell.h; sourceTree = ""; }; F9A2AD1D1CB65981002CE5F8 /* BaseMessageTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BaseMessageTableViewCell.m; sourceTree = ""; }; @@ -177,8 +222,6 @@ F9B974741CC8CB630090D19E /* CoverHeaderView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CoverHeaderView.xib; sourceTree = ""; }; F9C9CBD61CB254A900ABF0E0 /* TextMessageTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextMessageTableViewCell.h; sourceTree = ""; }; F9C9CBD71CB254A900ABF0E0 /* TextMessageTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextMessageTableViewCell.m; sourceTree = ""; }; - F9D065051CC901BC005CFDFD /* CoverHeaderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoverHeaderViewController.h; sourceTree = ""; }; - F9D065061CC901BC005CFDFD /* CoverHeaderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CoverHeaderViewController.m; sourceTree = ""; }; F9D065081CC933C7005CFDFD /* SGRefreshHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SGRefreshHeader.h; sourceTree = ""; }; F9D065091CC933C7005CFDFD /* SGRefreshHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SGRefreshHeader.m; sourceTree = ""; }; F9DA96001CB513E2008033A6 /* DateUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateUtil.h; sourceTree = ""; }; @@ -290,6 +333,8 @@ F9E073AB1CA96AF000468EDC /* MeTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MeTableViewCell.m; sourceTree = ""; }; F9E073AD1CA96B1E00468EDC /* PersonModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PersonModel.h; sourceTree = ""; }; F9E073AE1CA96B1E00468EDC /* PersonModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PersonModel.m; sourceTree = ""; }; + F9FF18591CCB6E3200CFB496 /* MomentsDataSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MomentsDataSource.h; sourceTree = ""; }; + F9FF185A1CCB6E3200CFB496 /* MomentsDataSource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MomentsDataSource.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -427,6 +472,34 @@ name = Category; sourceTree = ""; }; + F9808A681CCB8E1100C67C2D /* moments */ = { + isa = PBXGroup; + children = ( + F9808A851CCB963D00C67C2D /* jf-1.jpg */, + F9808A861CCB963D00C67C2D /* jf-2.jpg */, + F9808A871CCB963D00C67C2D /* jf-3.jpg */, + F9808A881CCB963D00C67C2D /* jf-4.jpg */, + F9808A891CCB963D00C67C2D /* jf-5.jpg */, + F9808A8A1CCB963D00C67C2D /* jf-6.jpg */, + F9808A8B1CCB963D00C67C2D /* jf-7.jpg */, + F9808A711CCB93B400C67C2D /* fanguang-1.jpg */, + F9808A721CCB93B400C67C2D /* fanguang-2.jpg */, + F9808A731CCB93B400C67C2D /* fanguang-3.jpg */, + F9808A741CCB93B400C67C2D /* jingdizhiwa.jpg */, + F9808A751CCB93B400C67C2D /* miyan-1.jpg */, + F9808A761CCB93B400C67C2D /* miyan-2.jpg */, + F9808A771CCB93B400C67C2D /* miyan-3.jpg */, + F9808A781CCB93B400C67C2D /* miyan-4.jpg */, + F9808A791CCB93B400C67C2D /* miyan-5.jpg */, + F9808A7A1CCB93B400C67C2D /* miyan-6.jpg */, + F9808A691CCB8E1100C67C2D /* hualaishi-1.jpg */, + F9808A6A1CCB8E1100C67C2D /* hualaishi-2.jpg */, + F9808A6B1CCB8E1100C67C2D /* laosiji.jpg */, + F9808A6C1CCB8E1100C67C2D /* yunmo.jpg */, + ); + path = moments; + sourceTree = ""; + }; F9B2632C1CC398E50013EEF2 /* DatabaseManager */ = { isa = PBXGroup; children = ( @@ -596,6 +669,7 @@ F9E073161CA90D6200468EDC /* Images */ = { isa = PBXGroup; children = ( + F9808A681CCB8E1100C67C2D /* moments */, F9E073401CA90D6200468EDC /* TimeLineImages */, F9E0733A1CA90D6200468EDC /* test */, F9E073171CA90D6200468EDC /* cell_icons */, @@ -759,6 +833,7 @@ F9E0738C1CA9155900468EDC /* Discover */ = { isa = PBXGroup; children = ( + F9FF18581CCB6D8F00CFB496 /* DataSource */, F9E0738D1CA9155900468EDC /* Controller */, F9E0738E1CA9155900468EDC /* Model */, F9E0738F1CA9155900468EDC /* View */, @@ -774,8 +849,6 @@ F9E073A01CA9161F00468EDC /* DiscoverViewController.m */, F9B9746C1CC8C0ED0090D19E /* MomentsTableViewController.h */, F9B9746D1CC8C0ED0090D19E /* MomentsTableViewController.m */, - F9D065051CC901BC005CFDFD /* CoverHeaderViewController.h */, - F9D065061CC901BC005CFDFD /* CoverHeaderViewController.m */, ); path = Controller; sourceTree = ""; @@ -783,6 +856,8 @@ F9E0738E1CA9155900468EDC /* Model */ = { isa = PBXGroup; children = ( + F9808A651CCB875B00C67C2D /* Moment.h */, + F9808A661CCB875B00C67C2D /* Moment.m */, ); path = Model; sourceTree = ""; @@ -869,6 +944,15 @@ name = Constants; sourceTree = ""; }; + F9FF18581CCB6D8F00CFB496 /* DataSource */ = { + isa = PBXGroup; + children = ( + F9FF18591CCB6E3200CFB496 /* MomentsDataSource.h */, + F9FF185A1CCB6E3200CFB496 /* MomentsDataSource.m */, + ); + name = DataSource; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -981,11 +1065,16 @@ F9E073741CA90D6200468EDC /* pbg.jpg in Resources */, F9E0736A1CA90D6200468EDC /* Contacts.xcassets in Resources */, F9E073661CA90D6200468EDC /* 25.jpg in Resources */, + F9808A6F1CCB8E1100C67C2D /* laosiji.jpg in Resources */, F9E0735F1CA90D6200468EDC /* 4.jpg in Resources */, F9E0735C1CA90D6200468EDC /* 22.jpg in Resources */, F9E073561CA90D6200468EDC /* 17.jpg in Resources */, + F9808A921CCB963D00C67C2D /* jf-7.jpg in Resources */, + F9808A821CCB93B400C67C2D /* miyan-4.jpg in Resources */, F9E073531CA90D6200468EDC /* 14.jpg in Resources */, F9E073791CA90D6200468EDC /* pic4.jpg in Resources */, + F9808A8D1CCB963D00C67C2D /* jf-2.jpg in Resources */, + F9808A7C1CCB93B400C67C2D /* fanguang-2.jpg in Resources */, F9E0735A1CA90D6200468EDC /* 20.jpg in Resources */, F9E0736E1CA90D6200468EDC /* Me.xcassets in Resources */, F9E073511CA90D6200468EDC /* 12.jpg in Resources */, @@ -994,26 +1083,37 @@ F9E0736D1CA90D6200468EDC /* Images.xcassets in Resources */, F9E0734D1CA90D6200468EDC /* 0.jpg in Resources */, F9E0737E1CA90D6200468EDC /* picon.jpg in Resources */, + F9808A841CCB93B400C67C2D /* miyan-6.jpg in Resources */, F9E073551CA90D6200468EDC /* 16.jpg in Resources */, + F9808A8C1CCB963D00C67C2D /* jf-1.jpg in Resources */, F9E073591CA90D6200468EDC /* 2.jpg in Resources */, F9E073671CA90D6200468EDC /* 26.jpg in Resources */, + F9808A831CCB93B400C67C2D /* miyan-5.jpg in Resources */, F9E072ED1CA90BD800468EDC /* LaunchScreen.storyboard in Resources */, F9E0737C1CA90D6200468EDC /* pic7.jpg in Resources */, F9B974761CC8CB630090D19E /* CoverHeaderView.xib in Resources */, F996B0951CC8B9A200164929 /* Empty.xib in Resources */, F918F3FE1CB112C1003855FE /* EditorView.xib in Resources */, + F9808A911CCB963D00C67C2D /* jf-6.jpg in Resources */, + F9808A8E1CCB963D00C67C2D /* jf-3.jpg in Resources */, F9E0735D1CA90D6200468EDC /* 23.jpg in Resources */, + F9808A901CCB963D00C67C2D /* jf-5.jpg in Resources */, + F9808A7B1CCB93B400C67C2D /* fanguang-1.jpg in Resources */, F9E073621CA90D6200468EDC /* 7.jpg in Resources */, + F9808A701CCB8E1100C67C2D /* yunmo.jpg in Resources */, F9E073771CA90D6200468EDC /* pic2.jpg in Resources */, F9E073751CA90D6200468EDC /* pic0.jpg in Resources */, F9E0736B1CA90D6200468EDC /* Discover.xcassets in Resources */, F9E073781CA90D6200468EDC /* pic3.jpg in Resources */, + F9808A811CCB93B400C67C2D /* miyan-3.jpg in Resources */, F9E0736C1CA90D6200468EDC /* Home.xcassets in Resources */, + F9808A8F1CCB963D00C67C2D /* jf-4.jpg in Resources */, F9E0735E1CA90D6200468EDC /* 3.jpg in Resources */, F9E0736F1CA90D6200468EDC /* test0.jpg in Resources */, F9E073701CA90D6200468EDC /* test1.jpg in Resources */, F9E072E51CA90BD800468EDC /* Main.storyboard in Resources */, F9E0734F1CA90D6200468EDC /* 10.jpg in Resources */, + F9808A6D1CCB8E1100C67C2D /* hualaishi-1.jpg in Resources */, F9E073711CA90D6200468EDC /* test2.jpg in Resources */, F9E073581CA90D6200468EDC /* 19.jpg in Resources */, F9E073641CA90D6200468EDC /* 9.jpg in Resources */, @@ -1022,13 +1122,18 @@ F9E073691CA90D6200468EDC /* 28.jpg in Resources */, F9E0737D1CA90D6200468EDC /* pic8.jpg in Resources */, F9E073631CA90D6200468EDC /* 8.jpg in Resources */, + F9808A801CCB93B400C67C2D /* miyan-2.jpg in Resources */, F9E073501CA90D6200468EDC /* 11.jpg in Resources */, F9E073681CA90D6200468EDC /* 27.jpg in Resources */, F9E073611CA90D6200468EDC /* 6.jpg in Resources */, F9E0734E1CA90D6200468EDC /* 1.jpg in Resources */, F9E073601CA90D6200468EDC /* 5.jpg in Resources */, + F9808A7F1CCB93B400C67C2D /* miyan-1.jpg in Resources */, + F9808A7D1CCB93B400C67C2D /* fanguang-3.jpg in Resources */, F9E073571CA90D6200468EDC /* 18.jpg in Resources */, F9E073721CA90D6200468EDC /* test3.jpg in Resources */, + F9808A7E1CCB93B400C67C2D /* jingdizhiwa.jpg in Resources */, + F9808A6E1CCB8E1100C67C2D /* hualaishi-2.jpg in Resources */, F9E073731CA90D6200468EDC /* test4.jpg in Resources */, F9E073651CA90D6200468EDC /* 24.jpg in Resources */, F9E0735B1CA90D6200468EDC /* 21.jpg in Resources */, @@ -1107,6 +1212,7 @@ files = ( F9E02DEF1CBE24FC00B14B7E /* JSONKit.m in Sources */, F90B41701CABFF5400ECF391 /* SearchResultsController.m in Sources */, + F9808A671CCB875B00C67C2D /* Moment.m in Sources */, F91775A81CAA68D800557A45 /* UIImage+RandomImage.m in Sources */, F9E073A41CA9162800468EDC /* MeViewController.m in Sources */, F941930C1CC3A108000EC067 /* WeChat.m in Sources */, @@ -1134,8 +1240,8 @@ F90B41731CAC1DC700ECF391 /* NSString+Pinyin.m in Sources */, F9B974711CC8C4780090D19E /* SpinningLoadingView.m in Sources */, F9E073A71CA9167300468EDC /* MainTabBarController.m in Sources */, - F9D065071CC901BC005CFDFD /* CoverHeaderViewController.m in Sources */, F9E02DEC1CBE24FC00B14B7E /* CADebugMacros.cpp in Sources */, + F9FF185B1CCB6E3200CFB496 /* MomentsDataSource.m in Sources */, F918F4011CB139DA003855FE /* ChatroomViewController.m in Sources */, F9E072DC1CA90BD800468EDC /* main.m in Sources */, F9B9746E1CC8C0ED0090D19E /* MomentsTableViewController.m in Sources */, diff --git a/WeChat/Chat/Controller/ChatroomViewController.m b/WeChat/Chat/Controller/ChatroomViewController.m index a20c0d0..13bf108 100644 --- a/WeChat/Chat/Controller/ChatroomViewController.m +++ b/WeChat/Chat/Controller/ChatroomViewController.m @@ -153,7 +153,6 @@ - (void)buildEditorView /* 若要在修改约束的同时进行动画的话,需要调用其父视图的layoutIfNeeded方法,并在动画中再调用一次 */ - [weakSelf.editorView mas_updateConstraints:^(MASConstraintMaker* make) { make.bottom.offset(-keyboardSize.height); }]; diff --git a/WeChat/Found/Controller/CoverHeaderViewController.h b/WeChat/Found/Controller/CoverHeaderViewController.h deleted file mode 100644 index ff8284f..0000000 --- a/WeChat/Found/Controller/CoverHeaderViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// CoverHeaderViewController.h -// WeChat -// -// Created by Siegrain on 16/4/21. -// Copyright © 2016年 siegrain. weChat. All rights reserved. -// - -#import - -@interface CoverHeaderViewController : UIViewController - -@end diff --git a/WeChat/Found/Controller/CoverHeaderViewController.m b/WeChat/Found/Controller/CoverHeaderViewController.m deleted file mode 100644 index 5f9767d..0000000 --- a/WeChat/Found/Controller/CoverHeaderViewController.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// CoverHeaderViewController.m -// WeChat -// -// Created by Siegrain on 16/4/21. -// Copyright © 2016年 siegrain. weChat. All rights reserved. -// - -#import "CoverHeaderView.h" -#import "CoverHeaderViewController.h" -#import "Masonry/Masonry/Masonry.h" -#import "SpinningLoadingView.h" - -@interface -CoverHeaderViewController () -@property (strong, nonatomic) CoverHeaderView* coverView; -@property (strong, nonatomic) SpinningLoadingView* loadingView; - -@end - -@implementation CoverHeaderViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - self.loadingView = [SpinningLoadingView headerWithRefreshingBlock:^{ - - }]; - - self.coverView = [CoverHeaderView - coverHeaderWithCover:[UIImage imageNamed:@"cover"] - avatar:[UIImage imageNamed:@"siegrain_avatar"] - name:@"Siegrain Wong"]; - - [self.view addSubview:self.coverView]; - [self.loadingView addSubview:self.loadingView]; -} - -- (void)bindConstraints -{ - // [self.coverView mas_makeConstraints:^(MASConstraintMaker* make) { - // make.ui - // make.top.right.left.bottom.offset(0); - // }]; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; -} -@end diff --git a/WeChat/Found/Controller/DiscoverViewController.m b/WeChat/Found/Controller/DiscoverViewController.m index 34c186d..a963656 100644 --- a/WeChat/Found/Controller/DiscoverViewController.m +++ b/WeChat/Found/Controller/DiscoverViewController.m @@ -119,6 +119,9 @@ - (CGFloat)tableView:(UITableView*)tableView - (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath { + if (indexPath.section != 0) + return; + MomentsTableViewController* destinationVC = [[MomentsTableViewController alloc] init]; destinationVC.hidesBottomBarWhenPushed = true; diff --git a/WeChat/Found/Controller/MomentsTableViewController.m b/WeChat/Found/Controller/MomentsTableViewController.m index d1e4be0..77ab6dc 100644 --- a/WeChat/Found/Controller/MomentsTableViewController.m +++ b/WeChat/Found/Controller/MomentsTableViewController.m @@ -7,7 +7,10 @@ // #import "CoverHeaderView.h" +#import "MJRefresh/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h" #import "Masonry/Masonry/Masonry.h" +#import "Moment.h" +#import "MomentsDataSource.h" #import "MomentsTableViewController.h" #import "SpinningLoadingView.h" @@ -15,81 +18,135 @@ MomentsTableViewController () @property (strong, nonatomic) CoverHeaderView* coverView; @property (assign, nonatomic) float contentInsetY; + +@property (strong, nonatomic) MomentsDataSource* datasource; +@property (strong, nonatomic) NSMutableArray* momentsArray; @end @implementation MomentsTableViewController +- (NSMutableArray*)momentsArray +{ + if (_momentsArray == nil) { + _momentsArray = [NSMutableArray array]; + } + return _momentsArray; +} +- (MomentsDataSource*)datasource +{ + static MomentsDataSource* datasource = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + datasource = [[MomentsDataSource alloc] init]; + }); + + return datasource; +} - (void)viewDidLoad { - [super viewDidLoad]; - self.contentInsetY = -150; + [super viewDidLoad]; + self.contentInsetY = -150; - [self buildTableview]; - [self bindConstraints]; + [self buildTableview]; + [self bindConstraints]; + [self loadData:true]; } - (void)buildTableview { - self.coverView = [CoverHeaderView - coverHeaderWithCover:[UIImage imageNamed:@"cover"] - avatar:[UIImage imageNamed:@"siegrain_avatar"] - name:@"Siegrain Wong"]; - self.tableView.contentInset = UIEdgeInsetsMake(self.contentInsetY, 0, 0, 0); - self.tableView.tableHeaderView = self.coverView; + self.coverView = [CoverHeaderView + coverHeaderWithCover:[UIImage imageNamed:@"cover"] + avatar:[UIImage imageNamed:@"siegrain_avatar"] + name:@"Siegrain Wong"]; + self.tableView.contentInset = UIEdgeInsetsMake(self.contentInsetY, 0, 0, 0); + self.tableView.tableHeaderView = self.coverView; + + SpinningLoadingView* loadingView = + [SpinningLoadingView headerWithRefreshingBlock:^{ + dispatch_after( + dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), + dispatch_get_main_queue(), ^{ + [self loadData:true]; + [self.tableView.mj_header endRefreshing]; + }); + }]; + loadingView.ignoredScrollViewContentInsetTop = self.contentInsetY; + self.tableView.mj_header = loadingView; - SpinningLoadingView* loadingView = - [SpinningLoadingView headerWithRefreshingBlock:^{ + self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ dispatch_after( - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), - dispatch_get_main_queue(), ^{ - // self.tableView.contentOffset = CGPointMake(0, -124); - // [UIView animateWithDuration:0.5 - // animations:^{ - // self.tableView.contentOffset = - // CGPointMake(0, 86); - // }]; - [self.tableView.mj_header endRefreshing]; + dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), + ^{ + [self loadData:false]; + [self.tableView.mj_footer endRefreshing]; }); }]; - loadingView.ignoredScrollViewContentInsetTop = self.contentInsetY; - self.tableView.mj_header = loadingView; - - // tableview.header默认是在tableview.tableHeaerView后面的 - [self.tableView bringSubviewToFront:self.tableView.mj_header]; } - (void)bindConstraints { - [self.coverView mas_makeConstraints:^(MASConstraintMaker* make) { - make.right.left.top.offset(0); - make.height.width.equalTo(self.tableView.mas_width); - }]; + [self.coverView mas_makeConstraints:^(MASConstraintMaker* make) { + make.right.left.top.offset(0); + make.width.equalTo(self.tableView.mas_width); + make.height.equalTo(self.tableView.mas_width).offset(30); + }]; } + +- (void)loadData:(BOOL)isInitial +{ + if (isInitial) [self.momentsArray removeAllObjects]; + + NSArray* datas = [self.datasource moments]; + [self.momentsArray addObjectsFromArray:datas]; + + if (isInitial) + [self.tableView reloadData]; + else { + NSMutableArray* indexPaths = [NSMutableArray array]; + for (NSUInteger i = 0; i < datas.count; i++) { + [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]]; + } + + [UIView setAnimationsEnabled:false]; + [self.tableView beginUpdates]; + [self.tableView insertRowsAtIndexPaths:indexPaths + withRowAnimation:UITableViewRowAnimationNone]; + [self.tableView endUpdates]; + [UIView setAnimationsEnabled:true]; + } + + /* + tableview.header默认是在tableview.tableHeaerView后面的 + 而且每次更新表格后都会重置这个顺序,所以每次刷新都要执行一次这个方法 + */ + [self.tableView bringSubviewToFront:self.tableView.mj_header]; +} + - (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; + [super didReceiveMemoryWarning]; } #pragma mark - tableview - (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath { - return 50; + return 50; } - (NSInteger)tableView:(UITableView*)tableView - numberOfRowsInSection:(NSInteger)section + numberOfRowsInSection:(NSInteger)section { - return 50; + return self.momentsArray.count; } - (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath { - UITableViewCell* cell = - [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault - reuseIdentifier:@"ss"]; - cell.textLabel.text = @"尼玛。。。。"; - return cell; + UITableViewCell* cell = + [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault + reuseIdentifier:@"ss"]; + cell.textLabel.text = self.momentsArray[indexPath.row].content; + return cell; } #pragma mark - scrollview - (void)scrollViewDidScroll:(UIScrollView*)scrollView { - NSLog(@"%f", scrollView.contentOffset.y); + // NSLog(@"%f", scrollView.contentOffset.y); } @end diff --git a/WeChat/Found/Model/Moment.h b/WeChat/Found/Model/Moment.h new file mode 100644 index 0000000..7daf5eb --- /dev/null +++ b/WeChat/Found/Model/Moment.h @@ -0,0 +1,20 @@ +// +// Moment.h +// WeChat +// +// Created by Siegrain on 16/4/23. +// Copyright © 2016年 siegrain. weChat. All rights reserved. +// + +#import + +@interface Moment : NSObject +@property (copy, nonatomic) NSString* content; +@property (copy, nonatomic) NSString* name; +@property (strong, nonatomic) UIImage* avatar; + +@property (copy, nonatomic) NSArray* pictures; +@property (copy, nonatomic) NSArray* comments; + ++ (instancetype)momentWithContent:(NSString*)content name:(NSString*)name pictures:(NSArray*)pictures comments:(NSArray*)comments; +@end diff --git a/WeChat/Found/Model/Moment.m b/WeChat/Found/Model/Moment.m new file mode 100644 index 0000000..7e6a8fc --- /dev/null +++ b/WeChat/Found/Model/Moment.m @@ -0,0 +1,22 @@ +// +// Moment.m +// WeChat +// +// Created by Siegrain on 16/4/23. +// Copyright © 2016年 siegrain. weChat. All rights reserved. +// + +#import "Moment.h" + +@implementation Moment ++ (instancetype)momentWithContent:(NSString*)content name:(NSString*)name pictures:(NSArray*)pictures comments:(NSArray*)comments +{ + Moment* model = [[Moment alloc] init]; + model.content = content; + model.name = name; + model.pictures = pictures; + model.comments = comments; + + return model; +} +@end diff --git a/WeChat/Found/MomentsDataSource.h b/WeChat/Found/MomentsDataSource.h new file mode 100644 index 0000000..f4a8d6c --- /dev/null +++ b/WeChat/Found/MomentsDataSource.h @@ -0,0 +1,14 @@ +// +// MomentsDataSource.h +// WeChat +// +// Created by Siegrain on 16/4/23. +// Copyright © 2016年 siegrain. weChat. All rights reserved. +// + +#import + +@interface MomentsDataSource : NSObject +- (NSString*)randomName; +- (NSArray*)moments; +@end diff --git a/WeChat/Found/MomentsDataSource.m b/WeChat/Found/MomentsDataSource.m new file mode 100644 index 0000000..dc8253b --- /dev/null +++ b/WeChat/Found/MomentsDataSource.m @@ -0,0 +1,105 @@ +// +// MomentsDataSource.m +// WeChat +// +// Created by Siegrain on 16/4/23. +// Copyright © 2016年 siegrain. weChat. All rights reserved. +// + +#import "Moment.h" +#import "MomentsDataSource.h" + +@implementation MomentsDataSource +- (UIImage*)momentsImage:(NSString*)name +{ + // NSString* momentsPath = [NSString stringWithFormat:@"%@%@", , @"/moments"]; + NSString* imagePath = [NSString stringWithFormat:@"%@/%@.jpg", [[NSBundle mainBundle] bundlePath], name]; + return [[UIImage alloc] initWithContentsOfFile:imagePath]; +} +- (NSString*)randomName +{ + NSArray* namesArray = @[ @"Siegrain Wong", @"Kaiser", @"晓美艳", @"刘北习", @"乔治可撸妮", @"ivanchaos" ]; + return namesArray[arc4random() % namesArray.count]; +} +- (NSArray*)moments +{ + NSMutableArray* result = [NSMutableArray array]; + [result addObject:[Moment momentWithContent:@"我的博客:http://siegrain.wang\n我的Github:https://github.com/Seanwong933\n\n朋友圈数据来自煎蛋网和知乎,侵删,不接受送快递上门服务。" + name:@"Siegrain Wong" + pictures:@[ [UIImage imageNamed:@"siegrain_avatar"] ] + comments:@[]]]; + + NSArray* dataArray = @[ + [Moment momentWithContent:@"我跟你们说啊,香港记者就不是吃青春饭的行业。\n因为在这一行业,太年轻反而是劣势,可能引起被采访人的不悦。" + name:@"膜术日报" + pictures:@[] + comments:@[ @"强行膜", + @"应删除「香港」二字,不然将来宣传报道上容易出现偏差。" ]], + + [Moment momentWithContent:@"心情不好,把朋友圈空间里微商的广告都举报了一下。" + name:@"光消失的地方" + pictures:@[] + comments:@[ @"没用,还是屏蔽吧。" ]], + + [Moment momentWithContent:@"这几天有点拉肚子,刚才开车在路上突然肚子一阵剧痛……心里一直在安慰自己说这应该是屁,决定赌一把!没想到他妈的赌输了……" + name:@"光消失的地方" + pictures:@[] + comments:@[ @"赌博想赢要偷看,所以为了赢,在有感觉的时候把手指伸进去探下敌情" ]], + + [Moment momentWithContent:@"谨以此图向煎蛋两位传奇的老司机致敬。" + name:@"0w1" + pictures:@[ [self momentsImage:@"laosiji"] ] + comments:@[]], + + [Moment momentWithContent:@"华莱士快餐店开业送我的礼物" + name:@"汤瑞" + pictures:@[ [self momentsImage:@"hualaishi-2"], [self momentsImage:@"hualaishi-1"] ] + comments:@[ @"卧槽,一颗赛艇!", + @"看第一张图的时候还以为是假的。。。", + @"看来华莱士的后台。。。。" ]], + + [Moment momentWithContent:@"1.多旅行,最好能做到西方哪个国家你没去过的水平。\n\n2.熟悉法律,做一个有责任感的公民,《基本法》是必须的。\n\n3.精通乐器,夏威夷吉他啊什么的都可以,需要的时候还能自弹自唱一首辣妹子\n\n4.坚持自我奋斗,把命运把握在自己手里,但是必要时也要考虑历史的行程,不可强求。\n\n5.要能讲一口流利的英语,要是还能背诵葛底斯堡演讲那就最好不过了。\n\n6.提高自己的穿衣品味,日常衣着尽量以衬衫为主,裤腰提高是必须的。\n\n7.最后一点,也是最重要的一条,为人处世要低调,懂得闷声发大财的道理。" + name:@"汤瑞" + pictures:@[ [self momentsImage:@"jingdizhiwa"] ] + comments:@[ @"你给我的这几条建议啊 Excited!", + @"+1s" ]], + + [Moment momentWithContent:@"俗话说,眼睛是心灵的窗户,所以一般眼镜片能反光的都是高手。\n这方面最厉害的当属柯南同志。\n\n江湖上还有一句话,叫“眯眯眼的都是怪物”。" + name:@"Kaiser" + pictures:@[ + [self momentsImage:@"fanguang-1"], + [self momentsImage:@"fanguang-2"], + [self momentsImage:@"fanguang-3"], + [self momentsImage:@"miyan-1"], + [self momentsImage:@"miyan-2"], + [self momentsImage:@"miyan-3"], + [self momentsImage:@"miyan-4"], + [self momentsImage:@"miyan-5"], + [self momentsImage:@"miyan-6"], + ] + comments:@[ @"强行让鲁鲁修当了眯眯眼。。。" ]], + [Moment momentWithContent:@"杰伦大木表情包" + name:@"Kaiser" + pictures:@[ + [self momentsImage:@"jf-1"], + [self momentsImage:@"jf-2"], + [self momentsImage:@"jf-3"], + [self momentsImage:@"jf-4"], + [self momentsImage:@"jf-5"], + [self momentsImage:@"jf-6"], + [self momentsImage:@"jf-7"] + ] + comments:@[ @"居然没有求种子的" ]] + ]; + + [result addObjectsFromArray:[dataArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + int seed = arc4random_uniform(2); + if (seed) + return NSOrderedDescending; + else + return NSOrderedAscending; + }]]; + + return result; +} +@end diff --git a/WeChat/Found/View/CoverHeaderView.xib b/WeChat/Found/View/CoverHeaderView.xib index 951594e..5eb5797 100644 --- a/WeChat/Found/View/CoverHeaderView.xib +++ b/WeChat/Found/View/CoverHeaderView.xib @@ -8,14 +8,14 @@ - + - diff --git a/WeChat/Found/View/SpinningLoadingView.h b/WeChat/Found/View/SpinningLoadingView.h index 57a507a..d1205cb 100755 --- a/WeChat/Found/View/SpinningLoadingView.h +++ b/WeChat/Found/View/SpinningLoadingView.h @@ -11,3 +11,4 @@ @interface SpinningLoadingView : MJRefreshHeader @end + \ No newline at end of file diff --git a/WeChat/Found/View/SpinningLoadingView.m b/WeChat/Found/View/SpinningLoadingView.m index 4999fb5..b99dde1 100755 --- a/WeChat/Found/View/SpinningLoadingView.m +++ b/WeChat/Found/View/SpinningLoadingView.m @@ -16,6 +16,8 @@ /* 朋友圈的转圈下拉加载 + 我也是脑子残了拿MJRefresh来改 + 体验不完美,下拉松开后有时菊花会朝上弹一截再回到原位 */ @interface SpinningLoadingView () @@ -32,7 +34,6 @@ - (void)prepare { [super prepare]; - self.backgroundColor = [UIColor redColor]; self.dontSetYWhenPlaceSubviews = true; self.mj_h = kViewHeight; @@ -53,11 +54,11 @@ - (void)prepare } #pragma mark 在这里设置子控件的位置和尺寸 +/*这个方法会在下拉状态被不停地调用..*/ - (void)placeSubviews { [super placeSubviews]; - //这个方法会在下拉状态被不停地调用.. //这里用frame的话下拉旋转的时候会变大变小..日了狗了 self.spinningView.bounds = CGRectMake(0, 0, kSpinningSize, kSpinningSize); self.spinningView.center = CGPointMake(kSpinningPosition, kSpinningPosition); @@ -72,11 +73,9 @@ - (void)scrollViewContentOffsetDidChange:(NSDictionary*)change CGFloat pullingY = fabs(self.scrollView.mj_offsetY + 64 + self.ignoredScrollViewContentInsetTop); - // NSLog(@"mj_y: %f", self.mj_y); if (pullingY >= kViewHeight) { CGFloat marginY = -kViewHeight - (pullingY - kViewHeight) - self.ignoredScrollViewContentInsetTop; - // NSLog(@"marginY: %f", marginY); self.mj_y = marginY; } diff --git a/WeChat/Images/moments/fanguang-1.jpg b/WeChat/Images/moments/fanguang-1.jpg new file mode 100644 index 0000000..3c4a2c9 Binary files /dev/null and b/WeChat/Images/moments/fanguang-1.jpg differ diff --git a/WeChat/Images/moments/fanguang-2.jpg b/WeChat/Images/moments/fanguang-2.jpg new file mode 100644 index 0000000..a375eff Binary files /dev/null and b/WeChat/Images/moments/fanguang-2.jpg differ diff --git a/WeChat/Images/moments/fanguang-3.jpg b/WeChat/Images/moments/fanguang-3.jpg new file mode 100644 index 0000000..21591fc Binary files /dev/null and b/WeChat/Images/moments/fanguang-3.jpg differ diff --git a/WeChat/Images/moments/hualaishi-1.jpg b/WeChat/Images/moments/hualaishi-1.jpg new file mode 100644 index 0000000..31d27fa Binary files /dev/null and b/WeChat/Images/moments/hualaishi-1.jpg differ diff --git a/WeChat/Images/moments/hualaishi-2.jpg b/WeChat/Images/moments/hualaishi-2.jpg new file mode 100644 index 0000000..7d8d693 Binary files /dev/null and b/WeChat/Images/moments/hualaishi-2.jpg differ diff --git a/WeChat/Images/moments/jf-1.jpg b/WeChat/Images/moments/jf-1.jpg new file mode 100644 index 0000000..8ed3149 Binary files /dev/null and b/WeChat/Images/moments/jf-1.jpg differ diff --git a/WeChat/Images/moments/jf-2.jpg b/WeChat/Images/moments/jf-2.jpg new file mode 100644 index 0000000..dfff0cb Binary files /dev/null and b/WeChat/Images/moments/jf-2.jpg differ diff --git a/WeChat/Images/moments/jf-3.jpg b/WeChat/Images/moments/jf-3.jpg new file mode 100644 index 0000000..c4effb9 Binary files /dev/null and b/WeChat/Images/moments/jf-3.jpg differ diff --git a/WeChat/Images/moments/jf-4.jpg b/WeChat/Images/moments/jf-4.jpg new file mode 100644 index 0000000..1dbc1a5 Binary files /dev/null and b/WeChat/Images/moments/jf-4.jpg differ diff --git a/WeChat/Images/moments/jf-5.jpg b/WeChat/Images/moments/jf-5.jpg new file mode 100644 index 0000000..b67594f Binary files /dev/null and b/WeChat/Images/moments/jf-5.jpg differ diff --git a/WeChat/Images/moments/jf-6.jpg b/WeChat/Images/moments/jf-6.jpg new file mode 100644 index 0000000..d847f08 Binary files /dev/null and b/WeChat/Images/moments/jf-6.jpg differ diff --git a/WeChat/Images/moments/jf-7.jpg b/WeChat/Images/moments/jf-7.jpg new file mode 100644 index 0000000..6283f18 Binary files /dev/null and b/WeChat/Images/moments/jf-7.jpg differ diff --git a/WeChat/Images/moments/jingdizhiwa.jpg b/WeChat/Images/moments/jingdizhiwa.jpg new file mode 100644 index 0000000..676bc49 Binary files /dev/null and b/WeChat/Images/moments/jingdizhiwa.jpg differ diff --git a/WeChat/Images/moments/laosiji.jpg b/WeChat/Images/moments/laosiji.jpg new file mode 100644 index 0000000..7cd2a50 Binary files /dev/null and b/WeChat/Images/moments/laosiji.jpg differ diff --git a/WeChat/Images/moments/miyan-1.jpg b/WeChat/Images/moments/miyan-1.jpg new file mode 100644 index 0000000..6aca431 Binary files /dev/null and b/WeChat/Images/moments/miyan-1.jpg differ diff --git a/WeChat/Images/moments/miyan-2.jpg b/WeChat/Images/moments/miyan-2.jpg new file mode 100644 index 0000000..9a8a168 Binary files /dev/null and b/WeChat/Images/moments/miyan-2.jpg differ diff --git a/WeChat/Images/moments/miyan-3.jpg b/WeChat/Images/moments/miyan-3.jpg new file mode 100644 index 0000000..e08b770 Binary files /dev/null and b/WeChat/Images/moments/miyan-3.jpg differ diff --git a/WeChat/Images/moments/miyan-4.jpg b/WeChat/Images/moments/miyan-4.jpg new file mode 100644 index 0000000..6112b30 Binary files /dev/null and b/WeChat/Images/moments/miyan-4.jpg differ diff --git a/WeChat/Images/moments/miyan-5.jpg b/WeChat/Images/moments/miyan-5.jpg new file mode 100644 index 0000000..b0ac3d0 Binary files /dev/null and b/WeChat/Images/moments/miyan-5.jpg differ diff --git a/WeChat/Images/moments/miyan-6.jpg b/WeChat/Images/moments/miyan-6.jpg new file mode 100644 index 0000000..bda9f83 Binary files /dev/null and b/WeChat/Images/moments/miyan-6.jpg differ diff --git a/WeChat/Images/moments/yunmo.jpg b/WeChat/Images/moments/yunmo.jpg new file mode 100644 index 0000000..20f912f Binary files /dev/null and b/WeChat/Images/moments/yunmo.jpg differ diff --git a/_clang-format b/_clang-format new file mode 100644 index 0000000..81f2bf9 --- /dev/null +++ b/_clang-format @@ -0,0 +1,92 @@ +--- +Language: Cpp +# BasedOnStyle: Mozilla +AccessModifierOffset: -2 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlinesLeft: false +AlignOperands: true +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: TopLevel +AlwaysBreakAfterReturnType: TopLevelDefinitions +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: true +BinPackArguments: true +BinPackParameters: true +BraceWrapping: + AfterClass: true + AfterControlStatement: false + AfterEnum: true + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: true + BeforeCatch: false + BeforeElse: false + IndentBraces: false +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Mozilla +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: true +CommentPragmas: '^ IWYU pragma:' +ConstructorInitializerAllOnOneLineOrOnePerLine: false +ConstructorInitializerIndentWidth: 2 +ContinuationIndentWidth: 2 +Cpp11BracedListStyle: false +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ] +IncludeCategories: + - Regex: '^"(llvm|llvm-c|clang|clang-c)/' + Priority: 2 + - Regex: '^(<|"(gtest|isl|json)/)' + Priority: 3 + - Regex: '.*' + Priority: 1 +IndentCaseLabels: true +IndentWrappedFunctionNames: false +KeepEmptyLinesAtTheStartOfBlocks: true +MacroBlockBegin: '' +MacroBlockEnd: '' +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: false +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +ReflowComments: true +SortIncludes: true +SpaceAfterCStyleCast: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Cpp11 +TabWidth: 8 +UseTab: Never + +# Siegrain Objective-C Configuratino +AlignTrailingComments: false +AllowShortBlocksOnASingleLine: true +AllowShortIfStatementsOnASingleLine: true +ColumnLimit: 0 +IndentWidth: 4 +... +