diff --git a/Examples/Jike/SwiftUI_Jike.xcodeproj/project.pbxproj b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.pbxproj new file mode 100755 index 0000000..0f13bf9 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.pbxproj @@ -0,0 +1,507 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 08284DAC22A6FB0B008C5D73 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DAB22A6FB0B008C5D73 /* AppDelegate.swift */; }; + 08284DAE22A6FB0B008C5D73 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DAD22A6FB0B008C5D73 /* SceneDelegate.swift */; }; + 08284DB022A6FB0B008C5D73 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DAF22A6FB0B008C5D73 /* ContentView.swift */; }; + 08284DB222A6FB10008C5D73 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08284DB122A6FB10008C5D73 /* Assets.xcassets */; }; + 08284DB522A6FB10008C5D73 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 08284DB422A6FB10008C5D73 /* Preview Assets.xcassets */; }; + 08284DB822A6FB10008C5D73 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08284DB622A6FB10008C5D73 /* LaunchScreen.storyboard */; }; + 08284DC222A75613008C5D73 /* SettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DC122A75613008C5D73 /* SettingView.swift */; }; + 08284DC422A75BEE008C5D73 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DC322A75BEE008C5D73 /* HomeView.swift */; }; + 08284DC622A75C4A008C5D73 /* ActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DC522A75C4A008C5D73 /* ActivityView.swift */; }; + 08284DC822A75C5F008C5D73 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08284DC722A75C5F008C5D73 /* ChatView.swift */; }; + 086A477922A76F2900DDF3ED /* TabIconInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A477822A76F2900DDF3ED /* TabIconInfo.swift */; }; + 086A477B22A7705500DDF3ED /* Datas.swift in Sources */ = {isa = PBXBuildFile; fileRef = 086A477A22A7705500DDF3ED /* Datas.swift */; }; + 088DA23922A78B82006103D5 /* CircleImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA23822A78B81006103D5 /* CircleImage.swift */; }; + 088DA23B22A78C3B006103D5 /* UITool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA23A22A78C3B006103D5 /* UITool.swift */; }; + 088DA23D22A7AF11006103D5 /* SettingCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA23C22A7AF11006103D5 /* SettingCell.swift */; }; + 088DA24022A7D182006103D5 /* ChatCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA23F22A7D181006103D5 /* ChatCell.swift */; }; + 088DA24222A7DDBB006103D5 /* ActivityCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA24122A7DDBB006103D5 /* ActivityCell.swift */; }; + 088DA24422A7FBEF006103D5 /* ZoneCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA24322A7FBEF006103D5 /* ZoneCell.swift */; }; + 088DA24622A81A15006103D5 /* CategoryRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088DA24522A81A15006103D5 /* CategoryRow.swift */; }; + 08C52A8A22A81AB900CDFA3D /* ZoneModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C52A8922A81AB900CDFA3D /* ZoneModel.swift */; }; + 08C52A8D22A81BE500CDFA3D /* zoneData.json in Resources */ = {isa = PBXBuildFile; fileRef = 08C52A8C22A81BE500CDFA3D /* zoneData.json */; }; + 08C52A8F22A81F1E00CDFA3D /* test.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08C52A8E22A81F1E00CDFA3D /* test.jpg */; }; + 08C52A9122A8242700CDFA3D /* test1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08C52A9022A8242700CDFA3D /* test1.jpg */; }; + 08C52A9322A8509C00CDFA3D /* SegmentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C52A9222A8509C00CDFA3D /* SegmentViewController.swift */; }; + 08FAC5FA22A8CC0300BC476C /* GYSegmentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FAC5F922A8CC0300BC476C /* GYSegmentView.swift */; }; + 08FAC64922A8D92A00BC476C /* HomeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FAC64822A8D92A00BC476C /* HomeCell.swift */; }; + 08FAC64B22A8DC4900BC476C /* kcc.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC64A22A8DC4900BC476C /* kcc.jpg */; }; + 08FAC64D22A8DCB300BC476C /* 30_Fotor.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC64C22A8DCB300BC476C /* 30_Fotor.jpg */; }; + 08FAC65B22A8F37500BC476C /* faxian.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC65A22A8F37400BC476C /* faxian.jpg */; }; + 08FAC66222A8F46A00BC476C /* keji.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC65C22A8F46A00BC476C /* keji.jpg */; }; + 08FAC66322A8F46A00BC476C /* jianzhu.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC65D22A8F46A00BC476C /* jianzhu.jpg */; }; + 08FAC66422A8F46A00BC476C /* aihao.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC65E22A8F46A00BC476C /* aihao.jpg */; }; + 08FAC66522A8F46A00BC476C /* miao.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC65F22A8F46A00BC476C /* miao.jpg */; }; + 08FAC66622A8F46A00BC476C /* shadiao.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC66022A8F46A00BC476C /* shadiao.jpg */; }; + 08FAC66722A8F46A00BC476C /* sheying.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08FAC66122A8F46A00BC476C /* sheying.jpg */; }; + 08FAC67022A90DB900BC476C /* GYTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FAC66E22A90DB900BC476C /* GYTabBarViewController.swift */; }; + 08FAC67122A90DB900BC476C /* GYTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FAC66F22A90DB900BC476C /* GYTabView.swift */; }; + 08FAC67322A9125900BC476C /* TabBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08FAC67222A9125900BC476C /* TabBarItem.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 08284DA822A6FB0B008C5D73 /* SwiftUI_Jike.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftUI_Jike.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 08284DAB22A6FB0B008C5D73 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 08284DAD22A6FB0B008C5D73 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 08284DAF22A6FB0B008C5D73 /* ContentView.swift */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; tabWidth = 4; usesTabs = 1; }; + 08284DB122A6FB10008C5D73 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 08284DB422A6FB10008C5D73 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 08284DB722A6FB10008C5D73 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 08284DB922A6FB10008C5D73 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 08284DC122A75613008C5D73 /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = ""; usesTabs = 0; }; + 08284DC322A75BEE008C5D73 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; + 08284DC522A75C4A008C5D73 /* ActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityView.swift; sourceTree = ""; }; + 08284DC722A75C5F008C5D73 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; + 086A477822A76F2900DDF3ED /* TabIconInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabIconInfo.swift; sourceTree = ""; }; + 086A477A22A7705500DDF3ED /* Datas.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Datas.swift; sourceTree = ""; }; + 088DA23822A78B81006103D5 /* CircleImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircleImage.swift; sourceTree = ""; }; + 088DA23A22A78C3B006103D5 /* UITool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITool.swift; sourceTree = ""; }; + 088DA23C22A7AF11006103D5 /* SettingCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingCell.swift; sourceTree = ""; }; + 088DA23F22A7D181006103D5 /* ChatCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCell.swift; sourceTree = ""; }; + 088DA24122A7DDBB006103D5 /* ActivityCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCell.swift; sourceTree = ""; }; + 088DA24322A7FBEF006103D5 /* ZoneCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZoneCell.swift; sourceTree = ""; }; + 088DA24522A81A15006103D5 /* CategoryRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CategoryRow.swift; sourceTree = ""; }; + 08C52A8922A81AB900CDFA3D /* ZoneModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoneModel.swift; sourceTree = ""; }; + 08C52A8C22A81BE500CDFA3D /* zoneData.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = zoneData.json; sourceTree = ""; }; + 08C52A8E22A81F1E00CDFA3D /* test.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = test.jpg; sourceTree = ""; }; + 08C52A9022A8242700CDFA3D /* test1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = test1.jpg; sourceTree = ""; }; + 08C52A9222A8509C00CDFA3D /* SegmentViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SegmentViewController.swift; sourceTree = ""; }; + 08FAC5F922A8CC0300BC476C /* GYSegmentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GYSegmentView.swift; sourceTree = ""; }; + 08FAC64822A8D92A00BC476C /* HomeCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeCell.swift; sourceTree = ""; }; + 08FAC64A22A8DC4900BC476C /* kcc.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = kcc.jpg; sourceTree = ""; }; + 08FAC64C22A8DCB300BC476C /* 30_Fotor.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = 30_Fotor.jpg; sourceTree = ""; }; + 08FAC65A22A8F37400BC476C /* faxian.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = faxian.jpg; sourceTree = ""; }; + 08FAC65C22A8F46A00BC476C /* keji.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = keji.jpg; sourceTree = ""; }; + 08FAC65D22A8F46A00BC476C /* jianzhu.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = jianzhu.jpg; sourceTree = ""; }; + 08FAC65E22A8F46A00BC476C /* aihao.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = aihao.jpg; sourceTree = ""; }; + 08FAC65F22A8F46A00BC476C /* miao.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = miao.jpg; sourceTree = ""; }; + 08FAC66022A8F46A00BC476C /* shadiao.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = shadiao.jpg; sourceTree = ""; }; + 08FAC66122A8F46A00BC476C /* sheying.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = sheying.jpg; sourceTree = ""; }; + 08FAC66E22A90DB900BC476C /* GYTabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GYTabBarViewController.swift; sourceTree = ""; }; + 08FAC66F22A90DB900BC476C /* GYTabView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GYTabView.swift; sourceTree = ""; }; + 08FAC67222A9125900BC476C /* TabBarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarItem.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 08284DA522A6FB0B008C5D73 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08284D9F22A6FB0B008C5D73 = { + isa = PBXGroup; + children = ( + 08284DAA22A6FB0B008C5D73 /* SwiftUI_Jike */, + 08284DA922A6FB0B008C5D73 /* Products */, + ); + sourceTree = ""; + }; + 08284DA922A6FB0B008C5D73 /* Products */ = { + isa = PBXGroup; + children = ( + 08284DA822A6FB0B008C5D73 /* SwiftUI_Jike.app */, + ); + name = Products; + sourceTree = ""; + }; + 08284DAA22A6FB0B008C5D73 /* SwiftUI_Jike */ = { + isa = PBXGroup; + children = ( + 08FAC5FB22A8CEC500BC476C /* Tools */, + 088DA24722A81A6C006103D5 /* Models */, + 088DA23E22A7D16C006103D5 /* Cell */, + 08284DAB22A6FB0B008C5D73 /* AppDelegate.swift */, + 08284DAD22A6FB0B008C5D73 /* SceneDelegate.swift */, + 08284DAF22A6FB0B008C5D73 /* ContentView.swift */, + 08284DC322A75BEE008C5D73 /* HomeView.swift */, + 08284DC522A75C4A008C5D73 /* ActivityView.swift */, + 08284DC722A75C5F008C5D73 /* ChatView.swift */, + 08284DC122A75613008C5D73 /* SettingView.swift */, + 08C52A9222A8509C00CDFA3D /* SegmentViewController.swift */, + 08FAC66F22A90DB900BC476C /* GYTabView.swift */, + 08FAC66E22A90DB900BC476C /* GYTabBarViewController.swift */, + 08C52A8B22A81BAC00CDFA3D /* Res */, + 08284DB122A6FB10008C5D73 /* Assets.xcassets */, + 08284DB622A6FB10008C5D73 /* LaunchScreen.storyboard */, + 08284DB922A6FB10008C5D73 /* Info.plist */, + 08284DB322A6FB10008C5D73 /* Preview Content */, + ); + path = SwiftUI_Jike; + sourceTree = ""; + }; + 08284DB322A6FB10008C5D73 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 08284DB422A6FB10008C5D73 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 088DA23E22A7D16C006103D5 /* Cell */ = { + isa = PBXGroup; + children = ( + 088DA23822A78B81006103D5 /* CircleImage.swift */, + 088DA23C22A7AF11006103D5 /* SettingCell.swift */, + 08FAC5F922A8CC0300BC476C /* GYSegmentView.swift */, + 088DA24522A81A15006103D5 /* CategoryRow.swift */, + 088DA23F22A7D181006103D5 /* ChatCell.swift */, + 088DA24122A7DDBB006103D5 /* ActivityCell.swift */, + 088DA24322A7FBEF006103D5 /* ZoneCell.swift */, + 08FAC64822A8D92A00BC476C /* HomeCell.swift */, + ); + path = Cell; + sourceTree = ""; + }; + 088DA24722A81A6C006103D5 /* Models */ = { + isa = PBXGroup; + children = ( + 086A477822A76F2900DDF3ED /* TabIconInfo.swift */, + 08C52A8922A81AB900CDFA3D /* ZoneModel.swift */, + 08FAC67222A9125900BC476C /* TabBarItem.swift */, + 086A477A22A7705500DDF3ED /* Datas.swift */, + ); + path = Models; + sourceTree = ""; + }; + 08C52A8B22A81BAC00CDFA3D /* Res */ = { + isa = PBXGroup; + children = ( + 08FAC65E22A8F46A00BC476C /* aihao.jpg */, + 08FAC65D22A8F46A00BC476C /* jianzhu.jpg */, + 08FAC65C22A8F46A00BC476C /* keji.jpg */, + 08FAC65F22A8F46A00BC476C /* miao.jpg */, + 08FAC66022A8F46A00BC476C /* shadiao.jpg */, + 08FAC66122A8F46A00BC476C /* sheying.jpg */, + 08FAC65A22A8F37400BC476C /* faxian.jpg */, + 08FAC64C22A8DCB300BC476C /* 30_Fotor.jpg */, + 08FAC64A22A8DC4900BC476C /* kcc.jpg */, + 08C52A9022A8242700CDFA3D /* test1.jpg */, + 08C52A8E22A81F1E00CDFA3D /* test.jpg */, + 08C52A8C22A81BE500CDFA3D /* zoneData.json */, + ); + path = Res; + sourceTree = ""; + }; + 08FAC5FB22A8CEC500BC476C /* Tools */ = { + isa = PBXGroup; + children = ( + 088DA23A22A78C3B006103D5 /* UITool.swift */, + ); + path = Tools; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 08284DA722A6FB0B008C5D73 /* SwiftUI_Jike */ = { + isa = PBXNativeTarget; + buildConfigurationList = 08284DBC22A6FB10008C5D73 /* Build configuration list for PBXNativeTarget "SwiftUI_Jike" */; + buildPhases = ( + 08284DA422A6FB0B008C5D73 /* Sources */, + 08284DA522A6FB0B008C5D73 /* Frameworks */, + 08284DA622A6FB0B008C5D73 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SwiftUI_Jike; + productName = SwiftUI_Jike; + productReference = 08284DA822A6FB0B008C5D73 /* SwiftUI_Jike.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08284DA022A6FB0B008C5D73 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + ORGANIZATIONNAME = alexyang; + TargetAttributes = { + 08284DA722A6FB0B008C5D73 = { + CreatedOnToolsVersion = 11.0; + }; + }; + }; + buildConfigurationList = 08284DA322A6FB0B008C5D73 /* Build configuration list for PBXProject "SwiftUI_Jike" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 08284D9F22A6FB0B008C5D73; + productRefGroup = 08284DA922A6FB0B008C5D73 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 08284DA722A6FB0B008C5D73 /* SwiftUI_Jike */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 08284DA622A6FB0B008C5D73 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 08284DB822A6FB10008C5D73 /* LaunchScreen.storyboard in Resources */, + 08FAC66622A8F46A00BC476C /* shadiao.jpg in Resources */, + 08FAC64B22A8DC4900BC476C /* kcc.jpg in Resources */, + 08FAC66422A8F46A00BC476C /* aihao.jpg in Resources */, + 08C52A8F22A81F1E00CDFA3D /* test.jpg in Resources */, + 08284DB522A6FB10008C5D73 /* Preview Assets.xcassets in Resources */, + 08FAC65B22A8F37500BC476C /* faxian.jpg in Resources */, + 08284DB222A6FB10008C5D73 /* Assets.xcassets in Resources */, + 08FAC66322A8F46A00BC476C /* jianzhu.jpg in Resources */, + 08FAC66522A8F46A00BC476C /* miao.jpg in Resources */, + 08FAC66222A8F46A00BC476C /* keji.jpg in Resources */, + 08C52A8D22A81BE500CDFA3D /* zoneData.json in Resources */, + 08C52A9122A8242700CDFA3D /* test1.jpg in Resources */, + 08FAC64D22A8DCB300BC476C /* 30_Fotor.jpg in Resources */, + 08FAC66722A8F46A00BC476C /* sheying.jpg in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 08284DA422A6FB0B008C5D73 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 08284DAC22A6FB0B008C5D73 /* AppDelegate.swift in Sources */, + 08FAC64922A8D92A00BC476C /* HomeCell.swift in Sources */, + 08FAC67022A90DB900BC476C /* GYTabBarViewController.swift in Sources */, + 08284DC222A75613008C5D73 /* SettingView.swift in Sources */, + 08C52A9322A8509C00CDFA3D /* SegmentViewController.swift in Sources */, + 08284DAE22A6FB0B008C5D73 /* SceneDelegate.swift in Sources */, + 08284DC422A75BEE008C5D73 /* HomeView.swift in Sources */, + 08284DC822A75C5F008C5D73 /* ChatView.swift in Sources */, + 08FAC67122A90DB900BC476C /* GYTabView.swift in Sources */, + 08FAC67322A9125900BC476C /* TabBarItem.swift in Sources */, + 08C52A8A22A81AB900CDFA3D /* ZoneModel.swift in Sources */, + 088DA24422A7FBEF006103D5 /* ZoneCell.swift in Sources */, + 08284DC622A75C4A008C5D73 /* ActivityView.swift in Sources */, + 088DA24622A81A15006103D5 /* CategoryRow.swift in Sources */, + 088DA24222A7DDBB006103D5 /* ActivityCell.swift in Sources */, + 088DA23D22A7AF11006103D5 /* SettingCell.swift in Sources */, + 086A477B22A7705500DDF3ED /* Datas.swift in Sources */, + 088DA23922A78B82006103D5 /* CircleImage.swift in Sources */, + 086A477922A76F2900DDF3ED /* TabIconInfo.swift in Sources */, + 08FAC5FA22A8CC0300BC476C /* GYSegmentView.swift in Sources */, + 088DA24022A7D182006103D5 /* ChatCell.swift in Sources */, + 08284DB022A6FB0B008C5D73 /* ContentView.swift in Sources */, + 088DA23B22A78C3B006103D5 /* UITool.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 08284DB622A6FB10008C5D73 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 08284DB722A6FB10008C5D73 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 08284DBA22A6FB10008C5D73 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 08284DBB22A6FB10008C5D73 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 08284DBD22A6FB10008C5D73 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "SwiftUI_Jike/Preview\\ Content"; + DEVELOPMENT_TEAM = PD973WK396; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = SwiftUI_Jike/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.shigy.SwiftUI-Jike"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 08284DBE22A6FB10008C5D73 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "SwiftUI_Jike/Preview\\ Content"; + DEVELOPMENT_TEAM = PD973WK396; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = SwiftUI_Jike/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.shigy.SwiftUI-Jike"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 08284DA322A6FB0B008C5D73 /* Build configuration list for PBXProject "SwiftUI_Jike" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 08284DBA22A6FB10008C5D73 /* Debug */, + 08284DBB22A6FB10008C5D73 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 08284DBC22A6FB10008C5D73 /* Build configuration list for PBXNativeTarget "SwiftUI_Jike" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 08284DBD22A6FB10008C5D73 /* Debug */, + 08284DBE22A6FB10008C5D73 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08284DA022A6FB0B008C5D73 /* Project object */; +} diff --git a/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..5923d6a --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100755 index 0000000..18d9810 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Examples/Jike/SwiftUI_Jike/ActivityView.swift b/Examples/Jike/SwiftUI_Jike/ActivityView.swift new file mode 100755 index 0000000..3d06b75 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/ActivityView.swift @@ -0,0 +1,65 @@ +// +// ActivityView.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ActivityView : View { + var body: some View { + VStack{ + VStack{ + HStack{ + Image("addPer") + .padding(.horizontal, 10) + Spacer() + Text("动态").bold() + .padding(.trailing, 44) + Spacer() + + } + } + HStack{ + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + } + .padding(.top, 0) + .frame(height: 10.0) + HStack(alignment: .center){ + CircleImage(imgName: "subIcon") + .padding(.leading, 10) + Text("发布动态...") + .color(Color.gray) + Spacer() + } + HStack{ + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + } + .padding(.top, 0) + .frame(height: 10.0) + + List{ + ActivityCell(nickName: "皮卡丘", timeStamp: "2小时前",content: "发明一种新吃法#一人食灌蛋手抓饼夹小油条泡菜香肠,挤上番茄酱甜面酱巨好吃呀😘!!灌蛋是灵魂,不能偷懒!!", imgName: "sucai" + ) + ActivityCell(nickName: "皮卡丘", timeStamp: "2小时前",content: "发明一种新吃法#一人食灌蛋手抓饼夹小油条泡菜香肠,挤上番茄酱甜面酱巨好吃呀😘!!灌蛋是灵魂,不能偷懒!!", imgName: "sucai" + ) + ActivityCell(nickName: "皮卡丘", timeStamp: "2小时前",content: "发明一种新吃法#一人食灌蛋手抓饼夹小油条泡菜香肠,挤上番茄酱甜面酱巨好吃呀😘!!灌蛋是灵魂,不能偷懒!!", imgName: "sucai" + ) + ActivityCell(nickName: "皮卡丘", timeStamp: "2小时前",content: "发明一种新吃法#一人食灌蛋手抓饼夹小油条泡菜香肠,挤上番茄酱甜面酱巨好吃呀😘!!灌蛋是灵魂,不能偷懒!!", imgName: "sucai" + ) + } + .padding(.leading, -20) + + } + } +} + +#if DEBUG +struct ActivityView_Previews : PreviewProvider { + static var previews: some View { + ActivityView() + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/AppDelegate.swift b/Examples/Jike/SwiftUI_Jike/AppDelegate.swift new file mode 100755 index 0000000..1c6ca42 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/AppDelegate.swift @@ -0,0 +1,41 @@ +// +// AppDelegate.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + func applicationWillTerminate(_ application: UIApplication) { + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100755 index 0000000..193d0dc --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,158 @@ +{ + "images": [ + { + "size": "20x20", + "idiom": "iphone", + "filename": "icon-20@2x.png", + "scale": "2x" + }, + { + "size": "20x20", + "idiom": "iphone", + "filename": "icon-20@3x.png", + "scale": "3x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29.png", + "scale": "1x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29@2x.png", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29@3x.png", + "scale": "3x" + }, + { + "size": "40x40", + "idiom": "iphone", + "filename": "icon-40@2x.png", + "scale": "2x" + }, + { + "size": "40x40", + "idiom": "iphone", + "filename": "icon-40@3x.png", + "scale": "3x" + }, + { + "size": "57x57", + "idiom": "iphone", + "filename": "icon-57.png", + "scale": "1x" + }, + { + "size": "57x57", + "idiom": "iphone", + "filename": "icon-57@2x.png", + "scale": "2x" + }, + { + "size": "60x60", + "idiom": "iphone", + "filename": "icon-60@2x.png", + "scale": "2x" + }, + { + "size": "60x60", + "idiom": "iphone", + "filename": "icon-60@3x.png", + "scale": "3x" + }, + { + "size": "20x20", + "idiom": "ipad", + "filename": "icon-20-ipad.png", + "scale": "1x" + }, + { + "size": "20x20", + "idiom": "ipad", + "filename": "icon-20@2x-ipad.png", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "ipad", + "filename": "icon-29-ipad.png", + "scale": "1x" + }, + { + "size": "29x29", + "idiom": "ipad", + "filename": "icon-29@2x-ipad.png", + "scale": "2x" + }, + { + "size": "40x40", + "idiom": "ipad", + "filename": "icon-40.png", + "scale": "1x" + }, + { + "size": "40x40", + "idiom": "ipad", + "filename": "icon-40@2x.png", + "scale": "2x" + }, + { + "size": "50x50", + "idiom": "ipad", + "filename": "icon-50.png", + "scale": "1x" + }, + { + "size": "50x50", + "idiom": "ipad", + "filename": "icon-50@2x.png", + "scale": "2x" + }, + { + "size": "72x72", + "idiom": "ipad", + "filename": "icon-72.png", + "scale": "1x" + }, + { + "size": "72x72", + "idiom": "ipad", + "filename": "icon-72@2x.png", + "scale": "2x" + }, + { + "size": "76x76", + "idiom": "ipad", + "filename": "icon-76.png", + "scale": "1x" + }, + { + "size": "76x76", + "idiom": "ipad", + "filename": "icon-76@2x.png", + "scale": "2x" + }, + { + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "icon-83.5@2x.png", + "scale": "2x" + }, + { + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "icon-1024.png", + "scale": "1x" + } + ], + "info": { + "version": 1, + "author": "icon.wuruihong.com" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100755 index 0000000..33cdb42 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png new file mode 100755 index 0000000..54302ec Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png new file mode 100755 index 0000000..79846be Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png new file mode 100755 index 0000000..79846be Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png new file mode 100755 index 0000000..64e1fb9 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png new file mode 100755 index 0000000..a3d8fc7 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29.png new file mode 100755 index 0000000..a3d8fc7 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png new file mode 100755 index 0000000..a5c7c71 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png new file mode 100755 index 0000000..a5c7c71 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png new file mode 100755 index 0000000..92f0457 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40.png new file mode 100755 index 0000000..79846be Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100755 index 0000000..d5770bf Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png new file mode 100755 index 0000000..6711604 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50.png new file mode 100755 index 0000000..f972585 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png new file mode 100755 index 0000000..2f3cc0b Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57.png new file mode 100755 index 0000000..9336ede Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png new file mode 100755 index 0000000..fff81bd Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100755 index 0000000..6711604 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100755 index 0000000..fd4aaa7 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72.png new file mode 100755 index 0000000..df50566 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png new file mode 100755 index 0000000..6d766b1 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76.png new file mode 100755 index 0000000..ef95783 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png new file mode 100755 index 0000000..98b0be9 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png new file mode 100755 index 0000000..9e45c1a Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/Contents.json new file mode 100755 index 0000000..36bbc3c --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_add_friends_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/ic_navbar_add_friends_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/ic_navbar_add_friends_Normal@3x.png new file mode 100755 index 0000000..144db0f Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/addPer.imageset/ic_navbar_add_friends_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/Contents.json new file mode 100755 index 0000000..0909221 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_chat_box_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/ic_chat_box_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/ic_chat_box_Normal@3x.png new file mode 100755 index 0000000..034d3cf Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/chat_box.imageset/ic_chat_box_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/Contents.json new file mode 100755 index 0000000..b5d6c47 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_comment_like_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/ic_comment_like_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/ic_comment_like_Normal@3x.png new file mode 100755 index 0000000..c039ed0 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/dianzan.imageset/ic_comment_like_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/Contents.json new file mode 100755 index 0000000..7ab971d --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_discovery_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/ic_navbar_discovery_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/ic_navbar_discovery_Normal@3x.png new file mode 100755 index 0000000..e8b0c5a Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/discovery_icon.imageset/ic_navbar_discovery_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/Contents.json new file mode 100755 index 0000000..e31cc96 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "IMG_9777_Fotor.jpg", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/IMG_9777_Fotor.jpg b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/IMG_9777_Fotor.jpg new file mode 100755 index 0000000..7b3223d Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/meIcon.imageset/IMG_9777_Fotor.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/Contents.json new file mode 100755 index 0000000..6024481 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_messages_comment_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/ic_messages_comment_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/ic_messages_comment_Normal@3x.png new file mode 100755 index 0000000..b33db56 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pinglun.imageset/ic_messages_comment_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/Contents.json new file mode 100755 index 0000000..b48fcfb --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "WechatIMG46_Fotor.jpg", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/WechatIMG46_Fotor.jpg b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/WechatIMG46_Fotor.jpg new file mode 100755 index 0000000..5c48cf8 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/pokemon.imageset/WechatIMG46_Fotor.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/Contents.json new file mode 100755 index 0000000..00ea621 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_common_arrow_right_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/ic_common_arrow_right_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/ic_common_arrow_right_Normal@3x.png new file mode 100755 index 0000000..87d16c6 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/righ_arrow.imageset/ic_common_arrow_right_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/Contents.json new file mode 100755 index 0000000..39f3b85 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_scan_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/ic_navbar_scan_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/ic_navbar_scan_Normal@3x.png new file mode 100755 index 0000000..9738065 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/scan_icon.imageset/ic_navbar_scan_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/Contents.json new file mode 100755 index 0000000..1b4f0da --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_search_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/ic_navbar_search_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/ic_navbar_search_Normal@3x.png new file mode 100755 index 0000000..6bac94f Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/search_icon.imageset/ic_navbar_search_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/Contents.json new file mode 100755 index 0000000..643d21f --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_support_center_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/ic_personal_tab_support_center_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/ic_personal_tab_support_center_Normal@3x.png new file mode 100755 index 0000000..ea9552a Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_feedback.imageset/ic_personal_tab_support_center_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/Contents.json new file mode 100755 index 0000000..28978bd --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_comment_sync_jike_selected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/ic_comment_sync_jike_selected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/ic_comment_sync_jike_selected_Normal@3x.png new file mode 100755 index 0000000..e86ed6a Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_hehuoren.imageset/ic_comment_sync_jike_selected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/Contents.json new file mode 100755 index 0000000..6e91625 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_setting_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/ic_navbar_setting_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/ic_navbar_setting_Normal@3x.png new file mode 100755 index 0000000..f9a9dcb Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_icon.imageset/ic_navbar_setting_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/Contents.json new file mode 100755 index 0000000..e644bb2 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_kingcard_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/ic_personal_tab_kingcard_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/ic_personal_tab_kingcard_Normal@3x.png new file mode 100755 index 0000000..9d5771f Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_mainliuliang.imageset/ic_personal_tab_kingcard_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/Contents.json new file mode 100755 index 0000000..77d62ad --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_my_topic_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/ic_personal_tab_my_topic_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/ic_personal_tab_my_topic_Normal@3x.png new file mode 100755 index 0000000..c679021 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_quanzi.imageset/ic_personal_tab_my_topic_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/Contents.json new file mode 100755 index 0000000..6923575 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_collection_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/ic_personal_tab_collection_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/ic_personal_tab_collection_Normal@3x.png new file mode 100755 index 0000000..b058df1 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_shoucang.imageset/ic_personal_tab_collection_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/Contents.json new file mode 100755 index 0000000..e7429b9 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_activity_notification_new_messages_4_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/ic_personal_tab_activity_notification_new_messages_4_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/ic_personal_tab_activity_notification_new_messages_4_Normal@3x.png new file mode 100755 index 0000000..19b624d Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/setting_tongzhi.imageset/ic_personal_tab_activity_notification_new_messages_4_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/Contents.json new file mode 100755 index 0000000..9ab41ed --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_messages_share_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/ic_messages_share_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/ic_messages_share_Normal@3x.png new file mode 100755 index 0000000..74c34ce Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/share.imageset/ic_messages_share_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/Contents.json new file mode 100755 index 0000000..e03d259 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_messages_more_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/ic_messages_more_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/ic_messages_more_Normal@3x.png new file mode 100755 index 0000000..14a608a Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/shenglue.imageset/ic_messages_more_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/Contents.json new file mode 100755 index 0000000..4bb721b --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "IMG_9776_Fotor.jpg", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/IMG_9776_Fotor.jpg b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/IMG_9776_Fotor.jpg new file mode 100755 index 0000000..9eb6e78 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/subIcon.imageset/IMG_9776_Fotor.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/Contents.json new file mode 100755 index 0000000..b62312e --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "IMG_9778_Fotor.jpg", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/IMG_9778_Fotor.jpg b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/IMG_9778_Fotor.jpg new file mode 100755 index 0000000..38a915e Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/sucai.imageset/IMG_9778_Fotor.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/Contents.json new file mode 100755 index 0000000..f03e786 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_navbar_chat_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/ic_navbar_chat_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/ic_navbar_chat_Normal@3x.png new file mode 100755 index 0000000..8cd613b Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_normal.imageset/ic_navbar_chat_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/Contents.json new file mode 100755 index 0000000..1da09d6 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_chat_selected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/ic_tabbar_chat_selected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/ic_tabbar_chat_selected_Normal@3x.png new file mode 100755 index 0000000..7b3104b Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_chat_select.imageset/ic_tabbar_chat_selected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/Contents.json new file mode 100755 index 0000000..1bff2b7 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_home_unselected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/ic_tabbar_home_unselected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/ic_tabbar_home_unselected_Normal@3x.png new file mode 100755 index 0000000..687f8f6 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_normal.imageset/ic_tabbar_home_unselected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/Contents.json new file mode 100755 index 0000000..a04abf4 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_home_selected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/ic_tabbar_home_selected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/ic_tabbar_home_selected_Normal@3x.png new file mode 100755 index 0000000..e225c5c Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_home_select.imageset/ic_tabbar_home_selected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/Contents.json new file mode 100755 index 0000000..2fd3d12 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_personal_unselected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/ic_tabbar_personal_unselected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/ic_tabbar_personal_unselected_Normal@3x.png new file mode 100755 index 0000000..f02a1a4 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_normal.imageset/ic_tabbar_personal_unselected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/Contents.json new file mode 100755 index 0000000..d5ad1f0 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_personal_selected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/ic_tabbar_personal_selected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/ic_tabbar_personal_selected_Normal@3x.png new file mode 100755 index 0000000..19efe11 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_me_select.imageset/ic_tabbar_personal_selected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/Contents.json new file mode 100755 index 0000000..6105034 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_activity_unselected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/ic_tabbar_activity_unselected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/ic_tabbar_activity_unselected_Normal@3x.png new file mode 100755 index 0000000..29d263c Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_normal.imageset/ic_tabbar_activity_unselected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/Contents.json new file mode 100755 index 0000000..0103165 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_tabbar_activity_selected_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "original" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/ic_tabbar_activity_selected_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/ic_tabbar_activity_selected_Normal@3x.png new file mode 100755 index 0000000..8de64c3 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/tab_status_select.imageset/ic_tabbar_activity_selected_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/Contents.json b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/Contents.json new file mode 100755 index 0000000..85d9eae --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ic_personal_tab_follower_Normal@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/ic_personal_tab_follower_Normal@3x.png b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/ic_personal_tab_follower_Normal@3x.png new file mode 100755 index 0000000..d3b0318 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Assets.xcassets/touxiang.imageset/ic_personal_tab_follower_Normal@3x.png differ diff --git a/Examples/Jike/SwiftUI_Jike/Base.lproj/LaunchScreen.storyboard b/Examples/Jike/SwiftUI_Jike/Base.lproj/LaunchScreen.storyboard new file mode 100755 index 0000000..865e932 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Examples/Jike/SwiftUI_Jike/Cell/ActivityCell.swift b/Examples/Jike/SwiftUI_Jike/Cell/ActivityCell.swift new file mode 100755 index 0000000..764cd6d --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/ActivityCell.swift @@ -0,0 +1,71 @@ +// +// ActivityCell.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ActivityCell : View { + var nickName:String + var timeStamp:String + var content:String + var imgName:String + var body: some View { + VStack(alignment: .leading){ + HStack(){ + VStack{ + CircleImage(imgName: "pokemon") + .padding(.leading, 20) + .padding(.top, 10) + Spacer() + } + + VStack(alignment: .leading){ + HStack{ + Text(nickName) + .padding(.top, 5) + .padding(.bottom, 2) + Spacer() + } + Text(timeStamp) + .font(Font.system(size: 12)) + .color(Color.gray) + .padding(.bottom, 2) + + Text(content) + .frame(minHeight:50, maxHeight: 300, alignment: .top) + .font(Font.system(size: 15)) + .lineLimit(-1) + Image(imgName) + .padding(.bottom, 20) + .padding(.trailing, 10) + } + + } + HStack{ + Spacer() + Image("dianzan") + Spacer() + Image("pinglun") + Spacer() + Image("share") + Spacer() + Image("shenglue") + } + } + .lineSpacing(0) + .frame(minHeight: 300) + } +} + +#if DEBUG +struct ActivityCell_Previews : PreviewProvider { + static var previews: some View { + ActivityCell(nickName: "皮卡丘", timeStamp: "2小时前",content: "发明一种新吃法#一人食灌蛋手抓饼夹小油条泡菜香肠,挤上番茄酱甜面酱巨好吃呀😘!!灌蛋是灵魂,不能偷懒!!", imgName: "sucai" + ) + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/CategoryRow.swift b/Examples/Jike/SwiftUI_Jike/Cell/CategoryRow.swift new file mode 100755 index 0000000..267e96c --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/CategoryRow.swift @@ -0,0 +1,60 @@ +/* +See LICENSE folder for this sample’s licensing information. + +Abstract: +A view showing a scrollable list of landmarks. +*/ + +import SwiftUI + +struct CategoryRow: View { + var items: [ZoneModel] + + var body: some View { + VStack(alignment: .leading) { + ScrollView(showsHorizontalIndicator: false) { + HStack(alignment: .top, spacing: 0) { + ForEach(self.items.identified(by: \.id)) { zone in + CategoryItem(zone: zone) + } + } + } + } + } +} + +struct CategoryItem: View { + var zone: ZoneModel + var body: some View { + VStack(alignment: .center) { + + VStack{ + Color.white + .frame(width:65,height:65) + .border(Color(red: 218.0/255.0, green: 218.0/255.0, blue: 218.0/255.0),width: 3,cornerRadius: 15) + .cornerRadius(15) + zone + .image(forSize: 55) + .renderingMode(.original) + .cornerRadius(10) + .padding(.top,-68) + + } + Text(zone.name) + .frame(width: 65, height: 20, alignment: .center) + .font(Font.system(size: 12)) + .padding(.top, -8) + } + .padding(.trailing, -5) + .padding(.leading, 10) + } +} + +#if DEBUG +struct CategoryRow_Previews: PreviewProvider { + static var previews: some View { + + CategoryRow(items: zonnData) + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/ChatCell.swift b/Examples/Jike/SwiftUI_Jike/Cell/ChatCell.swift new file mode 100755 index 0000000..9270d4a --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/ChatCell.swift @@ -0,0 +1,40 @@ +// +// ChatCell.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ChatCell : View { + var imageName:String + var title:String + var subTitle:String + var body: some View { + HStack(alignment: .center){ + CircleImage(imgName:imageName) + VStack(alignment: .leading){ + Text(title) + .bold() + .padding(.top, 4) + Text(subTitle) + .color(Color.gray) + .padding(.bottom, 8) + } + Spacer() + } + .padding(.horizontal, 15) + .frame(height: 60) + } + +} + +#if DEBUG +struct ChatCell_Previews : PreviewProvider { + static var previews: some View { + ChatCell(imageName: "chat_box",title: "一条虫",subTitle: "瓦恁出来挨打") + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/CircleImage.swift b/Examples/Jike/SwiftUI_Jike/Cell/CircleImage.swift new file mode 100755 index 0000000..078d8c7 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/CircleImage.swift @@ -0,0 +1,27 @@ +/* +See LICENSE folder for this sample’s licensing information. + +Abstract: +A view that clips an image to a circle and adds a stroke and shadow. +*/ + +import SwiftUI + +struct CircleImage: View { + var imgName:String + var body: some View { + Image(imgName) + .clipShape(Circle()) + .overlay( + + Circle().stroke(Color.white, lineWidth: 1)) + + .shadow(radius: 3) + } +} + +struct CircleImage_Preview: PreviewProvider { + static var previews: some View { + CircleImage(imgName:"meIcon") + } +} diff --git a/Examples/Jike/SwiftUI_Jike/Cell/GYSegmentView.swift b/Examples/Jike/SwiftUI_Jike/Cell/GYSegmentView.swift new file mode 100755 index 0000000..7769b17 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/GYSegmentView.swift @@ -0,0 +1,51 @@ +// +// GYSegmentView.swift +// Landmarks +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 Apple. All rights reserved. +// +import UIKit +import SwiftUI + +struct GYSegmentView : UIViewRepresentable { + func makeCoordinator() -> GYSegmentView.Coordinator { + Coordinator(self) + } + + + var titles:[String] + @Binding var currentPage: Int + + func makeUIView(context: Context) -> UISegmentedControl + { + let segment = UISegmentedControl(items: titles) + segment.addTarget(context.coordinator, action:#selector(Coordinator.updateCurrentPage(sender:)) , for: .valueChanged) + return segment + } + + func updateUIView(_ segment: UISegmentedControl, context: Context) { + + segment.selectedSegmentIndex = currentPage + } + + class Coordinator: NSObject { + var control: GYSegmentView + + init(_ control: GYSegmentView) { + self.control = control + } + + @objc func updateCurrentPage(sender: UISegmentedControl) { + control.currentPage = sender.selectedSegmentIndex + } + } +} + +#if DEBUG +struct GYSegmentView_Previews : PreviewProvider { + static var previews: some View { + GYSegmentView(titles: ["哈哈","你好","无聊"], currentPage: .constant(0)) + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/HomeCell.swift b/Examples/Jike/SwiftUI_Jike/Cell/HomeCell.swift new file mode 100755 index 0000000..3ca170b --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/HomeCell.swift @@ -0,0 +1,92 @@ +// +// HomeCell.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct HomeCell : View { + var zoneName:String + var zoneImgName:String + var userIcon:String + var nickName:String + var timeStamp:String + var content:String + var imgName:String + var body: some View { + VStack(alignment: .leading){ + VStack(){ + + HStack{ + ImageStore.shared.image(name: zoneImgName, size: 60) + .cornerRadius(5) + .padding(.leading, 20) + .padding(.top, 10) + .padding(.bottom, 10) + VStack(alignment: .leading, spacing: 5){ + Text(zoneName) + .font(Font.system(size: 16)) + .bold() + Text(timeStamp) + .font(Font.system(size: 12)) + .color(Color.gray) + .padding(.top, 8) + } + Spacer() + } + .background(Color(red: 245.0/255.0, green: 245.0/255.0, blue: 245.0/255.0)) + + VStack(alignment: .leading){ + Text(content) + .font(Font.system(size: 15)) + .frame(minWidth: 320,minHeight:50, maxHeight: 300, alignment: .leading) + .lineLimit(-1) + ImageStore.shared.image(name: imgName, size: 200) + .padding(.bottom, 10) + } + .padding(.leading, -20) + + HStack(alignment: .center){ + CircleImage(imgName: userIcon) + .padding(.leading, 20) + Text(nickName) + .font(Font.system(size: 14)) + .bold() + Text("发布") + .font(Font.system(size: 13)) + .color(Color.gray) + Spacer() + } + + } + Divider() + .padding(.horizontal,20) + HStack{ + Image("dianzan") + Spacer() + Image("pinglun") + Spacer() + Image("share") + Spacer() + Image("shenglue") + } + .padding(.leading, 20) + .padding(.trailing, 20) + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255.0) + .frame(height: CGFloat(1.0)) + } + .frame(height:450) + } +} + +#if DEBUG +struct HomeCell_Previews : PreviewProvider { + static var previews: some View { + HomeCell(zoneName: "人人都爱宝可梦", zoneImgName: "30_Fotor", userIcon: "pokemon", nickName: "皮卡丘", timeStamp: "2小时前",content: "蒜头丘!\n皮卡皮卡₍₍ (̨̡ ‾᷄ᗣ‾᷅ )̧̢ ₎₎", imgName: "kcc" + ) + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/SettingCell.swift b/Examples/Jike/SwiftUI_Jike/Cell/SettingCell.swift new file mode 100755 index 0000000..20f73c5 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/SettingCell.swift @@ -0,0 +1,38 @@ +// +// SettingCell.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct SettingCell : View { + var imageName:String + var title:String + var body: some View { + VStack{ + HStack(){ + Image(imageName) + Text(title) + Spacer() + } + .padding(.top, 5) + .frame(height: 44) + .padding(.horizontal, 15) + Spacer() + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255.0) + .frame(height: 1) + } + .frame(height: 50) + } +} + +#if DEBUG +struct SettingCell_Previews : PreviewProvider { + static var previews: some View { + SettingCell(imageName: "setting_quanzi", title: "我的圈子") + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Cell/ZoneCell.swift b/Examples/Jike/SwiftUI_Jike/Cell/ZoneCell.swift new file mode 100755 index 0000000..699ebd7 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Cell/ZoneCell.swift @@ -0,0 +1,32 @@ +// +// ZoneCell.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ZoneCell : View { + var imgName:String + var title:String + var body: some View { + VStack{ + Image(imgName) + Text(title) + .font(Font.system(size: 10)) + .color(Color.gray) + .frame(alignment: .center) + } + + } +} + +#if DEBUG +struct ZoneCell_Previews : PreviewProvider { + static var previews: some View { + ZoneCell(imgName: "pokemon", title: "苹果产品爱好者") + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/ChatView.swift b/Examples/Jike/SwiftUI_Jike/ChatView.swift new file mode 100755 index 0000000..7e9102e --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/ChatView.swift @@ -0,0 +1,52 @@ +// +// ChatView.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ChatView : View { + var body: some View { + VStack{ + VStack{ + HStack{ + Spacer() + Text("聊天").bold() + .padding(.leading, 44) + Spacer() + Image("discovery_icon") + .padding(.horizontal, 10) + } + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + .frame(height: 1) + } + Group() { + ChatCell(imageName: "chat_box", title: "招呼",subTitle: "和XX等人的9999个招呼") + HStack{ + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + .frame(height: 10.0) + } + + ChatCell(imageName: "subIcon", title: "墨小埋",subTitle: "[有事找你]") + Divider() + ChatCell(imageName: "subIcon", title: "墨小埋",subTitle: "[有事找你]") + Divider() + ChatCell(imageName: "subIcon", title: "墨小埋",subTitle: "[有事找你]") + Divider() + } + Spacer() + + } + } +} + +#if DEBUG +struct ChatView_Previews : PreviewProvider { + static var previews: some View { + ChatView() + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/ContentView.swift b/Examples/Jike/SwiftUI_Jike/ContentView.swift new file mode 100755 index 0000000..b7421d1 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/ContentView.swift @@ -0,0 +1,40 @@ +// +// ContentView.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct ContentView : View { + + var body: some View { + + GYTabView([Text("233")], titles: ["首页","动态","聊天","我的"], + images: ["tab_home_normal", + "tab_status_normal", + "tab_chat_normal", + "tab_me_normal"], + imageSels: ["tab_home_select", + "tab_status_select", + "tab_chat_select", + "tab_me_select"]) + .edgesIgnoringSafeArea(.top) + } + + func getIndex(item: TabBarItem) -> Int { + return 0 + } + +} + +#if DEBUG +struct ContentView_Previews : PreviewProvider { + static var previews: some View { + ContentView() + + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/GYTabBarViewController.swift b/Examples/Jike/SwiftUI_Jike/GYTabBarViewController.swift new file mode 100755 index 0000000..08f7007 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/GYTabBarViewController.swift @@ -0,0 +1,60 @@ +// +// GYTabBarViewController.swift +// SegmentDemo +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct GYTabBarViewController : UIViewControllerRepresentable { + + func makeCoordinator() -> GYTabBarViewController.Coordinator { + Coordinator(self) + } + + var titles:[String] + var imgs:[String] + var imgSels:[String] + var controllers:[UIViewController] + + func makeUIViewController(context: Context) -> UITabBarController { + + let tabBar = UITabBarController() + var index:Int = 0 + let attributes = [NSAttributedString.Key.foregroundColor: UIColor.black] + for vc in controllers { + let title = titles[index] + let image = UIImage(named: imgs[index]) + let imgSel = UIImage(named: imgSels[index]) + let tabBarItem = UITabBarItem(title: title, image: image, selectedImage: imgSel) + tabBarItem.setTitleTextAttributes(attributes, for: .selected) + vc.tabBarItem = tabBarItem + index += 1 + } + tabBar.viewControllers = controllers + tabBar.delegate = context.coordinator + return tabBar + } + + func updateUIViewController(_ tabBarVC: UITabBarController, context: Context) { + tabBarVC.setViewControllers(controllers, animated: true) + } + + class Coordinator: NSObject, UITabBarControllerDelegate { + var parent: GYTabBarViewController + + init(_ tabBarVC: GYTabBarViewController) { + self.parent = tabBarVC + } + + func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { + + } + + func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { + return true + } + } +} diff --git a/Examples/Jike/SwiftUI_Jike/GYTabView.swift b/Examples/Jike/SwiftUI_Jike/GYTabView.swift new file mode 100755 index 0000000..4a92d5a --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/GYTabView.swift @@ -0,0 +1,45 @@ +// +// GYTabView.swift +// SegmentDemo +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct GYTabView: View { + var titles:[String] + var imgs:[String] + var imgSels:[String] + var viewControllers: [UIHostingController] + + init(_ views: [Page], titles: [String], images:[String], imageSels:[String]) { + + let vc0 = UIHostingController(rootView: HomeView()) + let vc1 = UIHostingController(rootView: ActivityView()) + let vc2 = UIHostingController(rootView: ChatView()) + let vc3 = UIHostingController(rootView: SettingView()) + self.viewControllers = [vc0,vc1,vc2,vc3] as! [UIHostingController] + self.titles = titles + self.imgs = images + self.imgSels = imageSels + } + + + var body: some View { + + GYTabBarViewController(titles: titles, imgs: imgs, imgSels: imgSels, controllers: viewControllers) + } +} + +#if DEBUG +struct GYTabView_Previews : PreviewProvider { + static var previews: some View { + GYTabView([Text("haha"),Text("hah1"),Text("haa")], + titles: ["tab1","tab2","tab3"], + images: ["tab_home_normal","tab_chat_normal","tab_me_normal"], + imageSels: ["tab_home_select","tab_chat_select","tab_me_select"]) + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/HomeView.swift b/Examples/Jike/SwiftUI_Jike/HomeView.swift new file mode 100755 index 0000000..172cd6c --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/HomeView.swift @@ -0,0 +1,92 @@ +// +// HomeView.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct HomeView : View { + let itemId = "关注" + let segItems: [String] = ["关注", "推荐", "附近", "即刻合伙人"] + var body: some View { + VStack{ + VStack{ + VStack{ + Color(red: 1.0, green: 228.0/255.0, blue: 20.0/255) + } + .frame(height: 40) + .edgesIgnoringSafeArea(.top) + HStack{ + HStack{ + Image("search_icon") + .padding(EdgeInsets(top: 5, leading: 5, bottom: 5, trailing: 5)) + Text("优衣库KAWS遭疯抢") + .font(Font.system(size: 14)) + .color(Color.gray) + Spacer() + } + .background( + Color.white + .cornerRadius(5) + ) + .frame(height: 50) + Image("scan_icon") + .padding(.leading, 20) + .padding(.trailing, 10) + } + .padding(.leading, 20) + .background(Color(red: 1.0, green: 228.0/255.0, blue: 20.0/255)) + .padding(.top, -52) + } + + VStack{ + HStack{ + Text("我的圈子") + .font(Font.system(size: 16)) + .bold() + .padding(.leading, 15) + Spacer() + Image("righ_arrow") + .frame(width: 21, height: 36, alignment: .center) + .scaledToFill() + } + .frame(height:36) + CategoryRow(items: zonnData) + } + .padding(.top, -10) + .frame(height: 135) + HStack{ + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + .frame(height: 10.0) + } + .padding(.top, -5) + HStack{ + GYSegmentView(titles: segItems, currentPage: .constant(0)) + .frame(width: 160, alignment: .leading) + Spacer() + } + .padding(.leading, 10) + + List{ + HomeCell(zoneName: "人人都爱宝可梦", zoneImgName: "30_Fotor", userIcon: "pokemon", nickName: "皮卡丘", timeStamp: "2小时前",content: "蒜头丘!\n皮卡皮卡₍₍ (̨̡ ‾᷄ᗣ‾᷅ )̧̢ ₎₎", imgName: "kcc" + ) + HomeCell(zoneName: "人人都爱宝可梦", zoneImgName: "30_Fotor", userIcon: "pokemon", nickName: "皮卡丘", timeStamp: "2小时前",content: "蒜头丘!\n皮卡皮卡₍₍ (̨̡ ‾᷄ᗣ‾᷅ )̧̢ ₎₎", imgName: "kcc" + ) + HomeCell(zoneName: "人人都爱宝可梦", zoneImgName: "30_Fotor", userIcon: "pokemon", nickName: "皮卡丘", timeStamp: "2小时前",content: "蒜头丘!\n皮卡皮卡₍₍ (̨̡ ‾᷄ᗣ‾᷅ )̧̢ ₎₎", imgName: "kcc" + ) + } + .padding(EdgeInsets(top: 0, leading: -20, bottom: 0, trailing: -20)) + } + } +} + +#if DEBUG +struct HomeView_Previews : PreviewProvider { + static var previews: some View { + HomeView() + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Info.plist b/Examples/Jike/SwiftUI_Jike/Info.plist new file mode 100755 index 0000000..1b81c10 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Info.plist @@ -0,0 +1,64 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + 即刻 + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UILaunchStoryboardName + LaunchScreen + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Examples/Jike/SwiftUI_Jike/Models/Datas.swift b/Examples/Jike/SwiftUI_Jike/Models/Datas.swift new file mode 100755 index 0000000..6b9722b --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Models/Datas.swift @@ -0,0 +1,26 @@ +// +// Datas.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +let tabItems: [TabBarItem] = getTabItems() + +func getTabItems() -> [TabBarItem] { + + var items = [TabBarItem]() + let item0 = TabBarItem(id: 0, title: "首页", image: "tab_home_normal", imageSelect: "tab_home_select") + items.append(item0) + let item1 = TabBarItem(id: 1, title: "动态", image: "tab_status_normal", imageSelect: "tab_status_select") + items.append(item1) + let item2 = TabBarItem(id: 2, title: "聊天", image: "tab_chat_normal", imageSelect: "tab_chat_select") + items.append(item2) + let item3 = TabBarItem(id: 3, title: "我的", image: "tab_me_normal", imageSelect: "tab_me_select") + items.append(item3) + + return items +} diff --git a/Examples/Jike/SwiftUI_Jike/Models/TabBarItem.swift b/Examples/Jike/SwiftUI_Jike/Models/TabBarItem.swift new file mode 100755 index 0000000..4fc7ada --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Models/TabBarItem.swift @@ -0,0 +1,16 @@ +// +// TabBarModel.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct TabBarItem: Hashable, Codable, Identifiable { + var id: Int + var title: String + var image: String + var imageSelect: String +} diff --git a/Examples/Jike/SwiftUI_Jike/Models/TabIconInfo.swift b/Examples/Jike/SwiftUI_Jike/Models/TabIconInfo.swift new file mode 100755 index 0000000..701e153 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Models/TabIconInfo.swift @@ -0,0 +1,16 @@ +// +// TabIconInfo.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct TabIcon: Hashable, Codable, Identifiable { + var id: Int + var title: String + var imgName: String +} + diff --git a/Examples/Jike/SwiftUI_Jike/Models/ZoneModel.swift b/Examples/Jike/SwiftUI_Jike/Models/ZoneModel.swift new file mode 100755 index 0000000..19cd422 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Models/ZoneModel.swift @@ -0,0 +1,19 @@ +/* +See LICENSE folder for this sample’s licensing information. + +Abstract: +The model for an individual landmark. +*/ + +import SwiftUI + +struct ZoneModel: Hashable, Codable, Identifiable { + var id: Int + var name: String + var imageName: String + var category: String + + func image(forSize size: Int) -> Image { + ImageStore.shared.image(name: imageName, size: size) + } +} diff --git a/Examples/Jike/SwiftUI_Jike/Preview Content/Preview Assets.xcassets/Contents.json b/Examples/Jike/SwiftUI_Jike/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100755 index 0000000..da4a164 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Examples/Jike/SwiftUI_Jike/Res/30_Fotor.jpg b/Examples/Jike/SwiftUI_Jike/Res/30_Fotor.jpg new file mode 100755 index 0000000..cacc110 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/30_Fotor.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/aihao.jpg b/Examples/Jike/SwiftUI_Jike/Res/aihao.jpg new file mode 100755 index 0000000..115ed42 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/aihao.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/faxian.jpg b/Examples/Jike/SwiftUI_Jike/Res/faxian.jpg new file mode 100755 index 0000000..b09417e Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/faxian.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/jianzhu.jpg b/Examples/Jike/SwiftUI_Jike/Res/jianzhu.jpg new file mode 100755 index 0000000..aa75d7f Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/jianzhu.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/kcc.jpg b/Examples/Jike/SwiftUI_Jike/Res/kcc.jpg new file mode 100755 index 0000000..22c2b48 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/kcc.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/keji.jpg b/Examples/Jike/SwiftUI_Jike/Res/keji.jpg new file mode 100755 index 0000000..5dc24c8 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/keji.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/miao.jpg b/Examples/Jike/SwiftUI_Jike/Res/miao.jpg new file mode 100755 index 0000000..4552e7b Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/miao.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/shadiao.jpg b/Examples/Jike/SwiftUI_Jike/Res/shadiao.jpg new file mode 100755 index 0000000..091eccc Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/shadiao.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/sheying.jpg b/Examples/Jike/SwiftUI_Jike/Res/sheying.jpg new file mode 100755 index 0000000..0a035e4 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/sheying.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/test.jpg b/Examples/Jike/SwiftUI_Jike/Res/test.jpg new file mode 100755 index 0000000..5132503 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/test.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/test1.jpg b/Examples/Jike/SwiftUI_Jike/Res/test1.jpg new file mode 100755 index 0000000..4e91545 Binary files /dev/null and b/Examples/Jike/SwiftUI_Jike/Res/test1.jpg differ diff --git a/Examples/Jike/SwiftUI_Jike/Res/zoneData.json b/Examples/Jike/SwiftUI_Jike/Res/zoneData.json new file mode 100755 index 0000000..b0448e6 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Res/zoneData.json @@ -0,0 +1,38 @@ +[ + { + "name": "发现圈子", + "category": "233", + "id": 1001, + "imgName": "test1" + }, + { + "name": "喵星人的日常", + "category": "233", + "id": 1002, + "imgName": "test1" + }, + { + "name": "沙雕动物世界", + "category": "233", + "id": 1003, + "imgName": "test1" + }, + { + "name": "科技圈大小事", + "category": "233", + "id": 1004, + "imgName": "test1" + }, + { + "name": "今日份摄影", + "category": "333", + "id": 1005, + "imgName": "test1" + }, + { + "name": "一起拍建筑", + "category": "333", + "id": 1006, + "imgName": "test1" + } +] diff --git a/Examples/Jike/SwiftUI_Jike/SceneDelegate.swift b/Examples/Jike/SwiftUI_Jike/SceneDelegate.swift new file mode 100755 index 0000000..574b38a --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/SceneDelegate.swift @@ -0,0 +1,59 @@ +// +// SceneDelegate.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import UIKit +import SwiftUI + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + + // Use a UIHostingController as window root view controller + let window = UIWindow(frame: UIScreen.main.bounds) + window.rootViewController = UIHostingController(rootView: ContentView()) + self.window = window + window.makeKeyAndVisible() + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/Examples/Jike/SwiftUI_Jike/SegmentViewController.swift b/Examples/Jike/SwiftUI_Jike/SegmentViewController.swift new file mode 100755 index 0000000..9c6555e --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/SegmentViewController.swift @@ -0,0 +1,27 @@ +// +// SegmentViewController.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/6. +// Copyright © 2019 alexyang. All rights reserved. +// + +import UIKit +import SwiftUI + +struct SegmentViewController : UIViewControllerRepresentable { + var controllers: [UIViewController] + func makeUIViewController(context: Context) -> UIPageViewController { + let pageViewController = UIPageViewController( + transitionStyle: .scroll, + navigationOrientation: .horizontal) + + return pageViewController + } + + func updateUIViewController(_ pageViewController: UIPageViewController, context: Context) { + pageViewController.setViewControllers( + [controllers[0]], direction: .forward, animated: true) + } + +} diff --git a/Examples/Jike/SwiftUI_Jike/SettingView.swift b/Examples/Jike/SwiftUI_Jike/SettingView.swift new file mode 100755 index 0000000..7bd4311 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/SettingView.swift @@ -0,0 +1,85 @@ +// +// SettingView.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// + +import SwiftUI + +struct SettingView : View { + var body: some View { + VStack{ + VStack{ + Color(red: 1.0, green: 228.0/255.0, blue: 20.0/255) + } + .frame(height: 50) + .edgesIgnoringSafeArea(.top) + VStack{ + HStack{ + Spacer() + Image("setting_icon") + .padding(.horizontal, 15) + .padding(.vertical, 15) + } + Spacer() + } + .frame(height: 100) + .background(Color(red: 1.0, green: 228.0/255.0, blue: 20.0/255) + ) + .padding(.top, -70) + + VStack{ + HStack(alignment: .center){ + CircleImage(imgName:"meIcon") + .padding(.horizontal, 15) + VStack(alignment: .leading){ + Text("瓦恁") + HStack{ + Image("touxiang") + Text("99999") + } + } + .padding(.horizontal, -10) + Spacer() + } + .frame(height: 100) + .background(Color.white + .cornerRadius(10, antialiased: true)) + .shadow(radius: 5) + .padding(.horizontal, 15) + .padding(.vertical, 5) + + Group() { + SettingCell(imageName: "setting_quanzi", title: "我的圈子") + SettingCell(imageName: "setting_shoucang", title: "我的收藏") + SettingCell(imageName: "setting_tongzhi", title: "我的通知") + SettingCell(imageName: "setting_feedback", title: "帮助与反馈") + HStack{ + Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255) + } + .frame(height: 3.0) + SettingCell(imageName: "setting_mainliuliang", title: "免流量") + SettingCell(imageName: "setting_hehuoren", title: "即刻合伙人") + } + .background(Color.white) + .padding(.bottom, -7) + Spacer() + } + .padding(.top, -60) + } + //.edgesIgnoringSafeArea(.top) + .background(Color(red: 240.0/255.0, green: 243.0/255.0, blue: 245.0/255)) + } + + +} + +#if DEBUG +struct SettingView_Previews : PreviewProvider { + static var previews: some View { + SettingView() + } +} +#endif diff --git a/Examples/Jike/SwiftUI_Jike/Tools/UITool.swift b/Examples/Jike/SwiftUI_Jike/Tools/UITool.swift new file mode 100755 index 0000000..6cf4077 --- /dev/null +++ b/Examples/Jike/SwiftUI_Jike/Tools/UITool.swift @@ -0,0 +1,113 @@ +// +// UITool.swift +// SwiftUI_Jike +// +// Created by alexyang on 2019/6/5. +// Copyright © 2019 alexyang. All rights reserved. +// +import UIKit +import SwiftUI + +let zoneData: [ZoneModel] = load("zoneData.json") +let zonnData: [ZoneModel] = getZoneModel() + +func getZoneModel() -> [ZoneModel] { + + let model = ZoneModel(id: 1000, name: "发现圈子", imageName: "faxian", category: "233") + let model0 = ZoneModel(id: 1001, name: "苹果产品爱好者", imageName: "aihao", category: "233") + let model1 = ZoneModel(id: 1002, name: "喵星人的日常", imageName: "miao", category: "233") + let model2 = ZoneModel(id: 1003, name: "沙雕动物世界", imageName: "shadiao", category: "233") + let model3 = ZoneModel(id: 1004, name: "科技圈大小事", imageName: "keji", category: "233") + let model4 = ZoneModel(id: 1004, name: "今日份摄影", imageName: "sheying", category: "233") + let model5 = ZoneModel(id: 1004, name: "一起拍建筑", imageName: "jianzhu", category: "233") + var models = [ZoneModel]() + models.append(model) + models.append(model0) + models.append(model1) + models.append(model2) + models.append(model3) + models.append(model4) + models.append(model5) + + return models +} + +func load(_ filename: String, as type: T.Type = T.self) -> T { + let data: Data + + guard let file = Bundle.main.url(forResource: filename, withExtension: nil) + else { + fatalError("Couldn't find \(filename) in main bundle.") + } + + do { + data = try Data(contentsOf: file) + } catch { + fatalError("Couldn't load \(filename) from main bundle:\n\(error)") + } + + do { + let decoder = JSONDecoder() + return try decoder.decode(T.self, from: data) + } catch { + fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)") + } +} + +final class ImageStore { + fileprivate typealias _ImageDictionary = [String: [Int: CGImage]] + fileprivate var images: _ImageDictionary = [:] + + fileprivate static var originalSize = 250 + fileprivate static var scale = 2 + + static var shared = ImageStore() + + func image(name: String, size: Int) -> Image { + let index = _guaranteeInitialImage(name: name) + + let sizedImage = images.values[index][size] + ?? _sizeImage(images.values[index][ImageStore.originalSize]!, to: size * ImageStore.scale) + images.values[index][size] = sizedImage + + return Image(sizedImage, scale: Length(ImageStore.scale), label: Text(verbatim: name)) + } + + fileprivate func _guaranteeInitialImage(name: String) -> _ImageDictionary.Index { + if let index = images.index(forKey: name) { return index } + + guard + let url = Bundle.main.url(forResource: name, withExtension: "jpg"), + let imageSource = CGImageSourceCreateWithURL(url as NSURL, nil), + let image = CGImageSourceCreateImageAtIndex(imageSource, 0, nil) + else { + fatalError("Couldn't load image \(name).jpg from main bundle.") + } + + images[name] = [ImageStore.originalSize: image] + return images.index(forKey: name)! + } + + fileprivate func _sizeImage(_ image: CGImage, to size: Int) -> CGImage { + guard + let colorSpace = image.colorSpace, + let context = CGContext( + data: nil, + width: size, height: size, + bitsPerComponent: image.bitsPerComponent, + bytesPerRow: image.bytesPerRow, + space: colorSpace, + bitmapInfo: image.bitmapInfo.rawValue) + else { + fatalError("Couldn't create graphics context.") + } + context.interpolationQuality = .high + context.draw(image, in: CGRect(x: 0, y: 0, width: size, height: size)) + + if let sizedImage = context.makeImage() { + return sizedImage + } else { + fatalError("Couldn't resize image.") + } + } +} diff --git a/README.md b/README.md index de70f92..4367730 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Include Layout, UI, Animations, Gestures, Draw and Data. See projects files in ` - [Time Travel](#time-travel) - [Drawing Paths And Shapes](#drawing-paths-and-shapes) - [Animating Views And Transitions](#animating-views-and-transitions) +- [Jike](#jike) - [Flux](#flux) ## Projects @@ -87,11 +88,15 @@ Include Layout, UI, Animations, Gestures, Draw and Data. See projects files in ` +#### Jike + + + #### Flux #### Authors -Thanks for [Jinxiansen](https://github.com/Jinxiansen), [ra1028](https://github.com/ra1028), [timdonnelly](https://github.com/timdonnelly), [TwoLivesLeft](https://github.com/TwoLivesLeft), [devxoul](https://github.com/devxoul), [cmtrounce](https://github.com/cmtrounce), [unixzii](https://github.com/unixzii) for examples project. +Thanks for [Jinxiansen](https://github.com/Jinxiansen), [ra1028](https://github.com/ra1028), [timdonnelly](https://github.com/timdonnelly), [TwoLivesLeft](https://github.com/TwoLivesLeft), [devxoul](https://github.com/devxoul), [cmtrounce](https://github.com/cmtrounce), [unixzii](https://github.com/unixzii), [ra1028](https://github.com/ra1028) for examples project. diff --git a/Resources/Jike.png b/Resources/Jike.png new file mode 100755 index 0000000..05f0508 Binary files /dev/null and b/Resources/Jike.png differ