├── README.md
├── JJClassicsFramework
├── JJClassicsFramework
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── main_badge.imageset
│ │ │ ├── main_badge@2x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_home.imageset
│ │ │ ├── tabbar_home@2x.png
│ │ │ ├── tabbar_home@3x.png
│ │ │ └── Contents.json
│ │ ├── compose_slogan.imageset
│ │ │ ├── compose_slogan@2x.png
│ │ │ ├── compose_slogan@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_profile.imageset
│ │ │ ├── tabbar_profile@2x.png
│ │ │ ├── tabbar_profile@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_discover.imageset
│ │ │ ├── tabbar_discover@2x.png
│ │ │ ├── tabbar_discover@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_background.imageset
│ │ │ ├── tabbar_background@2x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_lbs.imageset
│ │ │ ├── tabbar_compose_lbs@2x.png
│ │ │ ├── tabbar_compose_lbs@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_idea.imageset
│ │ │ ├── tabbar_compose_idea@2x.png
│ │ │ ├── tabbar_compose_idea@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_more.imageset
│ │ │ ├── tabbar_compose_more@2x.png
│ │ │ ├── tabbar_compose_more@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_music.imageset
│ │ │ ├── tabbar_compose_music@2x.png
│ │ │ ├── tabbar_compose_music@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_photo.imageset
│ │ │ ├── tabbar_compose_photo@2x.png
│ │ │ ├── tabbar_compose_photo@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_weibo.imageset
│ │ │ ├── tabbar_compose_weibo@2x.png
│ │ │ ├── tabbar_compose_weibo@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_home_selected.imageset
│ │ │ ├── tabbar_home_selected@2x.png
│ │ │ ├── tabbar_home_selected@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_button.imageset
│ │ │ ├── tabbar_compose_button@2x.png
│ │ │ ├── tabbar_compose_button@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_camera.imageset
│ │ │ ├── tabbar_compose_camera@2x.png
│ │ │ ├── tabbar_compose_camera@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_friend.imageset
│ │ │ ├── tabbar_compose_friend@2x.png
│ │ │ ├── tabbar_compose_friend@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_review.imageset
│ │ │ ├── tabbar_compose_review@2x.png
│ │ │ ├── tabbar_compose_review@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_message_center.imageset
│ │ │ ├── tabbar_message_center@2x.png
│ │ │ ├── tabbar_message_center@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_icon_add.imageset
│ │ │ ├── tabbar_compose_icon_add@2x.png
│ │ │ ├── tabbar_compose_icon_add@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_shooting.imageset
│ │ │ ├── tabbar_compose_shooting@2x.png
│ │ │ ├── tabbar_compose_shooting@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_transfer.imageset
│ │ │ ├── tabbar_compose_transfer@2x.png
│ │ │ ├── tabbar_compose_transfer@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_wbcamera.imageset
│ │ │ ├── tabbar_compose_wbcamera@2x.png
│ │ │ ├── tabbar_compose_wbcamera@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_profile_selected.imageset
│ │ │ ├── tabbar_profile_selected@2x.png
│ │ │ ├── tabbar_profile_selected@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_discover_selected.imageset
│ │ │ ├── tabbar_discover_selected@2x.png
│ │ │ ├── tabbar_discover_selected@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_message_center_selected.imageset
│ │ │ ├── tabbar_message_center_selected@2x.png
│ │ │ ├── tabbar_message_center_selected@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_button_highlighted.imageset
│ │ │ ├── tabbar_compose_button_highlighted@2x.png
│ │ │ ├── tabbar_compose_button_highlighted@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_icon_add_highlighted.imageset
│ │ │ ├── tabbar_compose_icon_add_highlighted@2x.png
│ │ │ ├── tabbar_compose_icon_add_highlighted@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_background_icon_close.imageset
│ │ │ ├── tabbar_compose_background_icon_close@2x.png
│ │ │ ├── tabbar_compose_background_icon_close@3x.png
│ │ │ └── Contents.json
│ │ ├── tabbar_compose_background_icon_return.imageset
│ │ │ ├── tabbar_compose_background_icon_return@2x.png
│ │ │ ├── tabbar_compose_background_icon_return@3x.png
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── JJTabBarVC
│ │ ├── JJTabBarVC.h
│ │ └── JJTabBarVC.m
│ ├── JJViewControllers
│ │ ├── Home
│ │ │ └── Controller
│ │ │ │ ├── JJHomeVC.h
│ │ │ │ └── JJHomeVC.m
│ │ ├── Message
│ │ │ └── Controller
│ │ │ │ ├── JJMessageVC.h
│ │ │ │ └── JJMessageVC.m
│ │ ├── Profile
│ │ │ └── Controller
│ │ │ │ ├── JJProfileVC.h
│ │ │ │ └── JJProfileVC.m
│ │ ├── Discover
│ │ │ └── Controller
│ │ │ │ ├── JJDiscoverVC.h
│ │ │ │ └── JJDiscoverVC.m
│ │ └── Controllers.json
│ ├── AppDelegate.h
│ ├── main.m
│ ├── Info.plist
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ └── AppDelegate.m
└── JJClassicsFramework.xcodeproj
│ ├── project.xcworkspace
│ └── contents.xcworkspacedata
│ └── project.pbxproj
├── LICENSE
└── .gitignore
/README.md:
--------------------------------------------------------------------------------
1 | # JJClassicsFramework
2 | tabbar套navigationBarfr经典架构
3 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/main_badge.imageset/main_badge@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/main_badge.imageset/main_badge@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home.imageset/tabbar_home@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home.imageset/tabbar_home@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home.imageset/tabbar_home@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home.imageset/tabbar_home@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/compose_slogan.imageset/compose_slogan@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/compose_slogan.imageset/compose_slogan@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/compose_slogan.imageset/compose_slogan@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/compose_slogan.imageset/compose_slogan@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile.imageset/tabbar_profile@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile.imageset/tabbar_profile@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile.imageset/tabbar_profile@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile.imageset/tabbar_profile@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover.imageset/tabbar_discover@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover.imageset/tabbar_discover@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover.imageset/tabbar_discover@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover.imageset/tabbar_discover@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_background.imageset/tabbar_background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_background.imageset/tabbar_background@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_lbs.imageset/tabbar_compose_lbs@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_lbs.imageset/tabbar_compose_lbs@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_lbs.imageset/tabbar_compose_lbs@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_lbs.imageset/tabbar_compose_lbs@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_more.imageset/tabbar_compose_more@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_more.imageset/tabbar_compose_more@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_more.imageset/tabbar_compose_more@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_more.imageset/tabbar_compose_more@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_music.imageset/tabbar_compose_music@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_music.imageset/tabbar_compose_music@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_music.imageset/tabbar_compose_music@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_music.imageset/tabbar_compose_music@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_photo.imageset/tabbar_compose_photo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_photo.imageset/tabbar_compose_photo@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_photo.imageset/tabbar_compose_photo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_photo.imageset/tabbar_compose_photo@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_weibo.imageset/tabbar_compose_weibo@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_weibo.imageset/tabbar_compose_weibo@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_weibo.imageset/tabbar_compose_weibo@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_weibo.imageset/tabbar_compose_weibo@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home_selected.imageset/tabbar_home_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home_selected.imageset/tabbar_home_selected@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home_selected.imageset/tabbar_home_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home_selected.imageset/tabbar_home_selected@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button.imageset/tabbar_compose_button@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button.imageset/tabbar_compose_button@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button.imageset/tabbar_compose_button@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button.imageset/tabbar_compose_button@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_camera.imageset/tabbar_compose_camera@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_camera.imageset/tabbar_compose_camera@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_camera.imageset/tabbar_compose_camera@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_camera.imageset/tabbar_compose_camera@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_friend.imageset/tabbar_compose_friend@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_friend.imageset/tabbar_compose_friend@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_friend.imageset/tabbar_compose_friend@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_friend.imageset/tabbar_compose_friend@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_review.imageset/tabbar_compose_review@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_review.imageset/tabbar_compose_review@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_review.imageset/tabbar_compose_review@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_review.imageset/tabbar_compose_review@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center.imageset/tabbar_message_center@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center.imageset/tabbar_message_center@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center.imageset/tabbar_message_center@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center.imageset/tabbar_message_center@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_shooting.imageset/tabbar_compose_shooting@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_shooting.imageset/tabbar_compose_shooting@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_shooting.imageset/tabbar_compose_shooting@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_shooting.imageset/tabbar_compose_shooting@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_transfer.imageset/tabbar_compose_transfer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_transfer.imageset/tabbar_compose_transfer@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_transfer.imageset/tabbar_compose_transfer@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_transfer.imageset/tabbar_compose_transfer@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_wbcamera.imageset/tabbar_compose_wbcamera@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_wbcamera.imageset/tabbar_compose_wbcamera@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_wbcamera.imageset/tabbar_compose_wbcamera@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_wbcamera.imageset/tabbar_compose_wbcamera@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile_selected.imageset/tabbar_profile_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile_selected.imageset/tabbar_profile_selected@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile_selected.imageset/tabbar_profile_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile_selected.imageset/tabbar_profile_selected@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover_selected.imageset/tabbar_discover_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover_selected.imageset/tabbar_discover_selected@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover_selected.imageset/tabbar_discover_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover_selected.imageset/tabbar_discover_selected@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center_selected.imageset/tabbar_message_center_selected@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center_selected.imageset/tabbar_message_center_selected@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center_selected.imageset/tabbar_message_center_selected@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center_selected.imageset/tabbar_message_center_selected@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button_highlighted.imageset/tabbar_compose_button_highlighted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button_highlighted.imageset/tabbar_compose_button_highlighted@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button_highlighted.imageset/tabbar_compose_button_highlighted@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button_highlighted.imageset/tabbar_compose_button_highlighted@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJTabBarVC/JJTabBarVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // JJBaseController.h
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JJTabBarVC : UITabBarController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Home/Controller/JJHomeVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // JJHomeVC.h
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JJHomeVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_close.imageset/tabbar_compose_background_icon_close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_close.imageset/tabbar_compose_background_icon_close@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_close.imageset/tabbar_compose_background_icon_close@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_close.imageset/tabbar_compose_background_icon_close@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_return.imageset/tabbar_compose_background_icon_return@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_return.imageset/tabbar_compose_background_icon_return@2x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_return.imageset/tabbar_compose_background_icon_return@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luowenqi/JJClassicsFramework/HEAD/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_return.imageset/tabbar_compose_background_icon_return@3x.png
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Message/Controller/JJMessageVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // JJMessageVC.h
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JJMessageVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Profile/Controller/JJProfileVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // JJProfileVC.h
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JJProfileVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Discover/Controller/JJDiscoverVC.h:
--------------------------------------------------------------------------------
1 | //
2 | // JJDiscoverVC.h
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface JJDiscoverVC : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // JJClassicsFramework
4 | //
5 | // Created by 罗文琦 on 2017/5/10.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // JJClassicsFramework
4 | //
5 | // Created by 罗文琦 on 2017/5/10.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Home/Controller/JJHomeVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // JJHomeVC.m
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "JJHomeVC.h"
10 |
11 | @interface JJHomeVC ()
12 |
13 | @end
14 |
15 | @implementation JJHomeVC
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 |
20 | }
21 |
22 |
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/main_badge.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "main_badge@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Discover/Controller/JJDiscoverVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // JJDiscoverVC.m
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "JJDiscoverVC.h"
10 |
11 | @interface JJDiscoverVC ()
12 |
13 | @end
14 |
15 | @implementation JJDiscoverVC
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 |
20 | }
21 |
22 |
23 |
24 |
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_background.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_background@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_home@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_home@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/compose_slogan.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "compose_slogan@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "compose_slogan@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_profile@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_profile@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_discover@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_discover@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_idea.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_idea@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_idea@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_lbs.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_lbs@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_lbs@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_more.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_more@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_more@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_button@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_button@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_camera.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_camera@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_camera@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_friend.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_friend@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_friend@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_music.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_music@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_music@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_photo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_photo@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_photo@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_review.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_review@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_review@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_weibo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_weibo@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_weibo@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_home_selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_home_selected@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_home_selected@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_message_center@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_message_center@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_icon_add@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_icon_add@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_shooting.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_shooting@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_shooting@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_transfer.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_transfer@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_transfer@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_wbcamera.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_wbcamera@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_wbcamera@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_discover_selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_discover_selected@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_discover_selected@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_profile_selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_profile_selected@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_profile_selected@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_message_center_selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_message_center_selected@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_message_center_selected@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_button_highlighted.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_button_highlighted@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_button_highlighted@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_close.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_background_icon_close@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_background_icon_close@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_icon_add_highlighted@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_icon_add_highlighted@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/tabbar_compose_background_icon_return.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tabbar_compose_background_icon_return@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "tabbar_compose_background_icon_return@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Controllers.json:
--------------------------------------------------------------------------------
1 |
2 | [
3 | {
4 | "className" : "JJHomeVC",
5 | "title" : "首页",
6 | "imageName" : "tabbar_home",
7 | "selectImageName" : "tabbar_home_selected"
8 | },
9 | {
10 | "className" : "JJMessageVC",
11 | "title" : "消息",
12 | "imageName" : "tabbar_message_center",
13 | "selectImageName" : "tabbar_message_center_selected"
14 | },
15 | {
16 | "className" : "JJDiscoverVC",
17 | "title" : "发现",
18 | "imageName" : "tabbar_discover",
19 | "selectImageName" : "tabbar_discover_selected"
20 | },
21 | {
22 | "className" : "JJProfileVC",
23 | "title" : "我",
24 | "imageName" : "tabbar_profile",
25 | "selectImageName" : "tabbar_profile_selected"
26 | }
27 | ]
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Message/Controller/JJMessageVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // JJMessageVC.m
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "JJMessageVC.h"
10 |
11 | @interface JJMessageVC ()
12 |
13 | @end
14 |
15 | @implementation JJMessageVC
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view.
20 | }
21 |
22 | - (void)didReceiveMemoryWarning {
23 | [super didReceiveMemoryWarning];
24 | // Dispose of any resources that can be recreated.
25 | }
26 |
27 | /*
28 | #pragma mark - Navigation
29 |
30 | // In a storyboard-based application, you will often want to do a little preparation before navigation
31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
32 | // Get the new view controller using [segue destinationViewController].
33 | // Pass the selected object to the new view controller.
34 | }
35 | */
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJViewControllers/Profile/Controller/JJProfileVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // JJProfileVC.m
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "JJProfileVC.h"
10 |
11 | @interface JJProfileVC ()
12 |
13 | @end
14 |
15 | @implementation JJProfileVC
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | // Do any additional setup after loading the view.
20 | }
21 |
22 | - (void)didReceiveMemoryWarning {
23 | [super didReceiveMemoryWarning];
24 | // Dispose of any resources that can be recreated.
25 | }
26 |
27 | /*
28 | #pragma mark - Navigation
29 |
30 | // In a storyboard-based application, you will often want to do a little preparation before navigation
31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
32 | // Get the new view controller using [segue destinationViewController].
33 | // Pass the selected object to the new view controller.
34 | }
35 | */
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 luowenqi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## Build generated
6 | build/
7 | DerivedData/
8 |
9 | ## Various settings
10 | *.pbxuser
11 | !default.pbxuser
12 | *.mode1v3
13 | !default.mode1v3
14 | *.mode2v3
15 | !default.mode2v3
16 | *.perspectivev3
17 | !default.perspectivev3
18 | xcuserdata/
19 |
20 | ## Other
21 | *.moved-aside
22 | *.xcuserstate
23 |
24 | ## Obj-C/Swift specific
25 | *.hmap
26 | *.ipa
27 | *.dSYM.zip
28 | *.dSYM
29 |
30 | # CocoaPods
31 | #
32 | # We recommend against adding the Pods directory to your .gitignore. However
33 | # you should judge for yourself, the pros and cons are mentioned at:
34 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
35 | #
36 | # Pods/
37 |
38 | # Carthage
39 | #
40 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
41 | # Carthage/Checkouts
42 |
43 | Carthage/Build
44 |
45 | # fastlane
46 | #
47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
48 | # screenshots whenever they are needed.
49 | # For more information about the recommended setup visit:
50 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
51 |
52 | fastlane/report.xml
53 | fastlane/screenshots
54 |
55 | #Code Injection
56 | #
57 | # After new code Injection tools there's a generated folder /iOSInjectionProject
58 | # https://github.com/johnno1962/injectionforxcode
59 |
60 | iOSInjectionProject/
61 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIRequiredDeviceCapabilities
26 |
27 | armv7
28 |
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | }
88 | ],
89 | "info" : {
90 | "version" : 1,
91 | "author" : "xcode"
92 | }
93 | }
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/JJTabBarVC/JJTabBarVC.m:
--------------------------------------------------------------------------------
1 | //
2 | // JJBaseController.m
3 | // JJSliderViewController
4 | //
5 | // Created by 罗文琦 on 2017/4/15.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "JJTabBarVC.h"
10 |
11 |
12 | @interface JJTabBarVC ()
13 |
14 | @property(nonatomic , strong) NSMutableArray * controllers;
15 |
16 | @end
17 |
18 | @implementation JJTabBarVC
19 |
20 |
21 | #pragma mark - 指定初始化方法
22 | -(instancetype)init{
23 | if (self = [super init]) {
24 | [self setupUI];
25 | self.view.backgroundColor = [UIColor yellowColor];
26 | }
27 | return self;
28 | }
29 |
30 |
31 | #pragma mark - 设置界面
32 | -(void)setupUI{
33 | //这里使用json的方式,持久化所有的控制器,方便以后的复用
34 | NSURL* jsonURL = [[NSBundle mainBundle] URLForResource:@"Controllers.json" withExtension:nil];
35 | NSData* data = [NSData dataWithContentsOfURL:jsonURL];
36 | //获取到json中的数组
37 | NSArray* jsonArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
38 | //使用数组进行循环创建控制器
39 | [self creatViewController:jsonArray];
40 | self.viewControllers = self.controllers;
41 |
42 |
43 | }
44 |
45 |
46 |
47 |
48 | //创建子控制器
49 | -(void)creatViewController:(NSArray*)jsonArray{
50 | self.controllers = [NSMutableArray arrayWithCapacity:jsonArray.count];
51 |
52 | for (NSInteger i = 0; i< jsonArray.count; i++) {
53 | Class cls = NSClassFromString(jsonArray[i][@"className"]);
54 | UIViewController* VC = [[cls alloc]init];
55 |
56 | VC.view.backgroundColor = [UIColor whiteColor];
57 | //放到导航控制器里面
58 | UINavigationController* nav = [[UINavigationController alloc]initWithRootViewController:VC];
59 | [self.controllers addObject:nav];
60 | //设置文字
61 | VC.title = jsonArray[i][@"title"];
62 | //设置不同状态下的图片
63 | VC.tabBarItem.image = [[UIImage imageNamed:jsonArray[i][@"imageName"]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
64 | VC.tabBarItem.selectedImage = [[UIImage imageNamed:jsonArray[i][@"selectImageName"]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
65 | //设置tabBar的字体颜色
66 | [VC.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]} forState:UIControlStateSelected];
67 | }
68 | }
69 |
70 |
71 | @end
72 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // JJClassicsFramework
4 | //
5 | // Created by 罗文琦 on 2017/5/10.
6 | // Copyright © 2017年 罗文琦. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "JJTabBarVC.h"
11 |
12 | @interface AppDelegate ()
13 |
14 | @end
15 |
16 | @implementation AppDelegate
17 |
18 |
19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
20 |
21 | self.window = [[UIWindow alloc]init];
22 |
23 | JJTabBarVC* tabBatVC = [[JJTabBarVC alloc]init];
24 |
25 | self.window.rootViewController = tabBatVC;
26 |
27 | [self.window makeKeyAndVisible];
28 |
29 |
30 |
31 |
32 |
33 |
34 | return YES;
35 | }
36 |
37 |
38 | - (void)applicationWillResignActive:(UIApplication *)application {
39 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
40 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
41 | }
42 |
43 |
44 | - (void)applicationDidEnterBackground:(UIApplication *)application {
45 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
46 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
47 | }
48 |
49 |
50 | - (void)applicationWillEnterForeground:(UIApplication *)application {
51 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
52 | }
53 |
54 |
55 | - (void)applicationDidBecomeActive:(UIApplication *)application {
56 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
57 | }
58 |
59 |
60 | - (void)applicationWillTerminate:(UIApplication *)application {
61 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
62 | }
63 |
64 |
65 | @end
66 |
--------------------------------------------------------------------------------
/JJClassicsFramework/JJClassicsFramework.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | A44AA04D1EC2C05700A4D566 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA04C1EC2C05700A4D566 /* main.m */; };
11 | A44AA0501EC2C05700A4D566 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA04F1EC2C05700A4D566 /* AppDelegate.m */; };
12 | A44AA0581EC2C05700A4D566 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A44AA0571EC2C05700A4D566 /* Assets.xcassets */; };
13 | A44AA05B1EC2C05700A4D566 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A44AA0591EC2C05700A4D566 /* LaunchScreen.storyboard */; };
14 | A44AA0671EC2C12C00A4D566 /* JJTabBarVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA0661EC2C12C00A4D566 /* JJTabBarVC.m */; };
15 | A44AA0931EC2C82C00A4D566 /* JJDiscoverVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA07E1EC2C82C00A4D566 /* JJDiscoverVC.m */; };
16 | A44AA0941EC2C82C00A4D566 /* JJHomeVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA0841EC2C82C00A4D566 /* JJHomeVC.m */; };
17 | A44AA0951EC2C82C00A4D566 /* JJMessageVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA08A1EC2C82C00A4D566 /* JJMessageVC.m */; };
18 | A44AA0961EC2C82C00A4D566 /* JJProfileVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A44AA0901EC2C82C00A4D566 /* JJProfileVC.m */; };
19 | A44AA0981EC2C8F900A4D566 /* Controllers.json in Resources */ = {isa = PBXBuildFile; fileRef = A44AA0971EC2C8F900A4D566 /* Controllers.json */; };
20 | /* End PBXBuildFile section */
21 |
22 | /* Begin PBXFileReference section */
23 | A44AA0481EC2C05700A4D566 /* JJClassicsFramework.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JJClassicsFramework.app; sourceTree = BUILT_PRODUCTS_DIR; };
24 | A44AA04C1EC2C05700A4D566 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
25 | A44AA04E1EC2C05700A4D566 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
26 | A44AA04F1EC2C05700A4D566 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
27 | A44AA0571EC2C05700A4D566 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
28 | A44AA05A1EC2C05700A4D566 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
29 | A44AA05C1EC2C05700A4D566 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
30 | A44AA0651EC2C12C00A4D566 /* JJTabBarVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JJTabBarVC.h; sourceTree = ""; };
31 | A44AA0661EC2C12C00A4D566 /* JJTabBarVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JJTabBarVC.m; sourceTree = ""; };
32 | A44AA07D1EC2C82C00A4D566 /* JJDiscoverVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JJDiscoverVC.h; sourceTree = ""; };
33 | A44AA07E1EC2C82C00A4D566 /* JJDiscoverVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JJDiscoverVC.m; sourceTree = ""; };
34 | A44AA0831EC2C82C00A4D566 /* JJHomeVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JJHomeVC.h; sourceTree = ""; };
35 | A44AA0841EC2C82C00A4D566 /* JJHomeVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JJHomeVC.m; sourceTree = ""; };
36 | A44AA0891EC2C82C00A4D566 /* JJMessageVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JJMessageVC.h; sourceTree = ""; };
37 | A44AA08A1EC2C82C00A4D566 /* JJMessageVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JJMessageVC.m; sourceTree = ""; };
38 | A44AA08F1EC2C82C00A4D566 /* JJProfileVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JJProfileVC.h; sourceTree = ""; };
39 | A44AA0901EC2C82C00A4D566 /* JJProfileVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JJProfileVC.m; sourceTree = ""; };
40 | A44AA0971EC2C8F900A4D566 /* Controllers.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Controllers.json; sourceTree = ""; };
41 | /* End PBXFileReference section */
42 |
43 | /* Begin PBXFrameworksBuildPhase section */
44 | A44AA0451EC2C05700A4D566 /* Frameworks */ = {
45 | isa = PBXFrameworksBuildPhase;
46 | buildActionMask = 2147483647;
47 | files = (
48 | );
49 | runOnlyForDeploymentPostprocessing = 0;
50 | };
51 | /* End PBXFrameworksBuildPhase section */
52 |
53 | /* Begin PBXGroup section */
54 | A44AA03F1EC2C05700A4D566 = {
55 | isa = PBXGroup;
56 | children = (
57 | A44AA04A1EC2C05700A4D566 /* JJClassicsFramework */,
58 | A44AA0491EC2C05700A4D566 /* Products */,
59 | );
60 | sourceTree = "";
61 | };
62 | A44AA0491EC2C05700A4D566 /* Products */ = {
63 | isa = PBXGroup;
64 | children = (
65 | A44AA0481EC2C05700A4D566 /* JJClassicsFramework.app */,
66 | );
67 | name = Products;
68 | sourceTree = "";
69 | };
70 | A44AA04A1EC2C05700A4D566 /* JJClassicsFramework */ = {
71 | isa = PBXGroup;
72 | children = (
73 | A44AA07A1EC2C82C00A4D566 /* JJViewControllers */,
74 | A44AA0631EC2C0C200A4D566 /* JJTabBarVC */,
75 | A44AA04E1EC2C05700A4D566 /* AppDelegate.h */,
76 | A44AA04F1EC2C05700A4D566 /* AppDelegate.m */,
77 | A44AA0571EC2C05700A4D566 /* Assets.xcassets */,
78 | A44AA0591EC2C05700A4D566 /* LaunchScreen.storyboard */,
79 | A44AA05C1EC2C05700A4D566 /* Info.plist */,
80 | A44AA04B1EC2C05700A4D566 /* Supporting Files */,
81 | );
82 | path = JJClassicsFramework;
83 | sourceTree = "";
84 | };
85 | A44AA04B1EC2C05700A4D566 /* Supporting Files */ = {
86 | isa = PBXGroup;
87 | children = (
88 | A44AA04C1EC2C05700A4D566 /* main.m */,
89 | );
90 | name = "Supporting Files";
91 | sourceTree = "";
92 | };
93 | A44AA0631EC2C0C200A4D566 /* JJTabBarVC */ = {
94 | isa = PBXGroup;
95 | children = (
96 | A44AA0651EC2C12C00A4D566 /* JJTabBarVC.h */,
97 | A44AA0661EC2C12C00A4D566 /* JJTabBarVC.m */,
98 | );
99 | path = JJTabBarVC;
100 | sourceTree = "";
101 | };
102 | A44AA07A1EC2C82C00A4D566 /* JJViewControllers */ = {
103 | isa = PBXGroup;
104 | children = (
105 | A44AA0971EC2C8F900A4D566 /* Controllers.json */,
106 | A44AA07B1EC2C82C00A4D566 /* Discover */,
107 | A44AA0811EC2C82C00A4D566 /* Home */,
108 | A44AA0871EC2C82C00A4D566 /* Message */,
109 | A44AA08D1EC2C82C00A4D566 /* Profile */,
110 | );
111 | path = JJViewControllers;
112 | sourceTree = "";
113 | };
114 | A44AA07B1EC2C82C00A4D566 /* Discover */ = {
115 | isa = PBXGroup;
116 | children = (
117 | A44AA07C1EC2C82C00A4D566 /* Controller */,
118 | A44AA07F1EC2C82C00A4D566 /* Model */,
119 | A44AA0801EC2C82C00A4D566 /* View */,
120 | );
121 | path = Discover;
122 | sourceTree = "";
123 | };
124 | A44AA07C1EC2C82C00A4D566 /* Controller */ = {
125 | isa = PBXGroup;
126 | children = (
127 | A44AA07D1EC2C82C00A4D566 /* JJDiscoverVC.h */,
128 | A44AA07E1EC2C82C00A4D566 /* JJDiscoverVC.m */,
129 | );
130 | path = Controller;
131 | sourceTree = "";
132 | };
133 | A44AA07F1EC2C82C00A4D566 /* Model */ = {
134 | isa = PBXGroup;
135 | children = (
136 | );
137 | path = Model;
138 | sourceTree = "";
139 | };
140 | A44AA0801EC2C82C00A4D566 /* View */ = {
141 | isa = PBXGroup;
142 | children = (
143 | );
144 | path = View;
145 | sourceTree = "";
146 | };
147 | A44AA0811EC2C82C00A4D566 /* Home */ = {
148 | isa = PBXGroup;
149 | children = (
150 | A44AA0821EC2C82C00A4D566 /* Controller */,
151 | A44AA0851EC2C82C00A4D566 /* Model */,
152 | A44AA0861EC2C82C00A4D566 /* View */,
153 | );
154 | path = Home;
155 | sourceTree = "";
156 | };
157 | A44AA0821EC2C82C00A4D566 /* Controller */ = {
158 | isa = PBXGroup;
159 | children = (
160 | A44AA0831EC2C82C00A4D566 /* JJHomeVC.h */,
161 | A44AA0841EC2C82C00A4D566 /* JJHomeVC.m */,
162 | );
163 | path = Controller;
164 | sourceTree = "";
165 | };
166 | A44AA0851EC2C82C00A4D566 /* Model */ = {
167 | isa = PBXGroup;
168 | children = (
169 | );
170 | path = Model;
171 | sourceTree = "";
172 | };
173 | A44AA0861EC2C82C00A4D566 /* View */ = {
174 | isa = PBXGroup;
175 | children = (
176 | );
177 | path = View;
178 | sourceTree = "";
179 | };
180 | A44AA0871EC2C82C00A4D566 /* Message */ = {
181 | isa = PBXGroup;
182 | children = (
183 | A44AA0881EC2C82C00A4D566 /* Controller */,
184 | A44AA08B1EC2C82C00A4D566 /* Model */,
185 | A44AA08C1EC2C82C00A4D566 /* View */,
186 | );
187 | path = Message;
188 | sourceTree = "";
189 | };
190 | A44AA0881EC2C82C00A4D566 /* Controller */ = {
191 | isa = PBXGroup;
192 | children = (
193 | A44AA0891EC2C82C00A4D566 /* JJMessageVC.h */,
194 | A44AA08A1EC2C82C00A4D566 /* JJMessageVC.m */,
195 | );
196 | path = Controller;
197 | sourceTree = "";
198 | };
199 | A44AA08B1EC2C82C00A4D566 /* Model */ = {
200 | isa = PBXGroup;
201 | children = (
202 | );
203 | path = Model;
204 | sourceTree = "";
205 | };
206 | A44AA08C1EC2C82C00A4D566 /* View */ = {
207 | isa = PBXGroup;
208 | children = (
209 | );
210 | path = View;
211 | sourceTree = "";
212 | };
213 | A44AA08D1EC2C82C00A4D566 /* Profile */ = {
214 | isa = PBXGroup;
215 | children = (
216 | A44AA08E1EC2C82C00A4D566 /* Controller */,
217 | A44AA0911EC2C82C00A4D566 /* Model */,
218 | A44AA0921EC2C82C00A4D566 /* View */,
219 | );
220 | path = Profile;
221 | sourceTree = "";
222 | };
223 | A44AA08E1EC2C82C00A4D566 /* Controller */ = {
224 | isa = PBXGroup;
225 | children = (
226 | A44AA08F1EC2C82C00A4D566 /* JJProfileVC.h */,
227 | A44AA0901EC2C82C00A4D566 /* JJProfileVC.m */,
228 | );
229 | path = Controller;
230 | sourceTree = "";
231 | };
232 | A44AA0911EC2C82C00A4D566 /* Model */ = {
233 | isa = PBXGroup;
234 | children = (
235 | );
236 | path = Model;
237 | sourceTree = "";
238 | };
239 | A44AA0921EC2C82C00A4D566 /* View */ = {
240 | isa = PBXGroup;
241 | children = (
242 | );
243 | path = View;
244 | sourceTree = "";
245 | };
246 | /* End PBXGroup section */
247 |
248 | /* Begin PBXNativeTarget section */
249 | A44AA0471EC2C05700A4D566 /* JJClassicsFramework */ = {
250 | isa = PBXNativeTarget;
251 | buildConfigurationList = A44AA05F1EC2C05700A4D566 /* Build configuration list for PBXNativeTarget "JJClassicsFramework" */;
252 | buildPhases = (
253 | A44AA0441EC2C05700A4D566 /* Sources */,
254 | A44AA0451EC2C05700A4D566 /* Frameworks */,
255 | A44AA0461EC2C05700A4D566 /* Resources */,
256 | );
257 | buildRules = (
258 | );
259 | dependencies = (
260 | );
261 | name = JJClassicsFramework;
262 | productName = JJClassicsFramework;
263 | productReference = A44AA0481EC2C05700A4D566 /* JJClassicsFramework.app */;
264 | productType = "com.apple.product-type.application";
265 | };
266 | /* End PBXNativeTarget section */
267 |
268 | /* Begin PBXProject section */
269 | A44AA0401EC2C05700A4D566 /* Project object */ = {
270 | isa = PBXProject;
271 | attributes = {
272 | LastUpgradeCheck = 0830;
273 | ORGANIZATIONNAME = "罗文琦";
274 | TargetAttributes = {
275 | A44AA0471EC2C05700A4D566 = {
276 | CreatedOnToolsVersion = 8.3.2;
277 | ProvisioningStyle = Automatic;
278 | };
279 | };
280 | };
281 | buildConfigurationList = A44AA0431EC2C05700A4D566 /* Build configuration list for PBXProject "JJClassicsFramework" */;
282 | compatibilityVersion = "Xcode 3.2";
283 | developmentRegion = English;
284 | hasScannedForEncodings = 0;
285 | knownRegions = (
286 | en,
287 | Base,
288 | );
289 | mainGroup = A44AA03F1EC2C05700A4D566;
290 | productRefGroup = A44AA0491EC2C05700A4D566 /* Products */;
291 | projectDirPath = "";
292 | projectRoot = "";
293 | targets = (
294 | A44AA0471EC2C05700A4D566 /* JJClassicsFramework */,
295 | );
296 | };
297 | /* End PBXProject section */
298 |
299 | /* Begin PBXResourcesBuildPhase section */
300 | A44AA0461EC2C05700A4D566 /* Resources */ = {
301 | isa = PBXResourcesBuildPhase;
302 | buildActionMask = 2147483647;
303 | files = (
304 | A44AA05B1EC2C05700A4D566 /* LaunchScreen.storyboard in Resources */,
305 | A44AA0981EC2C8F900A4D566 /* Controllers.json in Resources */,
306 | A44AA0581EC2C05700A4D566 /* Assets.xcassets in Resources */,
307 | );
308 | runOnlyForDeploymentPostprocessing = 0;
309 | };
310 | /* End PBXResourcesBuildPhase section */
311 |
312 | /* Begin PBXSourcesBuildPhase section */
313 | A44AA0441EC2C05700A4D566 /* Sources */ = {
314 | isa = PBXSourcesBuildPhase;
315 | buildActionMask = 2147483647;
316 | files = (
317 | A44AA0961EC2C82C00A4D566 /* JJProfileVC.m in Sources */,
318 | A44AA0951EC2C82C00A4D566 /* JJMessageVC.m in Sources */,
319 | A44AA0501EC2C05700A4D566 /* AppDelegate.m in Sources */,
320 | A44AA0931EC2C82C00A4D566 /* JJDiscoverVC.m in Sources */,
321 | A44AA0671EC2C12C00A4D566 /* JJTabBarVC.m in Sources */,
322 | A44AA04D1EC2C05700A4D566 /* main.m in Sources */,
323 | A44AA0941EC2C82C00A4D566 /* JJHomeVC.m in Sources */,
324 | );
325 | runOnlyForDeploymentPostprocessing = 0;
326 | };
327 | /* End PBXSourcesBuildPhase section */
328 |
329 | /* Begin PBXVariantGroup section */
330 | A44AA0591EC2C05700A4D566 /* LaunchScreen.storyboard */ = {
331 | isa = PBXVariantGroup;
332 | children = (
333 | A44AA05A1EC2C05700A4D566 /* Base */,
334 | );
335 | name = LaunchScreen.storyboard;
336 | sourceTree = "";
337 | };
338 | /* End PBXVariantGroup section */
339 |
340 | /* Begin XCBuildConfiguration section */
341 | A44AA05D1EC2C05700A4D566 /* Debug */ = {
342 | isa = XCBuildConfiguration;
343 | buildSettings = {
344 | ALWAYS_SEARCH_USER_PATHS = NO;
345 | CLANG_ANALYZER_NONNULL = YES;
346 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
347 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
348 | CLANG_CXX_LIBRARY = "libc++";
349 | CLANG_ENABLE_MODULES = YES;
350 | CLANG_ENABLE_OBJC_ARC = YES;
351 | CLANG_WARN_BOOL_CONVERSION = YES;
352 | CLANG_WARN_CONSTANT_CONVERSION = YES;
353 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
354 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
355 | CLANG_WARN_EMPTY_BODY = YES;
356 | CLANG_WARN_ENUM_CONVERSION = YES;
357 | CLANG_WARN_INFINITE_RECURSION = YES;
358 | CLANG_WARN_INT_CONVERSION = YES;
359 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
360 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
361 | CLANG_WARN_UNREACHABLE_CODE = YES;
362 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
363 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
364 | COPY_PHASE_STRIP = NO;
365 | DEBUG_INFORMATION_FORMAT = dwarf;
366 | ENABLE_STRICT_OBJC_MSGSEND = YES;
367 | ENABLE_TESTABILITY = YES;
368 | GCC_C_LANGUAGE_STANDARD = gnu99;
369 | GCC_DYNAMIC_NO_PIC = NO;
370 | GCC_NO_COMMON_BLOCKS = YES;
371 | GCC_OPTIMIZATION_LEVEL = 0;
372 | GCC_PREPROCESSOR_DEFINITIONS = (
373 | "DEBUG=1",
374 | "$(inherited)",
375 | );
376 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
377 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
378 | GCC_WARN_UNDECLARED_SELECTOR = YES;
379 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
380 | GCC_WARN_UNUSED_FUNCTION = YES;
381 | GCC_WARN_UNUSED_VARIABLE = YES;
382 | IPHONEOS_DEPLOYMENT_TARGET = 10.3;
383 | MTL_ENABLE_DEBUG_INFO = YES;
384 | ONLY_ACTIVE_ARCH = YES;
385 | SDKROOT = iphoneos;
386 | TARGETED_DEVICE_FAMILY = "1,2";
387 | };
388 | name = Debug;
389 | };
390 | A44AA05E1EC2C05700A4D566 /* Release */ = {
391 | isa = XCBuildConfiguration;
392 | buildSettings = {
393 | ALWAYS_SEARCH_USER_PATHS = NO;
394 | CLANG_ANALYZER_NONNULL = YES;
395 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
396 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
397 | CLANG_CXX_LIBRARY = "libc++";
398 | CLANG_ENABLE_MODULES = YES;
399 | CLANG_ENABLE_OBJC_ARC = YES;
400 | CLANG_WARN_BOOL_CONVERSION = YES;
401 | CLANG_WARN_CONSTANT_CONVERSION = YES;
402 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
403 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
404 | CLANG_WARN_EMPTY_BODY = YES;
405 | CLANG_WARN_ENUM_CONVERSION = YES;
406 | CLANG_WARN_INFINITE_RECURSION = YES;
407 | CLANG_WARN_INT_CONVERSION = YES;
408 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
409 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
410 | CLANG_WARN_UNREACHABLE_CODE = YES;
411 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
412 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
413 | COPY_PHASE_STRIP = NO;
414 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
415 | ENABLE_NS_ASSERTIONS = NO;
416 | ENABLE_STRICT_OBJC_MSGSEND = YES;
417 | GCC_C_LANGUAGE_STANDARD = gnu99;
418 | GCC_NO_COMMON_BLOCKS = YES;
419 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
420 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
421 | GCC_WARN_UNDECLARED_SELECTOR = YES;
422 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
423 | GCC_WARN_UNUSED_FUNCTION = YES;
424 | GCC_WARN_UNUSED_VARIABLE = YES;
425 | IPHONEOS_DEPLOYMENT_TARGET = 10.3;
426 | MTL_ENABLE_DEBUG_INFO = NO;
427 | SDKROOT = iphoneos;
428 | TARGETED_DEVICE_FAMILY = "1,2";
429 | VALIDATE_PRODUCT = YES;
430 | };
431 | name = Release;
432 | };
433 | A44AA0601EC2C05700A4D566 /* Debug */ = {
434 | isa = XCBuildConfiguration;
435 | buildSettings = {
436 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
437 | INFOPLIST_FILE = JJClassicsFramework/Info.plist;
438 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
439 | PRODUCT_BUNDLE_IDENTIFIER = com.luowenqi.JJClassicsFramework;
440 | PRODUCT_NAME = "$(TARGET_NAME)";
441 | };
442 | name = Debug;
443 | };
444 | A44AA0611EC2C05700A4D566 /* Release */ = {
445 | isa = XCBuildConfiguration;
446 | buildSettings = {
447 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
448 | INFOPLIST_FILE = JJClassicsFramework/Info.plist;
449 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
450 | PRODUCT_BUNDLE_IDENTIFIER = com.luowenqi.JJClassicsFramework;
451 | PRODUCT_NAME = "$(TARGET_NAME)";
452 | };
453 | name = Release;
454 | };
455 | /* End XCBuildConfiguration section */
456 |
457 | /* Begin XCConfigurationList section */
458 | A44AA0431EC2C05700A4D566 /* Build configuration list for PBXProject "JJClassicsFramework" */ = {
459 | isa = XCConfigurationList;
460 | buildConfigurations = (
461 | A44AA05D1EC2C05700A4D566 /* Debug */,
462 | A44AA05E1EC2C05700A4D566 /* Release */,
463 | );
464 | defaultConfigurationIsVisible = 0;
465 | defaultConfigurationName = Release;
466 | };
467 | A44AA05F1EC2C05700A4D566 /* Build configuration list for PBXNativeTarget "JJClassicsFramework" */ = {
468 | isa = XCConfigurationList;
469 | buildConfigurations = (
470 | A44AA0601EC2C05700A4D566 /* Debug */,
471 | A44AA0611EC2C05700A4D566 /* Release */,
472 | );
473 | defaultConfigurationIsVisible = 0;
474 | defaultConfigurationName = Release;
475 | };
476 | /* End XCConfigurationList section */
477 | };
478 | rootObject = A44AA0401EC2C05700A4D566 /* Project object */;
479 | }
480 |
--------------------------------------------------------------------------------