├── README.md ├── img ├── customClass.png ├── customcell.png ├── customchat.png ├── frame.png └── launch.gif ├── 家教.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── 家教.xcscmblueprint │ └── xcuserdata │ │ └── goofy.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── goofy.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── xcschememanagement.plist │ └── 家教.xcscheme ├── 家教 ├── .DS_Store ├── 16.png ├── 18.png ├── 2.png ├── AFNetworking │ ├── AFHTTPRequestOperation.h │ ├── AFHTTPRequestOperation.m │ ├── AFHTTPRequestOperationManager.h │ ├── AFHTTPRequestOperationManager.m │ ├── AFHTTPSessionManager.h │ ├── AFHTTPSessionManager.m │ ├── AFNetworkReachabilityManager.h │ ├── AFNetworkReachabilityManager.m │ ├── AFNetworking.h │ ├── AFSecurityPolicy.h │ ├── AFSecurityPolicy.m │ ├── AFURLConnectionOperation.h │ ├── AFURLConnectionOperation.m │ ├── AFURLRequestSerialization.h │ ├── AFURLRequestSerialization.m │ ├── AFURLResponseSerialization.h │ ├── AFURLResponseSerialization.m │ ├── AFURLSessionManager.h │ └── AFURLSessionManager.m ├── AddMessageViewController.swift ├── AppDelegate.swift ├── Assets.xcassets │ ├── .DS_Store │ ├── AppIcon.appiconset │ │ ├── AppIcon29x29@2x-1.png │ │ ├── AppIcon29x29@2x.png │ │ ├── AppIcon29x29@3x-1.png │ │ ├── AppIcon29x29@3x.png │ │ ├── AppIcon40x40@2x-1.png │ │ ├── AppIcon40x40@2x.png │ │ ├── AppIcon40x40@3x.png │ │ ├── AppIcon60x60@2x.png │ │ ├── AppIcon60x60@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── DianPing │ │ ├── Contents.json │ │ ├── dropdown_anim__0001.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0001@2x.png │ │ ├── dropdown_anim__00010.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00010@2x.png │ │ ├── dropdown_anim__00011.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00011@2x.png │ │ ├── dropdown_anim__00012.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00012@2x.png │ │ ├── dropdown_anim__00013.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00013@2x.png │ │ ├── dropdown_anim__00014.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00014@2x.png │ │ ├── dropdown_anim__00015.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00015@2x.png │ │ ├── dropdown_anim__00016.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00016@2x.png │ │ ├── dropdown_anim__00017.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00017@2x.png │ │ ├── dropdown_anim__00018.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00018@2x.png │ │ ├── dropdown_anim__00019.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00019@2x.png │ │ ├── dropdown_anim__0002.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0002@2x.png │ │ ├── dropdown_anim__00020.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00020@2x.png │ │ ├── dropdown_anim__00021.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00021@2x.png │ │ ├── dropdown_anim__00022.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00022@2x.png │ │ ├── dropdown_anim__00023.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00023@2x.png │ │ ├── dropdown_anim__00024.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00024@2x.png │ │ ├── dropdown_anim__00025.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00025@2x.png │ │ ├── dropdown_anim__00026.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00026@2x.png │ │ ├── dropdown_anim__00027.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00027@2x.png │ │ ├── dropdown_anim__00028.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00028@2x.png │ │ ├── dropdown_anim__00029.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00029@2x.png │ │ ├── dropdown_anim__0003.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0003@2x.png │ │ ├── dropdown_anim__00030.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00030@2x.png │ │ ├── dropdown_anim__00031.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00031@2x.png │ │ ├── dropdown_anim__00032.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00032@2x.png │ │ ├── dropdown_anim__00033.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00033@2x.png │ │ ├── dropdown_anim__00034.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00034@2x.png │ │ ├── dropdown_anim__00035.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00035@2x.png │ │ ├── dropdown_anim__00036.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00036@2x.png │ │ ├── dropdown_anim__00037.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00037@2x.png │ │ ├── dropdown_anim__00038.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00038@2x.png │ │ ├── dropdown_anim__00039.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00039@2x.png │ │ ├── dropdown_anim__0004.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0004@2x.png │ │ ├── dropdown_anim__00040.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00040@2x.png │ │ ├── dropdown_anim__00041.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00041@2x.png │ │ ├── dropdown_anim__00042.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00042@2x.png │ │ ├── dropdown_anim__00043.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00043@2x.png │ │ ├── dropdown_anim__00044.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00044@2x.png │ │ ├── dropdown_anim__00045.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00045@2x.png │ │ ├── dropdown_anim__00046.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00046@2x.png │ │ ├── dropdown_anim__00047.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00047@2x.png │ │ ├── dropdown_anim__00048.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00048@2x.png │ │ ├── dropdown_anim__00049.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00049@2x.png │ │ ├── dropdown_anim__0005.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0005@2x.png │ │ ├── dropdown_anim__00050.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00050@2x.png │ │ ├── dropdown_anim__00051.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00051@2x.png │ │ ├── dropdown_anim__00052.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00052@2x.png │ │ ├── dropdown_anim__00053.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00053@2x.png │ │ ├── dropdown_anim__00054.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00054@2x.png │ │ ├── dropdown_anim__00055.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00055@2x.png │ │ ├── dropdown_anim__00056.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00056@2x.png │ │ ├── dropdown_anim__00057.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00057@2x.png │ │ ├── dropdown_anim__00058.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00058@2x.png │ │ ├── dropdown_anim__00059.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00059@2x.png │ │ ├── dropdown_anim__0006.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0006@2x.png │ │ ├── dropdown_anim__00060.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__00060@2x.png │ │ ├── dropdown_anim__0007.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0007@2x.png │ │ ├── dropdown_anim__0008.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0008@2x.png │ │ ├── dropdown_anim__0009.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_anim__0009@2x.png │ │ ├── dropdown_loading_01.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_loading_01@2x.png │ │ ├── dropdown_loading_02.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_loading_02@2x.png │ │ └── dropdown_loading_03.imageset │ │ │ ├── Contents.json │ │ │ └── dropdown_loading_03@2x.png │ ├── bg_login.imageset │ │ ├── Contents.json │ │ └── bg_login.png │ ├── boy.imageset │ │ ├── Contents.json │ │ └── boy.png │ ├── cell │ │ ├── .DS_Store │ │ ├── Contents.json │ │ ├── animation │ │ │ ├── Contents.json │ │ │ ├── chat_animation1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation1.png │ │ │ ├── chat_animation2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation2.png │ │ │ ├── chat_animation3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation3.png │ │ │ ├── chat_animation_white1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation_white1.png │ │ │ ├── chat_animation_white2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation_white2.png │ │ │ ├── chat_animation_white3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── chat_animation_white3.png │ │ │ └── headImage.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── headImage.png │ │ ├── left_message_back.imageset │ │ │ ├── Contents.json │ │ │ └── chatfrom_bg_normal.png │ │ └── right_message_back.imageset │ │ │ ├── Contents.json │ │ │ └── chatto_bg_normal.png │ ├── freeTime │ │ ├── Contents.json │ │ ├── ic_week_course_half_bg_0.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_tuhuang.png │ │ │ └── ic_week_course_half_bg_tuhuang@2x.png │ │ ├── ic_week_course_half_bg_1.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_3baedd.png │ │ │ └── ic_week_course_half_bg_3baedd@2x.png │ │ ├── ic_week_course_half_bg_10.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_e3759c.png │ │ │ └── ic_week_course_half_bg_e3759c@2x.png │ │ ├── ic_week_course_half_bg_11.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_ededed.png │ │ │ └── ic_week_course_half_bg_ededed@2x.png │ │ ├── ic_week_course_half_bg_12.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_f9b844.png │ │ │ └── ic_week_course_half_bg_f9b844@2x.png │ │ ├── ic_week_course_half_bg_13.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_f38181.png │ │ │ └── ic_week_course_half_bg_f38181@2x.png │ │ ├── ic_week_course_half_bg_14.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_kafei.png │ │ │ └── ic_week_course_half_bg_kafei@2x.png │ │ ├── ic_week_course_half_bg_15.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_molan.png │ │ │ └── ic_week_course_half_bg_molan@2x.png │ │ ├── ic_week_course_half_bg_2.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_6f92e2.png │ │ │ └── ic_week_course_half_bg_6f92e2@2x.png │ │ ├── ic_week_course_half_bg_3.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_9d86d0.png │ │ │ └── ic_week_course_half_bg_9d86d0@2x.png │ │ ├── ic_week_course_half_bg_4.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_53ae91.png │ │ │ └── ic_week_course_half_bg_53ae91@2x.png │ │ ├── ic_week_course_half_bg_5.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_92c03c.png │ │ │ └── ic_week_course_half_bg_92c03c@2x.png │ │ ├── ic_week_course_half_bg_6.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_bohelv.png │ │ │ └── ic_week_course_half_bg_bohelv@2x.png │ │ ├── ic_week_course_half_bg_7.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_cheng.png │ │ │ └── ic_week_course_half_bg_cheng@2x.png │ │ └── ic_week_course_half_bg_8.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_week_course_half_bg_cyan.png │ │ │ └── ic_week_course_half_bg_cyan@2x.png │ ├── girl-1.imageset │ │ ├── Contents.json │ │ └── girl.png │ ├── girl.imageset │ │ ├── Contents.json │ │ └── girl.png │ ├── input │ │ ├── Contents.json │ │ ├── chat_send_message.imageset │ │ │ ├── Contents.json │ │ │ └── chat_send_message.png │ │ ├── chat_take_picture.imageset │ │ │ ├── Chat_take_picture.png │ │ │ └── Contents.json │ │ └── chat_voice_record.imageset │ │ │ ├── Contents.json │ │ │ └── chat_voice_record.png │ ├── launch │ │ ├── Contents.json │ │ └── launch.imageset │ │ │ ├── Contents.json │ │ │ ├── launch@2x.png │ │ │ └── launch@3x.png │ ├── message.imageset │ │ ├── Contents.json │ │ └── message.png │ ├── navigationbar_back.imageset │ │ ├── Contents.json │ │ ├── navigationbar_back@2x.png │ │ └── navigationbar_back@3x.png │ ├── new_feature_share_false.imageset │ │ ├── Contents.json │ │ └── new_feature_share_false@2x.png │ ├── new_feature_share_true.imageset │ │ ├── Contents.json │ │ └── new_feature_share_true@2x.png │ ├── profile │ │ ├── Contents.json │ │ ├── collect.imageset │ │ │ ├── Contents.json │ │ │ └── collect@2x.png │ │ ├── footprint.imageset │ │ │ ├── Contents.json │ │ │ └── footprint@2x.png │ │ ├── freeTimeTable.imageset │ │ │ ├── Contents.json │ │ │ └── freeTimeTable@2x.png │ │ ├── historyActivity.imageset │ │ │ ├── Contents.json │ │ │ └── historyActivity@2x.png │ │ ├── mySetting.imageset │ │ │ ├── Contents.json │ │ │ └── mySetting@2x.png │ │ ├── realName.imageset │ │ │ ├── Contents.json │ │ │ └── realName@2x.png │ │ └── setting.imageset │ │ │ ├── Contents.json │ │ │ └── setting.png │ ├── tabbar_compose_icon_add.imageset │ │ ├── Contents.json │ │ ├── tabbar_compose_icon_add@2x.png │ │ └── tabbar_compose_icon_add@3x.png │ ├── tabbar_compose_icon_add_highlighted.imageset │ │ ├── Contents.json │ │ ├── tabbar_compose_icon_add_highlighted@2x.png │ │ └── tabbar_compose_icon_add_highlighted@3x.png │ ├── tabbar_compose_idea.imageset │ │ ├── Contents.json │ │ ├── tabbar_compose_idea@2x.png │ │ └── tabbar_compose_idea@3x.png │ ├── touxiang.imageset │ │ ├── Contents.json │ │ └── touxiang.jpeg │ └── xingxing.imageset │ │ ├── Contents.json │ │ └── xingxing_yellow@2x.png ├── Base.lproj │ └── LaunchScreen.storyboard ├── Bridging-Header.h ├── CannotLoginViiewController.swift ├── ChatListTableViewCell.swift ├── ChatListTableViewCell.xib ├── ChatListViewController.swift ├── CustomAlertView.swift ├── CustomFrauleinViewCell.swift ├── CustomFrauleinViewCell.xib ├── CustomTextField.swift ├── DeviceData.swift ├── FamilyInfoViewController.swift ├── FindFamilyAndVolunController.swift ├── FreeTimeSettingViewController.swift ├── FreeTimeTableViewController.swift ├── GetData.h ├── GetData.m ├── GuillotineMenuSegue.swift ├── GuillotineMenuTransitionAnimation.swift ├── GuillotineMenuViewController.swift ├── HistoryActivityViewController.swift ├── HomeTabBarView.swift ├── HomeTabBarViewController.swift ├── HttpRequest.swift ├── Info.plist ├── LoginViewController.swift ├── MJExtension │ ├── MJDictionaryCache.h │ ├── MJDictionaryCache.m │ ├── MJExtension.h │ ├── MJExtensionConst.h │ ├── MJExtensionConst.m │ ├── MJFoundation.h │ ├── MJFoundation.m │ ├── MJProperty.h │ ├── MJProperty.m │ ├── MJPropertyKey.h │ ├── MJPropertyKey.m │ ├── MJPropertyType.h │ ├── MJPropertyType.m │ ├── NSObject+MJClass.h │ ├── NSObject+MJClass.m │ ├── NSObject+MJCoding.h │ ├── NSObject+MJCoding.m │ ├── NSObject+MJKeyValue.h │ ├── NSObject+MJKeyValue.m │ ├── NSObject+MJProperty.h │ ├── NSObject+MJProperty.m │ ├── NSString+MJExtension.h │ └── NSString+MJExtension.m ├── MJRefresh │ ├── Base │ │ ├── MJRefreshAutoFooter.h │ │ ├── MJRefreshAutoFooter.m │ │ ├── MJRefreshBackFooter.h │ │ ├── MJRefreshBackFooter.m │ │ ├── MJRefreshComponent.h │ │ ├── MJRefreshComponent.m │ │ ├── MJRefreshFooter.h │ │ ├── MJRefreshFooter.m │ │ ├── MJRefreshHeader.h │ │ └── MJRefreshHeader.m │ ├── Custom │ │ ├── Footer │ │ │ ├── Auto │ │ │ │ ├── MJRefreshAutoGifFooter.h │ │ │ │ ├── MJRefreshAutoGifFooter.m │ │ │ │ ├── MJRefreshAutoNormalFooter.h │ │ │ │ ├── MJRefreshAutoNormalFooter.m │ │ │ │ ├── MJRefreshAutoStateFooter.h │ │ │ │ └── MJRefreshAutoStateFooter.m │ │ │ └── Back │ │ │ │ ├── MJRefreshBackGifFooter.h │ │ │ │ ├── MJRefreshBackGifFooter.m │ │ │ │ ├── MJRefreshBackNormalFooter.h │ │ │ │ ├── MJRefreshBackNormalFooter.m │ │ │ │ ├── MJRefreshBackStateFooter.h │ │ │ │ └── MJRefreshBackStateFooter.m │ │ └── Header │ │ │ ├── MJRefreshGifHeader.h │ │ │ ├── MJRefreshGifHeader.m │ │ │ ├── MJRefreshNormalHeader.h │ │ │ ├── MJRefreshNormalHeader.m │ │ │ ├── MJRefreshStateHeader.h │ │ │ └── MJRefreshStateHeader.m │ ├── LoadAlert.swift │ ├── LoadAlert.xib │ ├── MJRefresh.bundle │ │ └── arrow@2x.png │ ├── MJRefresh.h │ ├── MJRefreshConst.h │ ├── MJRefreshConst.m │ ├── UIScrollView+MJExtension.h │ ├── UIScrollView+MJExtension.m │ ├── UIScrollView+MJRefresh.h │ ├── UIScrollView+MJRefresh.m │ ├── UIView+MJExtension.h │ └── UIView+MJExtension.m ├── Main.storyboard ├── Parents.h ├── Parents.m ├── ProfileSetViewController.swift ├── RealName ViewController.swift ├── SearchViewController.swift ├── SignUpViewController.swift ├── Student.h ├── Student.m ├── SystemSettingVewController.swift ├── UIColorExtension.swift ├── UIViewExtension.swift ├── UUChat │ ├── ChatViewController.swift │ ├── UUChatLeftMessageCell.swift │ ├── UUChatRightMessageCell.swift │ └── UUInputView.swift ├── ViewController.swift ├── __.xcdatamodeld │ ├── .xccurrentversion │ └── __.xcdatamodel │ │ └── contents ├── add-1.png ├── add-2.png ├── add-3.png ├── add-4.png ├── bg_login.png ├── bg_setr.png ├── boy.png ├── bt_login.png ├── bt_setr_submit.png ├── bt_signin.png ├── camera.png ├── cellCollect.png ├── cellComment.png ├── cellLike.png ├── cell_share.png ├── cell_share24px.png ├── collect.png ├── collect_selecte.png ├── editMyProfile.png ├── girl.png ├── ic_menuL@3x.png ├── ic_menuRotatedL@3x.png ├── kechengbiaoBg.png ├── libraries │ └── extends │ │ ├── QQSDK │ │ └── .DS_Store │ │ ├── SinaWeiboSDK │ │ └── .DS_Store │ │ └── WeChatSDK │ │ └── .DS_Store ├── line.png ├── message.png ├── messageCountImage.png ├── navigationbar_back@2x.png ├── navigationbar_back@3x.png ├── personalIDcard.png ├── profile-Like.png ├── progile-2.png ├── progile-zan.png ├── search_bar.png └── setting.png ├── 家教Tests ├── Info.plist └── __Tests.swift └── 家教UITests ├── Info.plist └── __UITests.swift /README.md: -------------------------------------------------------------------------------- 1 | ## FamilyEducationApp 2 | > ####开发环境:xcode 7.1 /ios >= 8.0 3 | ###项目简介 4 | >框架采用MVC结构。按功能界面划分。 5 | Model存放对应功能模块的数据模型 6 | View存放对应功能界面的View视图和重定义视图 7 | Controller存放对应功能视图的视图控制器。 8 | ####项目展示图片 9 | 启动图片 10 | ![launch](https://github.com/mgoofyy/FamilyEducationApp/blob/master/img/launch.gif) 11 | #####Other目录存放内容 12 | AppDelegate.swift 13 | 以及swift oc桥接头文件 14 | 系统的一些单例数据 15 | DeviceData.swift 16 | Extension 17 | 用户自定义的一些公共的类拓展。 18 | 19 | #####外部引入的一些框架 20 | * MJRefresh 21 | * AFNetWorking 22 | * MJExtension 23 | 等等 24 | 25 | #####项目注意事项 26 | 图片暂时未归类。使用较多的和 尺寸较为规范的 @2x 和 @3x 放入Assets.xcassets 27 | 测试图片暂时放入ImageE目录 图片格式规定注明@2x 和 @3X 28 | 程序支持CoreData本地持久数据化存储,加载网络数据采用 异步多线程网络请求,经常使用的数据需加入缓存 29 | #####自定义视图 30 | * 自定义消息显示 31 | 文件CustomFrauleinViewCell.swift 自适应高度,假如NSCache缓存,滑动不会出现内存暴增 32 | 图片展示 33 | 34 | 35 | ![cell](https://github.com/mgoofyy/FamilyEducationApp/blob/master/img/customcell.png) 36 | * 自定义聊天 37 | UUChat StoryBoard布局。之前github一个大牛写的。可以直接拿来用的。用的时候把UUchat拖过去和storyBoard文件拖过去。做好关联即可 38 | 图片展示 39 | 40 | ![cell](https://github.com/mgoofyy/FamilyEducationApp/blob/master/img/customchat.png) 41 | * 自定义课程表视图 42 | 这个是用贝塞尔曲线画出来的。当然也会有其他的方法。小编goofyy就抛砖引玉啦。大家尽管自己根据自己的想法尽管做。 43 | 图片展示 44 | 45 | ![cell](https://github.com/mgoofyy/FamilyEducationApp/blob/master/img/customClass.png) 46 | 47 | 48 | #### License 49 | 50 | 本项目采用 MIT license 开源,你可以利用采用该协议的代码做任何事情,只需要继续继承 MIT 协议即可。 51 | 52 | -------------------------------------------------------------------------------- /img/customClass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/img/customClass.png -------------------------------------------------------------------------------- /img/customcell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/img/customcell.png -------------------------------------------------------------------------------- /img/customchat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/img/customchat.png -------------------------------------------------------------------------------- /img/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/img/frame.png -------------------------------------------------------------------------------- /img/launch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/img/launch.gif -------------------------------------------------------------------------------- /家教.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /家教.xcodeproj/project.xcworkspace/xcshareddata/家教.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "D43F6249EE6402871BF0AC145C87EDB4E0DABFC3", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "0B62AB67B7453DE29F3BBA14543BA036368D44CB" : 0, 8 | "D43F6249EE6402871BF0AC145C87EDB4E0DABFC3" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "05D1D08F-B886-4D58-AF24-0107B1AA890C", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "0B62AB67B7453DE29F3BBA14543BA036368D44CB" : "..", 13 | "D43F6249EE6402871BF0AC145C87EDB4E0DABFC3" : "%E5%AE%B6%E6%95%99\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "家教", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "家教.xcodeproj", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/goooooooofy\/NSURLSession-Download.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "0B62AB67B7453DE29F3BBA14543BA036368D44CB" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/git.coding.net\/ihat\/FamilyEducationIOS.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "D43F6249EE6402871BF0AC145C87EDB4E0DABFC3" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /家教.xcodeproj/project.xcworkspace/xcuserdata/goofy.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教.xcodeproj/project.xcworkspace/xcuserdata/goofy.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /家教.xcodeproj/xcuserdata/goofy.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | 家教.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | FC3F278E1BD4F2BB00CE0737 16 | 17 | primary 18 | 19 | 20 | FC3F27A51BD4F2BB00CE0737 21 | 22 | primary 23 | 24 | 25 | FC3F27B01BD4F2BB00CE0737 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /家教/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/.DS_Store -------------------------------------------------------------------------------- /家教/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/16.png -------------------------------------------------------------------------------- /家教/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/18.png -------------------------------------------------------------------------------- /家教/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/2.png -------------------------------------------------------------------------------- /家教/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | // AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 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 13 | // all 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 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import 25 | 26 | #ifndef _AFNETWORKING_ 27 | #define _AFNETWORKING_ 28 | 29 | #import "AFURLRequestSerialization.h" 30 | #import "AFURLResponseSerialization.h" 31 | #import "AFSecurityPolicy.h" 32 | #if !TARGET_OS_WATCH 33 | #import "AFNetworkReachabilityManager.h" 34 | #import "AFURLConnectionOperation.h" 35 | #import "AFHTTPRequestOperation.h" 36 | #import "AFHTTPRequestOperationManager.h" 37 | #endif 38 | 39 | #if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) || \ 40 | ( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 ) || \ 41 | TARGET_OS_WATCH ) 42 | #import "AFURLSessionManager.h" 43 | #import "AFHTTPSessionManager.h" 44 | #endif 45 | 46 | #endif /* _AFNETWORKING_ */ 47 | -------------------------------------------------------------------------------- /家教/AddMessageViewController.swift: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // AddMessageViewController.swift 4 | // 家教 5 | // 6 | // Created by goofygao on 15/11/4. 7 | // Copyright © 2015年 goofyy. All rights reserved. 8 | // 9 | 10 | import UIKit 11 | 12 | class AddMessageViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | // self.initView() 17 | } 18 | 19 | 20 | /** 21 | * 初始化view 22 | */ 23 | 24 | func initView() { 25 | let rightButton = UIButton(type: .Custom) 26 | rightButton.tintColor = UIColor.redColor() 27 | rightButton.titleLabel?.text = "发布" 28 | rightButton.sizeToFit() 29 | let rightItemDone = UIBarButtonItem(customView: rightButton) 30 | self.navigationItem.rightBarButtonItem = rightItemDone 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /家教/Assets.xcassets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/.DS_Store -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x-1.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0001.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0001@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0001.imageset/dropdown_anim__0001@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0001.imageset/dropdown_anim__0001@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00010.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00010@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00010.imageset/dropdown_anim__00010@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00010.imageset/dropdown_anim__00010@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00011.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00011@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00011.imageset/dropdown_anim__00011@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00011.imageset/dropdown_anim__00011@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00012.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00012@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00012.imageset/dropdown_anim__00012@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00012.imageset/dropdown_anim__00012@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00013.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00013@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00013.imageset/dropdown_anim__00013@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00013.imageset/dropdown_anim__00013@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00014.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00014@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00014.imageset/dropdown_anim__00014@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00014.imageset/dropdown_anim__00014@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00015.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00015@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00015.imageset/dropdown_anim__00015@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00015.imageset/dropdown_anim__00015@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00016.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00016@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00016.imageset/dropdown_anim__00016@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00016.imageset/dropdown_anim__00016@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00017.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00017@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00017.imageset/dropdown_anim__00017@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00017.imageset/dropdown_anim__00017@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00018.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00018@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00018.imageset/dropdown_anim__00018@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00018.imageset/dropdown_anim__00018@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00019.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00019@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00019.imageset/dropdown_anim__00019@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00019.imageset/dropdown_anim__00019@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0002.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0002@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0002.imageset/dropdown_anim__0002@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0002.imageset/dropdown_anim__0002@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00020.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00020@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00020.imageset/dropdown_anim__00020@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00020.imageset/dropdown_anim__00020@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00021.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00021@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00021.imageset/dropdown_anim__00021@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00021.imageset/dropdown_anim__00021@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00022.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00022@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00022.imageset/dropdown_anim__00022@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00022.imageset/dropdown_anim__00022@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00023.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00023@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00023.imageset/dropdown_anim__00023@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00023.imageset/dropdown_anim__00023@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00024.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00024@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00024.imageset/dropdown_anim__00024@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00024.imageset/dropdown_anim__00024@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00025.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00025@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00025.imageset/dropdown_anim__00025@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00025.imageset/dropdown_anim__00025@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00026.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00026@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00026.imageset/dropdown_anim__00026@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00026.imageset/dropdown_anim__00026@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00027.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00027@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00027.imageset/dropdown_anim__00027@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00027.imageset/dropdown_anim__00027@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00028.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00028@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00028.imageset/dropdown_anim__00028@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00028.imageset/dropdown_anim__00028@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00029.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00029@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00029.imageset/dropdown_anim__00029@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00029.imageset/dropdown_anim__00029@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0003.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0003@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0003.imageset/dropdown_anim__0003@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0003.imageset/dropdown_anim__0003@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00030.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00030@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00030.imageset/dropdown_anim__00030@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00030.imageset/dropdown_anim__00030@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00031.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00031@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00031.imageset/dropdown_anim__00031@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00031.imageset/dropdown_anim__00031@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00032.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00032@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00032.imageset/dropdown_anim__00032@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00032.imageset/dropdown_anim__00032@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00033.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00033@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00033.imageset/dropdown_anim__00033@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00033.imageset/dropdown_anim__00033@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00034.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00034@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00034.imageset/dropdown_anim__00034@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00034.imageset/dropdown_anim__00034@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00035.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00035@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00035.imageset/dropdown_anim__00035@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00035.imageset/dropdown_anim__00035@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00036.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00036@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00036.imageset/dropdown_anim__00036@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00036.imageset/dropdown_anim__00036@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00037.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00037@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00037.imageset/dropdown_anim__00037@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00037.imageset/dropdown_anim__00037@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00038.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00038@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00038.imageset/dropdown_anim__00038@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00038.imageset/dropdown_anim__00038@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00039.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00039@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00039.imageset/dropdown_anim__00039@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00039.imageset/dropdown_anim__00039@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0004.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0004@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0004.imageset/dropdown_anim__0004@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0004.imageset/dropdown_anim__0004@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00040.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00040@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00040.imageset/dropdown_anim__00040@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00040.imageset/dropdown_anim__00040@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00041.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00041@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00041.imageset/dropdown_anim__00041@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00041.imageset/dropdown_anim__00041@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00042.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00042@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00042.imageset/dropdown_anim__00042@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00042.imageset/dropdown_anim__00042@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00043.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00043@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00043.imageset/dropdown_anim__00043@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00043.imageset/dropdown_anim__00043@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00044.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00044@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00044.imageset/dropdown_anim__00044@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00044.imageset/dropdown_anim__00044@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00045.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00045@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00045.imageset/dropdown_anim__00045@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00045.imageset/dropdown_anim__00045@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00046.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00046@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00046.imageset/dropdown_anim__00046@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00046.imageset/dropdown_anim__00046@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00047.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00047@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00047.imageset/dropdown_anim__00047@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00047.imageset/dropdown_anim__00047@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00048.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00048@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00048.imageset/dropdown_anim__00048@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00048.imageset/dropdown_anim__00048@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00049.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00049@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00049.imageset/dropdown_anim__00049@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00049.imageset/dropdown_anim__00049@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0005.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0005@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0005.imageset/dropdown_anim__0005@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0005.imageset/dropdown_anim__0005@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00050.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00050@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00050.imageset/dropdown_anim__00050@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00050.imageset/dropdown_anim__00050@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00051.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00051@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00051.imageset/dropdown_anim__00051@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00051.imageset/dropdown_anim__00051@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00052.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00052@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00052.imageset/dropdown_anim__00052@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00052.imageset/dropdown_anim__00052@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00053.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00053@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00053.imageset/dropdown_anim__00053@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00053.imageset/dropdown_anim__00053@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00054.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00054@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00054.imageset/dropdown_anim__00054@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00054.imageset/dropdown_anim__00054@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00055.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00055@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00055.imageset/dropdown_anim__00055@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00055.imageset/dropdown_anim__00055@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00056.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00056@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00056.imageset/dropdown_anim__00056@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00056.imageset/dropdown_anim__00056@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00057.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00057@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00057.imageset/dropdown_anim__00057@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00057.imageset/dropdown_anim__00057@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00058.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00058@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00058.imageset/dropdown_anim__00058@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00058.imageset/dropdown_anim__00058@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00059.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00059@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00059.imageset/dropdown_anim__00059@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00059.imageset/dropdown_anim__00059@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0006.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0006@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0006.imageset/dropdown_anim__0006@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0006.imageset/dropdown_anim__0006@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00060.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__00060@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__00060.imageset/dropdown_anim__00060@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__00060.imageset/dropdown_anim__00060@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0007.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0007@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0007.imageset/dropdown_anim__0007@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0007.imageset/dropdown_anim__0007@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0008.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0008@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0008.imageset/dropdown_anim__0008@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0008.imageset/dropdown_anim__0008@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0009.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_anim__0009@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_anim__0009.imageset/dropdown_anim__0009@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_anim__0009.imageset/dropdown_anim__0009@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_01.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_loading_01@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_01.imageset/dropdown_loading_01@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_loading_01.imageset/dropdown_loading_01@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_02.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_loading_02@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_02.imageset/dropdown_loading_02@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_loading_02.imageset/dropdown_loading_02@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_03.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dropdown_loading_03@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/DianPing/dropdown_loading_03.imageset/dropdown_loading_03@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/DianPing/dropdown_loading_03.imageset/dropdown_loading_03@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/bg_login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bg_login.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/bg_login.imageset/bg_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/bg_login.imageset/bg_login.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/boy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "boy.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/boy.imageset/boy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/boy.imageset/boy.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/.DS_Store -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation1.imageset/chat_animation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation1.imageset/chat_animation1.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation2.imageset/chat_animation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation2.imageset/chat_animation2.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation3.imageset/chat_animation3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation3.imageset/chat_animation3.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation_white1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white1.imageset/chat_animation_white1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation_white1.imageset/chat_animation_white1.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation_white2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white2.imageset/chat_animation_white2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation_white2.imageset/chat_animation_white2.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_animation_white3.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/chat_animation_white3.imageset/chat_animation_white3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/chat_animation_white3.imageset/chat_animation_white3.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/headImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "headImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/animation/headImage.imageset/headImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/animation/headImage.imageset/headImage.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/left_message_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "resizing" : { 5 | "mode" : "9-part", 6 | "center" : { 7 | "mode" : "tile", 8 | "width" : 1, 9 | "height" : 1 10 | }, 11 | "cap-insets" : { 12 | "bottom" : 16, 13 | "top" : 38, 14 | "right" : 10, 15 | "left" : 21 16 | } 17 | }, 18 | "idiom" : "universal", 19 | "filename" : "chatfrom_bg_normal.png", 20 | "scale" : "1x" 21 | }, 22 | { 23 | "idiom" : "universal", 24 | "scale" : "2x" 25 | }, 26 | { 27 | "idiom" : "universal", 28 | "scale" : "3x" 29 | } 30 | ], 31 | "info" : { 32 | "version" : 1, 33 | "author" : "xcode" 34 | } 35 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/left_message_back.imageset/chatfrom_bg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/left_message_back.imageset/chatfrom_bg_normal.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/right_message_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "resizing" : { 5 | "mode" : "9-part", 6 | "center" : { 7 | "mode" : "tile", 8 | "width" : 1, 9 | "height" : 1 10 | }, 11 | "cap-insets" : { 12 | "bottom" : 14, 13 | "top" : 40, 14 | "right" : 22, 15 | "left" : 12 16 | } 17 | }, 18 | "idiom" : "universal", 19 | "filename" : "chatto_bg_normal.png", 20 | "scale" : "1x" 21 | }, 22 | { 23 | "idiom" : "universal", 24 | "scale" : "2x" 25 | }, 26 | { 27 | "idiom" : "universal", 28 | "scale" : "3x" 29 | } 30 | ], 31 | "info" : { 32 | "version" : 1, 33 | "author" : "xcode" 34 | } 35 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/cell/right_message_back.imageset/chatto_bg_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/cell/right_message_back.imageset/chatto_bg_normal.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_0.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_tuhuang.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_tuhuang@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_0.imageset/ic_week_course_half_bg_tuhuang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_0.imageset/ic_week_course_half_bg_tuhuang.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_0.imageset/ic_week_course_half_bg_tuhuang@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_0.imageset/ic_week_course_half_bg_tuhuang@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_3baedd.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_3baedd@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_1.imageset/ic_week_course_half_bg_3baedd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_1.imageset/ic_week_course_half_bg_3baedd.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_1.imageset/ic_week_course_half_bg_3baedd@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_1.imageset/ic_week_course_half_bg_3baedd@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_10.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_e3759c.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_e3759c@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_10.imageset/ic_week_course_half_bg_e3759c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_10.imageset/ic_week_course_half_bg_e3759c.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_10.imageset/ic_week_course_half_bg_e3759c@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_10.imageset/ic_week_course_half_bg_e3759c@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_11.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_ededed.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_ededed@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_11.imageset/ic_week_course_half_bg_ededed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_11.imageset/ic_week_course_half_bg_ededed.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_11.imageset/ic_week_course_half_bg_ededed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_11.imageset/ic_week_course_half_bg_ededed@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_12.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_f9b844.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_f9b844@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_12.imageset/ic_week_course_half_bg_f9b844.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_12.imageset/ic_week_course_half_bg_f9b844.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_12.imageset/ic_week_course_half_bg_f9b844@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_12.imageset/ic_week_course_half_bg_f9b844@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_13.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_f38181.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_f38181@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_13.imageset/ic_week_course_half_bg_f38181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_13.imageset/ic_week_course_half_bg_f38181.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_13.imageset/ic_week_course_half_bg_f38181@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_13.imageset/ic_week_course_half_bg_f38181@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_14.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_kafei.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_kafei@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_14.imageset/ic_week_course_half_bg_kafei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_14.imageset/ic_week_course_half_bg_kafei.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_14.imageset/ic_week_course_half_bg_kafei@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_14.imageset/ic_week_course_half_bg_kafei@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_15.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_molan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_molan@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_15.imageset/ic_week_course_half_bg_molan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_15.imageset/ic_week_course_half_bg_molan.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_15.imageset/ic_week_course_half_bg_molan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_15.imageset/ic_week_course_half_bg_molan@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_6f92e2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_6f92e2@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_2.imageset/ic_week_course_half_bg_6f92e2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_2.imageset/ic_week_course_half_bg_6f92e2.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_2.imageset/ic_week_course_half_bg_6f92e2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_2.imageset/ic_week_course_half_bg_6f92e2@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_9d86d0.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_9d86d0@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_3.imageset/ic_week_course_half_bg_9d86d0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_3.imageset/ic_week_course_half_bg_9d86d0.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_3.imageset/ic_week_course_half_bg_9d86d0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_3.imageset/ic_week_course_half_bg_9d86d0@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_53ae91.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_53ae91@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_4.imageset/ic_week_course_half_bg_53ae91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_4.imageset/ic_week_course_half_bg_53ae91.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_4.imageset/ic_week_course_half_bg_53ae91@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_4.imageset/ic_week_course_half_bg_53ae91@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_92c03c.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_92c03c@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_5.imageset/ic_week_course_half_bg_92c03c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_5.imageset/ic_week_course_half_bg_92c03c.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_5.imageset/ic_week_course_half_bg_92c03c@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_5.imageset/ic_week_course_half_bg_92c03c@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_6.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_bohelv.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_bohelv@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_6.imageset/ic_week_course_half_bg_bohelv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_6.imageset/ic_week_course_half_bg_bohelv.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_6.imageset/ic_week_course_half_bg_bohelv@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_6.imageset/ic_week_course_half_bg_bohelv@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_7.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_cheng.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_cheng@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_7.imageset/ic_week_course_half_bg_cheng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_7.imageset/ic_week_course_half_bg_cheng.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_7.imageset/ic_week_course_half_bg_cheng@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_7.imageset/ic_week_course_half_bg_cheng@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_8.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_week_course_half_bg_cyan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_week_course_half_bg_cyan@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_8.imageset/ic_week_course_half_bg_cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_8.imageset/ic_week_course_half_bg_cyan.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/freeTime/ic_week_course_half_bg_8.imageset/ic_week_course_half_bg_cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/freeTime/ic_week_course_half_bg_8.imageset/ic_week_course_half_bg_cyan@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/girl-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "girl.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/girl-1.imageset/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/girl-1.imageset/girl.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/girl.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "girl.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/girl.imageset/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/girl.imageset/girl.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_send_message.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_send_message.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_send_message.imageset/chat_send_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/input/chat_send_message.imageset/chat_send_message.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_take_picture.imageset/Chat_take_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/input/chat_take_picture.imageset/Chat_take_picture.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_take_picture.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Chat_take_picture.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_voice_record.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "chat_voice_record.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/input/chat_voice_record.imageset/chat_voice_record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/input/chat_voice_record.imageset/chat_voice_record.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/launch/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/launch/launch.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "launch@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "launch@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/launch/launch.imageset/launch@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/launch/launch.imageset/launch@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/launch/launch.imageset/launch@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/launch/launch.imageset/launch@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/message.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "message.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/message.imageset/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/message.imageset/message.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/navigationbar_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "navigationbar_back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "navigationbar_back@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/navigationbar_back.imageset/navigationbar_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/navigationbar_back.imageset/navigationbar_back@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/navigationbar_back.imageset/navigationbar_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/navigationbar_back.imageset/navigationbar_back@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/new_feature_share_false.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "new_feature_share_false@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/new_feature_share_false.imageset/new_feature_share_false@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/new_feature_share_false.imageset/new_feature_share_false@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/new_feature_share_true.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "new_feature_share_true@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/new_feature_share_true.imageset/new_feature_share_true@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/new_feature_share_true.imageset/new_feature_share_true@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/collect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "collect@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/collect.imageset/collect@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/collect.imageset/collect@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/footprint.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "footprint@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/footprint.imageset/footprint@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/footprint.imageset/footprint@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/freeTimeTable.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "freeTimeTable@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/freeTimeTable.imageset/freeTimeTable@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/freeTimeTable.imageset/freeTimeTable@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/historyActivity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "historyActivity@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/historyActivity.imageset/historyActivity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/historyActivity.imageset/historyActivity@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/mySetting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mySetting@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/mySetting.imageset/mySetting@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/mySetting.imageset/mySetting@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/realName.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "realName@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/realName.imageset/realName@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/realName.imageset/realName@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "setting.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/profile/setting.imageset/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/profile/setting.imageset/setting.png -------------------------------------------------------------------------------- /家教/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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_icon_add.imageset/tabbar_compose_icon_add@3x.png -------------------------------------------------------------------------------- /家教/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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_icon_add_highlighted.imageset/tabbar_compose_icon_add_highlighted@3x.png -------------------------------------------------------------------------------- /家教/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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@2x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/tabbar_compose_idea.imageset/tabbar_compose_idea@3x.png -------------------------------------------------------------------------------- /家教/Assets.xcassets/touxiang.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "touxiang.jpeg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/touxiang.imageset/touxiang.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/touxiang.imageset/touxiang.jpeg -------------------------------------------------------------------------------- /家教/Assets.xcassets/xingxing.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "xingxing_yellow@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 | } -------------------------------------------------------------------------------- /家教/Assets.xcassets/xingxing.imageset/xingxing_yellow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/Assets.xcassets/xingxing.imageset/xingxing_yellow@2x.png -------------------------------------------------------------------------------- /家教/Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Bridging-Header.h 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/20. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #ifndef Bridging_Header_h 10 | #define Bridging_Header_h 11 | 12 | #import "MJRefresh/MJRefresh.h" 13 | #import "MJExtension/MJExtension.h" 14 | #import "AFNetworking/AFNetworking.h" 15 | #import "Student.h" 16 | #import "Parents.h" 17 | #import "GetData.h" 18 | //#import 19 | #endif /* Bridging_Header_h */ 20 | -------------------------------------------------------------------------------- /家教/CannotLoginViiewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CannotLoginViiewController.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/15. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CannotLoginViiewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | self.navigationController?.navigationBarHidden = false 16 | self.view.backgroundColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 17 | let navBar = self.navigationController?.navigationBar 18 | navBar?.barTintColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 19 | navBar?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 20 | UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent 21 | self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() 22 | self.title = "帮助中心" 23 | } 24 | 25 | 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /家教/ChatListTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ChatListTableViewCell.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/22. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ChatListTableViewCell: UITableViewCell { 12 | //头像 13 | @IBOutlet weak var chatAvaterImage: UIImageView! 14 | //昵称 15 | @IBOutlet weak var chatNickName: UILabel! 16 | //最近的一次消息 17 | @IBOutlet weak var chatRecentMessage: UILabel! 18 | //最近一次消息的时间 19 | @IBOutlet weak var chatRecentTime: UILabel! 20 | 21 | @IBOutlet weak var messageImageView: UIImageView! 22 | //信息的条数 23 | var messageNumerLabel = UILabel() 24 | 25 | override func awakeFromNib() { 26 | super.awakeFromNib() 27 | //头像加蒙版 28 | chatAvaterImage.layer.cornerRadius = chatAvaterImage.frame.height/2 29 | chatAvaterImage.layer.masksToBounds = true 30 | messageNumerLabel.center = messageImageView.center 31 | messageNumerLabel.frame.size = CGSizeMake(15, 15) 32 | messageNumerLabel.font = UIFont.systemFontOfSize(10) 33 | messageNumerLabel.textAlignment = NSTextAlignment.Center 34 | messageNumerLabel.text = "10" 35 | self.messageImageView.addSubview(messageNumerLabel) 36 | // self. 37 | // Initialization code 38 | } 39 | 40 | override func setSelected(selected: Bool, animated: Bool) { 41 | super.setSelected(selected, animated: animated) 42 | 43 | // Configure the view for the selected state 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /家教/CustomAlertView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomAlertView.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/23. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CustomAlertView: UIView { 12 | 13 | override init(frame: CGRect) { 14 | 15 | super.init(frame: frame) 16 | self.layer.cornerRadius = 2 17 | self.layer.masksToBounds = true 18 | self.backgroundColor = UIColor(white: 0, alpha: 0.4) 19 | // UIColor(red: <#T##CGFloat#>, green: <#T##CGFloat#>, blue: <#T##CGFloat#>, alpha: <#T##CGFloat#>) 20 | } 21 | 22 | required init?(coder aDecoder: NSCoder) { 23 | fatalError("init(coder:) has not been implemented") 24 | } 25 | 26 | func loadAlertView() -> UIView { 27 | let acitivityView = UIActivityIndicatorView() 28 | acitivityView.center.x = self.center.x 29 | acitivityView.center.y = self.center.y - 10 30 | acitivityView.frame.size = CGSizeMake(50, 50) 31 | self.addSubview(acitivityView) 32 | acitivityView.startAnimating() 33 | 34 | let title = UILabel() 35 | title.text = "加载中..." 36 | title.font = UIFont.systemFontOfSize(14) 37 | title.frame = CGRectMake(0, self.frame.height - 21, self.frame.width, self.frame.height) 38 | title.textColor = UIColor(white: 0.8, alpha: 0.9) 39 | self.addSubview(title) 40 | return self 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /家教/CustomTextField.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomTextField.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/22. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CustomTextField: UITextField { 12 | 13 | override init(frame: CGRect) { 14 | super.init(frame: frame) 15 | 16 | } 17 | 18 | required init?(coder aDecoder: NSCoder) { 19 | fatalError("init(coder:) has not been implemented") 20 | } 21 | 22 | override func drawPlaceholderInRect(rect: CGRect) { 23 | super.drawPlaceholderInRect(rect) 24 | //KVC KVO OBSERVER 25 | self.setValue(UIColor.whiteColor().CGColor, forKeyPath: "placeholderLabel.textColor") 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /家教/DeviceData.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeviceData.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/19. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | /** 11 | * 建立系统数据单例模式 12 | */ 13 | struct DeviceData { 14 | static let height = UIScreen.mainScreen().bounds.height 15 | static let width = UIScreen.mainScreen().bounds.width 16 | static let bound = UIScreen.mainScreen().bounds 17 | } -------------------------------------------------------------------------------- /家教/FreeTimeSettingViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FreeTimeSettingViewController.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/30. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class FreeTimeSettingViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | self.view.backgroundColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 16 | let navBar = self.navigationController?.navigationBar 17 | navBar?.barTintColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 18 | navBar?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 19 | 20 | 21 | // Do any additional setup after loading the view. 22 | } 23 | 24 | override func didReceiveMemoryWarning() { 25 | super.didReceiveMemoryWarning() 26 | // Dispose of any resources that can be recreated. 27 | } 28 | 29 | 30 | /* 31 | // MARK: - Navigation 32 | 33 | // In a storyboard-based application, you will often want to do a little preparation before navigation 34 | override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 35 | // Get the new view controller using segue.destinationViewController. 36 | // Pass the selected object to the new view controller. 37 | } 38 | */ 39 | 40 | } 41 | -------------------------------------------------------------------------------- /家教/GetData.h: -------------------------------------------------------------------------------- 1 | // 2 | // GetData.h 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/14. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "Student.h" 11 | #import "MJExtension.h" 12 | #import "AFNetworking.h" 13 | 14 | @interface GetData : NSObject 15 | 16 | - (void)loadMoreStatus; 17 | 18 | - (instancetype)init; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /家教/GetData.m: -------------------------------------------------------------------------------- 1 | // 2 | // GetData.m 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/14. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #import "GetData.h" 10 | 11 | 12 | @interface GetData () 13 | 14 | @property (nonatomic, strong) NSMutableArray *statuses; 15 | 16 | @end 17 | 18 | @implementation GetData 19 | 20 | - (instancetype)init 21 | { 22 | self = [super init]; 23 | if (self) { 24 | [self loadMoreStatus]; 25 | } 26 | return self; 27 | } 28 | 29 | //@property (nonatomic, strong) NSMutableArray *statuses; 30 | - (NSMutableArray *)statuses 31 | { 32 | if (_statuses == nil) { 33 | _statuses = [NSMutableArray array]; 34 | } 35 | return _statuses; 36 | } 37 | 38 | - (void)loadMoreStatus 39 | { 40 | // 创建请求管理者 41 | AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; 42 | // 创建一个参数字典 43 | NSMutableDictionary *params = [NSMutableDictionary dictionary]; 44 | if (self.statuses.count) { // 有微博数据,才需要下拉刷新 45 | // long long maxId = [[[self.statuses lastObject] idstr] longLongValue] - 1; 46 | params[@"num"] = @"0"; 47 | } 48 | 49 | // 发送get请求 50 | [mgr POST:@"http://115.29.54.119:888/Post/requryInfo" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { // 请求成功的时候调用 51 | 52 | // 结束上拉刷新 53 | // [self.tableView footerEndRefreshing]; 54 | 55 | // 获取到微博数据 转换成模型 56 | // 获取微博字典数组 57 | NSArray *dictArr = responseObject[@"stu"]; 58 | // 把字典数组转换成模型数组 59 | NSArray *statuses = (NSMutableArray *)[Student objectArrayWithKeyValuesArray:dictArr]; 60 | 61 | // 把数组中的元素添加进去 62 | [self.statuses addObjectsFromArray:statuses]; 63 | 64 | // 刷新表格 65 | // [self.tableView reloadData]; 66 | 67 | } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 68 | 69 | }]; 70 | 71 | } 72 | 73 | 74 | 75 | 76 | 77 | @end 78 | -------------------------------------------------------------------------------- /家教/GuillotineMenuSegue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GuillotineMenuSegue.swift 3 | // GuillotineMenu 4 | // 5 | // Created by Maksym Lazebnyi on 3/24/15. 6 | // Copyright (c) 2015 Yalantis. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | private var key = 0 12 | 13 | class GuillotineMenuSegue: UIStoryboardSegue { 14 | override init(identifier: String!, source: UIViewController, destination: UIViewController) { 15 | 16 | if let _ = destination as? protocol { 17 | // do nothing 18 | }else{ 19 | assert(true, "Destination must conform to \(NSStringFromProtocol(GuillotineAnimationProtocol)) protocol") 20 | } 21 | super.init(identifier: identifier, source: source, destination: destination) 22 | } 23 | 24 | override func perform() { 25 | let source = sourceViewController 26 | let target = destinationViewController 27 | 28 | target.modalPresentationStyle = .Custom 29 | target.transitioningDelegate = self 30 | 31 | source.presentViewController(target, animated: true, completion: nil) 32 | } 33 | } 34 | 35 | extension GuillotineMenuSegue: UIViewControllerTransitioningDelegate { 36 | func animationControllerForPresentedController(presented: UIViewController, presentingController _: UIViewController, 37 | sourceController _: UIViewController) -> UIViewControllerAnimatedTransitioning? { 38 | 39 | objc_setAssociatedObject(presented, &key, self, (objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)) 40 | return GuillotineTransitionAnimation(.Presentation) 41 | } 42 | 43 | func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? { 44 | return GuillotineTransitionAnimation(.Dismissal) 45 | } 46 | } -------------------------------------------------------------------------------- /家教/HistoryActivityViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoryActivityViewController.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/30. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HistoryActivityViewController: UITableViewController { 12 | 13 | let recentActivity = ["义务家教","棠下家教","家教中心","五邑大学","礼乐家教"] 14 | let recentActivityTime = ["2015-10-23","2015-10-29","2015-10-30","2015-11-2","2015-11-23"] 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | self.title = "历史活动" 18 | let navBar = self.navigationController?.navigationBar 19 | navBar?.barTintColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 20 | navBar?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 21 | navBar?.tintColor = UIColor.whiteColor() 22 | // Do any additional setup after loading the view. 23 | } 24 | 25 | override func didReceiveMemoryWarning() { 26 | super.didReceiveMemoryWarning() 27 | // Dispose of any resources that can be recreated. 28 | } 29 | 30 | override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 31 | 32 | } 33 | 34 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 35 | return recentActivityTime.count 36 | } 37 | 38 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 39 | let cell = tableView.dequeueReusableCellWithIdentifier("cell") 40 | cell?.textLabel?.text = recentActivity[indexPath.row] 41 | cell?.detailTextLabel?.text = recentActivityTime[indexPath.row] 42 | 43 | return cell! 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /家教/HomeTabBarView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HomeTabBarView.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/21. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HomeTabBarView: UIView { 12 | 13 | 14 | override init(frame: CGRect) { 15 | super.init(frame: frame) 16 | } 17 | 18 | required init?(coder aDecoder: NSCoder) { 19 | fatalError("init(coder:) has not been implemented") 20 | } 21 | 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /家教/HomeTabBarViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HomeTabBarViewController.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/21. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class HomeTabBarViewController: UITabBarController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | override func didReceiveMemoryWarning() { 20 | super.didReceiveMemoryWarning() 21 | // Dispose of any resources that can be recreated. 22 | } 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /家教/HttpRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HttpRequest.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/12. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | //import Alamofire 11 | 12 | 13 | protocol HttpProtocol{ 14 | func didReceiveResults(result:NSMutableArray) 15 | } 16 | 17 | class HttpRequest:NSObject{ 18 | var studentStatus:NSMutableArray? 19 | var delegate:HttpProtocol? 20 | 21 | func loadNewData(pageNumber:Int) { 22 | 23 | let manager = AFHTTPRequestOperationManager() 24 | manager.responseSerializer.acceptableContentTypes = NSSet(object: "text/html") as Set 25 | let params:NSDictionary = ["num":"\(pageNumber)"] 26 | manager.POST("http://115.29.54.119:888/Post/requryInfo", parameters: params, success: { (operation, response) -> Void in 27 | let responseDic = response as? NSDictionary 28 | let dictArr:NSArray = (responseDic!["stu"] as? NSArray)! 29 | let array = [Student]() 30 | self.studentStatus = NSMutableArray(array: array) 31 | for var dict in dictArr { 32 | let studentBody = Student(dict: dict as! [NSObject : AnyObject]) 33 | self.studentStatus?.addObject(studentBody) 34 | 35 | 36 | } 37 | self.delegate?.didReceiveResults(self.studentStatus!) 38 | 39 | }) { (operation, error) -> Void in 40 | 41 | } 42 | 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /家教/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 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSApplicationCategoryType 24 | 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | NSAllowsArbitraryLoads 30 | 31 | 32 | UILaunchStoryboardName 33 | LaunchScreen 34 | UIMainStoryboardFile 35 | Main 36 | UIRequiredDeviceCapabilities 37 | 38 | armv7 39 | 40 | UISupportedInterfaceOrientations 41 | 42 | UIInterfaceOrientationPortrait 43 | 44 | UIViewControllerBasedStatusBarAppearance 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /家教/MJExtension/MJDictionaryCache.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJDictionaryCache.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/22. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJDictionaryCache : NSObject 12 | /** 13 | * 缓存数据 14 | * 15 | * @param dictId 字典标识 16 | * 17 | * @return 缓存的字典 18 | */ 19 | + (id)setObject:(id)object forKey:(id)key forDictId:(const void *)dictId; 20 | 21 | /** 22 | * 获得缓存的数据 23 | * 24 | * @param dictId 字典标识 25 | */ 26 | + (id)objectForKey:(id)key forDictId:(const void *)dictId; 27 | 28 | /** 29 | * 获得缓存的字典 30 | * 31 | * @param dictId 字典标识 32 | */ 33 | + (id)dictWithDictId:(const void *)dictId; 34 | @end 35 | -------------------------------------------------------------------------------- /家教/MJExtension/MJDictionaryCache.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJDictionaryCache.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/22. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJDictionaryCache.h" 10 | #import 11 | 12 | @implementation MJDictionaryCache 13 | + (id)setObject:(id)object forKey:(id)key forDictId:(const void *)dictId 14 | { 15 | // 获得字典 16 | NSMutableDictionary *dict = [self dictWithDictId:dictId]; 17 | if (dict == nil) { 18 | dict = [NSMutableDictionary dictionary]; 19 | objc_setAssociatedObject(self, dictId, dict, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 20 | } 21 | 22 | // 存储数据 23 | dict[key] = object; 24 | 25 | return dict; 26 | } 27 | 28 | + (id)objectForKey:(id)key forDictId:(const void *)dictId 29 | { 30 | return [self dictWithDictId:dictId][key]; 31 | } 32 | 33 | + (id)dictWithDictId:(const void *)dictId 34 | { 35 | return objc_getAssociatedObject(self, dictId); 36 | } 37 | @end -------------------------------------------------------------------------------- /家教/MJExtension/MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJExtension.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 代码地址:https://github.com/CoderMJLee/MJExtension 8 | // 代码地址:http://code4app.com/ios/%E5%AD%97%E5%85%B8-JSON-%E4%B8%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E6%8D%A2/5339992a933bf062608b4c57 9 | 10 | #import "NSObject+MJCoding.h" 11 | #import "NSObject+MJProperty.h" 12 | #import "NSObject+MJClass.h" 13 | #import "NSObject+MJKeyValue.h" 14 | #import "NSString+MJExtension.h" 15 | #import "MJExtensionConst.h" -------------------------------------------------------------------------------- /家教/MJExtension/MJExtensionConst.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __MJExtensionConst__H__ 3 | #define __MJExtensionConst__H__ 4 | 5 | #import 6 | 7 | // 过期 8 | #define MJExtensionDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead) 9 | 10 | // 构建错误 11 | #define MJExtensionBuildError(clazz, msg) \ 12 | NSError *error = [NSError errorWithDomain:msg code:250 userInfo:nil]; \ 13 | [clazz setMj_error:error]; 14 | 15 | // 日志输出 16 | #ifdef DEBUG 17 | #define MJExtensionLog(...) NSLog(__VA_ARGS__) 18 | #else 19 | #define MJExtensionLog(...) 20 | #endif 21 | 22 | /** 23 | * 断言 24 | * @param condition 条件 25 | * @param returnValue 返回值 26 | */ 27 | #define MJExtensionAssertError(condition, returnValue, clazz, msg) \ 28 | [clazz setMj_error:nil]; \ 29 | if ((condition) == NO) { \ 30 | MJExtensionBuildError(clazz, msg); \ 31 | return returnValue;\ 32 | } 33 | 34 | #define MJExtensionAssert2(condition, returnValue) \ 35 | if ((condition) == NO) return returnValue; 36 | 37 | /** 38 | * 断言 39 | * @param condition 条件 40 | */ 41 | #define MJExtensionAssert(condition) MJExtensionAssert2(condition, ) 42 | 43 | /** 44 | * 断言 45 | * @param param 参数 46 | * @param returnValue 返回值 47 | */ 48 | #define MJExtensionAssertParamNotNil2(param, returnValue) \ 49 | MJExtensionAssert2((param) != nil, returnValue) 50 | 51 | /** 52 | * 断言 53 | * @param param 参数 54 | */ 55 | #define MJExtensionAssertParamNotNil(param) MJExtensionAssertParamNotNil2(param, ) 56 | 57 | /** 58 | * 打印所有的属性 59 | */ 60 | #define MJLogAllIvars \ 61 | -(NSString *)description \ 62 | { \ 63 | return [self mj_keyValues].description; \ 64 | } 65 | #define MJExtensionLogAllProperties MJLogAllIvars 66 | 67 | /** 68 | * 类型(属性类型) 69 | */ 70 | extern NSString *const MJPropertyTypeInt; 71 | extern NSString *const MJPropertyTypeShort; 72 | extern NSString *const MJPropertyTypeFloat; 73 | extern NSString *const MJPropertyTypeDouble; 74 | extern NSString *const MJPropertyTypeLong; 75 | extern NSString *const MJPropertyTypeLongLong; 76 | extern NSString *const MJPropertyTypeChar; 77 | extern NSString *const MJPropertyTypeBOOL1; 78 | extern NSString *const MJPropertyTypeBOOL2; 79 | extern NSString *const MJPropertyTypePointer; 80 | 81 | extern NSString *const MJPropertyTypeIvar; 82 | extern NSString *const MJPropertyTypeMethod; 83 | extern NSString *const MJPropertyTypeBlock; 84 | extern NSString *const MJPropertyTypeClass; 85 | extern NSString *const MJPropertyTypeSEL; 86 | extern NSString *const MJPropertyTypeId; 87 | 88 | #endif -------------------------------------------------------------------------------- /家教/MJExtension/MJExtensionConst.m: -------------------------------------------------------------------------------- 1 | #ifndef __MJExtensionConst__M__ 2 | #define __MJExtensionConst__M__ 3 | 4 | #import 5 | 6 | /** 7 | * 成员变量类型(属性类型) 8 | */ 9 | NSString *const MJPropertyTypeInt = @"i"; 10 | NSString *const MJPropertyTypeShort = @"s"; 11 | NSString *const MJPropertyTypeFloat = @"f"; 12 | NSString *const MJPropertyTypeDouble = @"d"; 13 | NSString *const MJPropertyTypeLong = @"l"; 14 | NSString *const MJPropertyTypeLongLong = @"q"; 15 | NSString *const MJPropertyTypeChar = @"c"; 16 | NSString *const MJPropertyTypeBOOL1 = @"c"; 17 | NSString *const MJPropertyTypeBOOL2 = @"b"; 18 | NSString *const MJPropertyTypePointer = @"*"; 19 | 20 | NSString *const MJPropertyTypeIvar = @"^{objc_ivar=}"; 21 | NSString *const MJPropertyTypeMethod = @"^{objc_method=}"; 22 | NSString *const MJPropertyTypeBlock = @"@?"; 23 | NSString *const MJPropertyTypeClass = @"#"; 24 | NSString *const MJPropertyTypeSEL = @":"; 25 | NSString *const MJPropertyTypeId = @"@"; 26 | 27 | #endif -------------------------------------------------------------------------------- /家教/MJExtension/MJFoundation.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MJFoundation : NSObject 12 | + (BOOL)isClassFromFoundation:(Class)c; 13 | @end 14 | -------------------------------------------------------------------------------- /家教/MJExtension/MJFoundation.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJFoundation.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 14/7/16. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJFoundation.h" 10 | #import "MJExtensionConst.h" 11 | #import 12 | 13 | static NSSet *foundationClasses_; 14 | 15 | @implementation MJFoundation 16 | 17 | + (NSSet *)foundationClasses 18 | { 19 | if (foundationClasses_ == nil) { 20 | // 集合中没有NSObject,因为几乎所有的类都是继承自NSObject,具体是不是NSObject需要特殊判断 21 | foundationClasses_ = [NSSet setWithObjects: 22 | [NSURL class], 23 | [NSDate class], 24 | [NSValue class], 25 | [NSData class], 26 | [NSError class], 27 | [NSArray class], 28 | [NSDictionary class], 29 | [NSString class], 30 | [NSAttributedString class], nil]; 31 | } 32 | return foundationClasses_; 33 | } 34 | 35 | + (BOOL)isClassFromFoundation:(Class)c 36 | { 37 | if (c == [NSObject class] || c == [NSManagedObject class]) return YES; 38 | 39 | __block BOOL result = NO; 40 | [[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) { 41 | if ([c isSubclassOfClass:foundationClass]) { 42 | result = YES; 43 | *stop = YES; 44 | } 45 | }]; 46 | return result; 47 | } 48 | @end 49 | -------------------------------------------------------------------------------- /家教/MJExtension/MJProperty.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJProperty.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/4/17. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 包装一个成员属性 8 | 9 | #import 10 | #import 11 | #import "MJPropertyType.h" 12 | #import "MJPropertyKey.h" 13 | 14 | /** 15 | * 包装一个成员 16 | */ 17 | @interface MJProperty : NSObject 18 | /** 成员属性 */ 19 | @property (nonatomic, assign) objc_property_t property; 20 | /** 成员属性的名字 */ 21 | @property (nonatomic, readonly) NSString *name; 22 | 23 | /** 成员属性的类型 */ 24 | @property (nonatomic, readonly) MJPropertyType *type; 25 | /** 成员属性来源于哪个类(可能是父类) */ 26 | @property (nonatomic, assign) Class srcClass; 27 | 28 | /**** 同一个成员属性 - 父类和子类的行为可能不一致(originKey、propertyKeys、objectClassInArray) ****/ 29 | /** 设置最原始的key */ 30 | - (void)setOriginKey:(id)originKey forClass:(Class)c; 31 | /** 对应着字典中的多级key(里面存放的数组,数组里面都是MJPropertyKey对象) */ 32 | - (NSArray *)propertyKeysForClass:(Class)c; 33 | 34 | /** 模型数组中的模型类型 */ 35 | - (void)setObjectClassInArray:(Class)objectClass forClass:(Class)c; 36 | - (Class)objectClassInArrayForClass:(Class)c; 37 | /**** 同一个成员变量 - 父类和子类的行为可能不一致(key、keys、objectClassInArray) ****/ 38 | 39 | /** 40 | * 设置object的成员变量值 41 | */ 42 | - (void)setValue:(id)value forObject:(id)object; 43 | /** 44 | * 得到object的成员属性值 45 | */ 46 | - (id)valueForObject:(id)object; 47 | 48 | /** 49 | * 初始化 50 | */ 51 | + (instancetype)cachedPropertyWithProperty:(objc_property_t)property; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /家教/MJExtension/MJPropertyKey.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef enum { 12 | MJPropertyKeyTypeDictionary = 0, // 字典的key 13 | MJPropertyKeyTypeArray // 数组的key 14 | } MJPropertyKeyType; 15 | 16 | /** 17 | * 属性的key 18 | */ 19 | @interface MJPropertyKey : NSObject 20 | /** key的名字 */ 21 | @property (copy, nonatomic) NSString *name; 22 | /** key的种类,可能是@"10",可能是@"age" */ 23 | @property (assign, nonatomic) MJPropertyKeyType type; 24 | 25 | /** 26 | * 根据当前的key,也就是name,从object(字典或者数组)中取值 27 | */ 28 | - (id)valueInObject:(id)object; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /家教/MJExtension/MJPropertyKey.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyKey.m 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/8/11. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJPropertyKey.h" 10 | 11 | @implementation MJPropertyKey 12 | 13 | - (id)valueInObject:(id)object 14 | { 15 | if ([object isKindOfClass:[NSDictionary class]] && self.type == MJPropertyKeyTypeDictionary) { 16 | return object[self.name]; 17 | } else if ([object isKindOfClass:[NSArray class]] && self.type == MJPropertyKeyTypeArray) { 18 | return ((NSArray *)object).count ? object[self.name.intValue] : nil; 19 | } 20 | return nil; 21 | } 22 | @end 23 | -------------------------------------------------------------------------------- /家教/MJExtension/MJPropertyType.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyType.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 包装一种类型 8 | 9 | #import 10 | 11 | /** 12 | * 包装一种类型 13 | */ 14 | @interface MJPropertyType : NSObject 15 | /** 类型标识符 */ 16 | @property (nonatomic, copy) NSString *code; 17 | 18 | /** 是否为id类型 */ 19 | @property (nonatomic, readonly, getter=isIdType) BOOL idType; 20 | 21 | /** 是否为基本数字类型:int、float等 */ 22 | @property (nonatomic, readonly, getter=isNumberType) BOOL numberType; 23 | 24 | /** 是否为BOOL类型 */ 25 | @property (nonatomic, readonly, getter=isBoolType) BOOL boolType; 26 | 27 | /** 对象类型(如果是基本数据类型,此值为nil) */ 28 | @property (nonatomic, readonly) Class typeClass; 29 | 30 | /** 类型是否来自于Foundation框架,比如NSString、NSArray */ 31 | @property (nonatomic, readonly, getter = isFromFoundation) BOOL fromFoundation; 32 | /** 类型是否不支持KVC */ 33 | @property (nonatomic, readonly, getter = isKVCDisabled) BOOL KVCDisabled; 34 | 35 | /** 36 | * 获得缓存的类型对象 37 | */ 38 | + (instancetype)cachedTypeWithCode:(NSString *)code; 39 | @end -------------------------------------------------------------------------------- /家教/MJExtension/MJPropertyType.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJPropertyType.m 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJPropertyType.h" 10 | #import "MJExtension.h" 11 | #import "MJFoundation.h" 12 | #import "MJExtensionConst.h" 13 | #import "MJDictionaryCache.h" 14 | 15 | @implementation MJPropertyType 16 | 17 | + (instancetype)cachedTypeWithCode:(NSString *)code 18 | { 19 | MJExtensionAssertParamNotNil2(code, nil); 20 | 21 | static const char MJCachedTypesKey = '\0'; 22 | 23 | MJPropertyType *type = [MJDictionaryCache objectForKey:code forDictId:&MJCachedTypesKey]; 24 | if (type == nil) { 25 | type = [[self alloc] init]; 26 | type.code = code; 27 | [MJDictionaryCache setObject:type forKey:code forDictId:&MJCachedTypesKey]; 28 | } 29 | return type; 30 | } 31 | 32 | #pragma mark - 公共方法 33 | - (void)setCode:(NSString *)code 34 | { 35 | _code = code; 36 | 37 | MJExtensionAssertParamNotNil(code); 38 | 39 | if ([code isEqualToString:MJPropertyTypeId]) { 40 | _idType = YES; 41 | } else if (code.length == 0) { 42 | _KVCDisabled = YES; 43 | } else if (code.length > 3 && [code hasPrefix:@"@\""]) { 44 | // 去掉@"和",截取中间的类型名称 45 | _code = [code substringWithRange:NSMakeRange(2, code.length - 3)]; 46 | _typeClass = NSClassFromString(_code); 47 | _fromFoundation = [MJFoundation isClassFromFoundation:_typeClass]; 48 | _numberType = [_typeClass isSubclassOfClass:[NSNumber class]]; 49 | 50 | } else if ([code isEqualToString:MJPropertyTypeSEL] || 51 | [code isEqualToString:MJPropertyTypeIvar] || 52 | [code isEqualToString:MJPropertyTypeMethod]) { 53 | _KVCDisabled = YES; 54 | } 55 | 56 | // 是否为数字类型 57 | NSString *lowerCode = _code.lowercaseString; 58 | NSArray *numberTypes = @[MJPropertyTypeInt, MJPropertyTypeShort, MJPropertyTypeBOOL1, MJPropertyTypeBOOL2, MJPropertyTypeFloat, MJPropertyTypeDouble, MJPropertyTypeLong, MJPropertyTypeLongLong, MJPropertyTypeChar]; 59 | if ([numberTypes containsObject:lowerCode]) { 60 | _numberType = YES; 61 | 62 | if ([lowerCode isEqualToString:MJPropertyTypeBOOL1] 63 | || [lowerCode isEqualToString:MJPropertyTypeBOOL2]) { 64 | _boolType = YES; 65 | } 66 | } 67 | } 68 | @end 69 | -------------------------------------------------------------------------------- /家教/MJExtension/NSObject+MJCoding.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.h 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MJExtensionConst.h" 11 | 12 | /** 13 | * Codeing协议 14 | */ 15 | @protocol MJCoding 16 | @optional 17 | /** 18 | * 这个数组中的属性名才会进行归档 19 | */ 20 | + (NSArray *)mj_allowedCodingPropertyNames; 21 | /** 22 | * 这个数组中的属性名将会被忽略:不进行归档 23 | */ 24 | + (NSArray *)mj_ignoredCodingPropertyNames; 25 | @end 26 | 27 | @interface NSObject (MJCoding) 28 | /** 29 | * 解码(从文件中解析对象) 30 | */ 31 | - (void)mj_decode:(NSCoder *)decoder; 32 | /** 33 | * 编码(将对象写入文件中) 34 | */ 35 | - (void)mj_encode:(NSCoder *)encoder; 36 | @end 37 | 38 | /** 39 | 归档的实现 40 | */ 41 | #define MJCodingImplementation \ 42 | - (id)initWithCoder:(NSCoder *)decoder \ 43 | { \ 44 | if (self = [super init]) { \ 45 | [self mj_decode:decoder]; \ 46 | } \ 47 | return self; \ 48 | } \ 49 | \ 50 | - (void)encodeWithCoder:(NSCoder *)encoder \ 51 | { \ 52 | [self mj_encode:encoder]; \ 53 | } 54 | 55 | #define MJExtensionCodingImplementation MJCodingImplementation -------------------------------------------------------------------------------- /家教/MJExtension/NSObject+MJCoding.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSObject+MJCoding.m 3 | // MJExtension 4 | // 5 | // Created by mj on 14-1-15. 6 | // Copyright (c) 2014年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "NSObject+MJCoding.h" 10 | #import "NSObject+MJClass.h" 11 | #import "NSObject+MJProperty.h" 12 | #import "MJProperty.h" 13 | 14 | @implementation NSObject (MJCoding) 15 | 16 | - (void)mj_encode:(NSCoder *)encoder 17 | { 18 | Class clazz = [self class]; 19 | 20 | NSArray *allowedCodingPropertyNames = [clazz mj_totalAllowedCodingPropertyNames]; 21 | NSArray *ignoredCodingPropertyNames = [clazz mj_totalIgnoredCodingPropertyNames]; 22 | 23 | [clazz mj_enumerateProperties:^(MJProperty *property, BOOL *stop) { 24 | // 检测是否被忽略 25 | if (allowedCodingPropertyNames.count && ![allowedCodingPropertyNames containsObject:property.name]) return; 26 | if ([ignoredCodingPropertyNames containsObject:property.name]) return; 27 | 28 | id value = [property valueForObject:self]; 29 | if (value == nil) return; 30 | [encoder encodeObject:value forKey:property.name]; 31 | }]; 32 | } 33 | 34 | - (void)mj_decode:(NSCoder *)decoder 35 | { 36 | Class clazz = [self class]; 37 | 38 | NSArray *allowedCodingPropertyNames = [clazz mj_totalAllowedCodingPropertyNames]; 39 | NSArray *ignoredCodingPropertyNames = [clazz mj_totalIgnoredCodingPropertyNames]; 40 | 41 | [clazz mj_enumerateProperties:^(MJProperty *property, BOOL *stop) { 42 | // 检测是否被忽略 43 | if (allowedCodingPropertyNames.count && ![allowedCodingPropertyNames containsObject:property.name]) return; 44 | if ([ignoredCodingPropertyNames containsObject:property.name]) return; 45 | 46 | id value = [decoder decodeObjectForKey:property.name]; 47 | if (value == nil) { // 兼容以前的MJExtension版本 48 | value = [decoder decodeObjectForKey:[@"_" stringByAppendingString:property.name]]; 49 | } 50 | if (value == nil) return; 51 | [property setValue:value forObject:self]; 52 | }]; 53 | } 54 | @end 55 | -------------------------------------------------------------------------------- /家教/MJExtension/NSString+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+MJExtension.h 3 | // MJExtensionExample 4 | // 5 | // Created by MJ Lee on 15/6/7. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MJExtensionConst.h" 11 | 12 | @interface NSString (MJExtension) 13 | /** 14 | * 驼峰转下划线(loveYou -> love_you) 15 | */ 16 | - (NSString *)mj_underlineFromCamel; 17 | /** 18 | * 下划线转驼峰(love_you -> loveYou) 19 | */ 20 | - (NSString *)mj_camelFromUnderline; 21 | /** 22 | * 首字母变大写 23 | */ 24 | - (NSString *)mj_firstCharUpper; 25 | /** 26 | * 首字母变小写 27 | */ 28 | - (NSString *)mj_firstCharLower; 29 | 30 | - (BOOL)mj_isPureInt; 31 | 32 | - (NSURL *)mj_url; 33 | @end 34 | 35 | @interface NSString (MJExtensionDeprecated_v_2_5_16) 36 | - (NSString *)underlineFromCamel MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 37 | - (NSString *)camelFromUnderline MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 38 | - (NSString *)firstCharUpper MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 39 | - (NSString *)firstCharLower MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 40 | - (BOOL)isPureInt MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 41 | - (NSURL *)url MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***"); 42 | @end 43 | -------------------------------------------------------------------------------- /家教/MJRefresh/Base/MJRefreshAutoFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshAutoFooter : MJRefreshFooter 12 | /** 是否自动刷新(默认为YES) */ 13 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh; 14 | 15 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 16 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh MJRefreshDeprecated("请使用automaticallyChangeAlpha属性"); 17 | 18 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */ 19 | @property (assign, nonatomic) CGFloat triggerAutomaticallyRefreshPercent; 20 | @end 21 | -------------------------------------------------------------------------------- /家教/MJRefresh/Base/MJRefreshBackFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshFooter.h" 10 | 11 | @interface MJRefreshBackFooter : MJRefreshFooter 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /家教/MJRefresh/Base/MJRefreshFooter.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 上拉刷新控件 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshFooter : MJRefreshComponent 13 | /** 创建footer */ 14 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建footer */ 16 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 提示没有更多的数据 */ 19 | - (void)endRefreshingWithNoMoreData; 20 | - (void)noticeNoMoreData MJRefreshDeprecated("使用endRefreshingWithNoMoreData"); 21 | 22 | /** 重置没有更多的数据(消除没有更多数据的状态) */ 23 | - (void)resetNoMoreData; 24 | 25 | /** 忽略多少scrollView的contentInset的bottom */ 26 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetBottom; 27 | 28 | /** 自动根据有无数据来显示和隐藏(有数据就显示,没有数据隐藏) */ 29 | @property (assign, nonatomic, getter=isAutomaticallyHidden) BOOL automaticallyHidden; 30 | @end 31 | -------------------------------------------------------------------------------- /家教/MJRefresh/Base/MJRefreshFooter.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshFooter.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/5. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "MJRefreshFooter.h" 11 | 12 | @interface MJRefreshFooter() 13 | 14 | @end 15 | 16 | @implementation MJRefreshFooter 17 | #pragma mark - 构造方法 18 | + (instancetype)footerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock 19 | { 20 | MJRefreshFooter *cmp = [[self alloc] init]; 21 | cmp.refreshingBlock = refreshingBlock; 22 | return cmp; 23 | } 24 | + (instancetype)footerWithRefreshingTarget:(id)target refreshingAction:(SEL)action 25 | { 26 | MJRefreshFooter *cmp = [[self alloc] init]; 27 | [cmp setRefreshingTarget:target refreshingAction:action]; 28 | return cmp; 29 | } 30 | 31 | #pragma mark - 重写父类的方法 32 | - (void)prepare 33 | { 34 | [super prepare]; 35 | 36 | // 设置自己的高度 37 | self.mj_h = MJRefreshFooterHeight; 38 | 39 | // 默认是自动隐藏 40 | self.automaticallyHidden = YES; 41 | } 42 | 43 | - (void)willMoveToSuperview:(UIView *)newSuperview 44 | { 45 | [super willMoveToSuperview:newSuperview]; 46 | 47 | if (newSuperview) { 48 | // 监听scrollView数据的变化 49 | if ([self.scrollView isKindOfClass:[UITableView class]] || [self.scrollView isKindOfClass:[UICollectionView class]]) { 50 | [self.scrollView setReloadDataBlock:^(NSInteger totalDataCount) { 51 | if (self.isAutomaticallyHidden) { 52 | self.hidden = (totalDataCount == 0); 53 | } 54 | }]; 55 | } 56 | } 57 | } 58 | 59 | #pragma mark - 公共方法 60 | - (void)endRefreshingWithNoMoreData 61 | { 62 | self.state = MJRefreshStateNoMoreData; 63 | } 64 | 65 | - (void)noticeNoMoreData 66 | { 67 | [self endRefreshingWithNoMoreData]; 68 | } 69 | 70 | - (void)resetNoMoreData 71 | { 72 | self.state = MJRefreshStateIdle; 73 | } 74 | @end 75 | -------------------------------------------------------------------------------- /家教/MJRefresh/Base/MJRefreshHeader.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // MJRefreshHeader.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 下拉刷新控件:负责监控用户下拉的状态 9 | 10 | #import "MJRefreshComponent.h" 11 | 12 | @interface MJRefreshHeader : MJRefreshComponent 13 | /** 创建header */ 14 | + (instancetype)headerWithRefreshingBlock:(MJRefreshComponentRefreshingBlock)refreshingBlock; 15 | /** 创建header */ 16 | + (instancetype)headerWithRefreshingTarget:(id)target refreshingAction:(SEL)action; 17 | 18 | /** 这个key用来存储上一次下拉刷新成功的时间 */ 19 | @property (copy, nonatomic) NSString *lastUpdatedTimeKey; 20 | /** 上一次下拉刷新成功的时间 */ 21 | @property (strong, nonatomic, readonly) NSDate *lastUpdatedTime; 22 | 23 | /** 忽略多少scrollView的contentInset的top */ 24 | @property (assign, nonatomic) CGFloat ignoredScrollViewContentInsetTop; 25 | @end 26 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Auto/MJRefreshAutoGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoGifFooter : MJRefreshAutoStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter : MJRefreshAutoStateFooter 12 | /** 菊花的样式 */ 13 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 14 | @end 15 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Auto/MJRefreshAutoNormalFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoNormalFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoNormalFooter.h" 10 | 11 | @interface MJRefreshAutoNormalFooter() 12 | @property (weak, nonatomic) UIActivityIndicatorView *loadingView; 13 | @end 14 | 15 | @implementation MJRefreshAutoNormalFooter 16 | #pragma mark - 懒加载子控件 17 | - (UIActivityIndicatorView *)loadingView 18 | { 19 | if (!_loadingView) { 20 | UIActivityIndicatorView *loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:self.activityIndicatorViewStyle]; 21 | loadingView.hidesWhenStopped = YES; 22 | [self addSubview:_loadingView = loadingView]; 23 | } 24 | return _loadingView; 25 | } 26 | 27 | - (void)setActivityIndicatorViewStyle:(UIActivityIndicatorViewStyle)activityIndicatorViewStyle 28 | { 29 | _activityIndicatorViewStyle = activityIndicatorViewStyle; 30 | 31 | self.loadingView = nil; 32 | [self setNeedsLayout]; 33 | } 34 | #pragma makr - 重写父类的方法 35 | - (void)prepare 36 | { 37 | [super prepare]; 38 | 39 | self.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray; 40 | } 41 | 42 | - (void)placeSubviews 43 | { 44 | [super placeSubviews]; 45 | 46 | // 圈圈 47 | CGFloat arrowCenterX = self.mj_w * 0.5; 48 | if (!self.isRefreshingTitleHidden) { 49 | arrowCenterX -= 100; 50 | } 51 | CGFloat arrowCenterY = self.mj_h * 0.5; 52 | self.loadingView.center = CGPointMake(arrowCenterX, arrowCenterY); 53 | } 54 | 55 | - (void)setState:(MJRefreshState)state 56 | { 57 | MJRefreshCheckState 58 | 59 | // 根据状态做事情 60 | if (state == MJRefreshStateNoMoreData || state == MJRefreshStateIdle) { 61 | [self.loadingView stopAnimating]; 62 | } else if (state == MJRefreshStateRefreshing) { 63 | [self.loadingView startAnimating]; 64 | } 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter : MJRefreshAutoFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | 15 | /** 设置state状态下的文字 */ 16 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 17 | 18 | /** 隐藏刷新状态的文字 */ 19 | @property (assign, nonatomic, getter=isRefreshingTitleHidden) BOOL refreshingTitleHidden; 20 | @end 21 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshAutoStateFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshAutoStateFooter.h" 10 | 11 | @interface MJRefreshAutoStateFooter() 12 | { 13 | /** 显示刷新状态的label */ 14 | __weak UILabel *_stateLabel; 15 | } 16 | /** 所有状态对应的文字 */ 17 | @property (strong, nonatomic) NSMutableDictionary *stateTitles; 18 | @end 19 | 20 | @implementation MJRefreshAutoStateFooter 21 | #pragma mark - 懒加载 22 | - (NSMutableDictionary *)stateTitles 23 | { 24 | if (!_stateTitles) { 25 | self.stateTitles = [NSMutableDictionary dictionary]; 26 | } 27 | return _stateTitles; 28 | } 29 | 30 | - (UILabel *)stateLabel 31 | { 32 | if (!_stateLabel) { 33 | [self addSubview:_stateLabel = [UILabel label]]; 34 | } 35 | return _stateLabel; 36 | } 37 | 38 | #pragma mark - 公共方法 39 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state 40 | { 41 | if (title == nil) return; 42 | self.stateTitles[@(state)] = title; 43 | self.stateLabel.text = self.stateTitles[@(self.state)]; 44 | } 45 | 46 | #pragma mark - 私有方法 47 | - (void)stateLabelClick 48 | { 49 | if (self.state == MJRefreshStateIdle) { 50 | [self beginRefreshing]; 51 | } 52 | } 53 | 54 | #pragma mark - 重写父类的方法 55 | - (void)prepare 56 | { 57 | [super prepare]; 58 | 59 | // 初始化文字 60 | [self setTitle:MJRefreshAutoFooterIdleText forState:MJRefreshStateIdle]; 61 | [self setTitle:MJRefreshAutoFooterRefreshingText forState:MJRefreshStateRefreshing]; 62 | [self setTitle:MJRefreshAutoFooterNoMoreDataText forState:MJRefreshStateNoMoreData]; 63 | 64 | // 监听label 65 | self.stateLabel.userInteractionEnabled = YES; 66 | [self.stateLabel addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateLabelClick)]]; 67 | } 68 | 69 | - (void)placeSubviews 70 | { 71 | [super placeSubviews]; 72 | 73 | // 状态标签 74 | self.stateLabel.frame = self.bounds; 75 | } 76 | 77 | - (void)setState:(MJRefreshState)state 78 | { 79 | MJRefreshCheckState 80 | 81 | if (self.isRefreshingTitleHidden && state == MJRefreshStateRefreshing) { 82 | self.stateLabel.text = nil; 83 | } else { 84 | self.stateLabel.text = self.stateTitles[@(state)]; 85 | } 86 | } 87 | @end -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Back/MJRefreshBackGifFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackGifFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackGifFooter : MJRefreshBackStateFooter 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Back/MJRefreshBackNormalFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackNormalFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackNormalFooter : MJRefreshBackStateFooter 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter : MJRefreshBackFooter 12 | /** 显示刷新状态的label */ 13 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 14 | /** 设置state状态下的文字 */ 15 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 16 | 17 | /** 获取state状态下的title */ 18 | - (NSString *)titleForState:(MJRefreshState)state; 19 | @end 20 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshBackStateFooter.m 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/6/13. 6 | // Copyright © 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshBackStateFooter.h" 10 | 11 | @interface MJRefreshBackStateFooter() 12 | { 13 | /** 显示刷新状态的label */ 14 | __weak UILabel *_stateLabel; 15 | } 16 | /** 所有状态对应的文字 */ 17 | @property (strong, nonatomic) NSMutableDictionary *stateTitles; 18 | @end 19 | 20 | @implementation MJRefreshBackStateFooter 21 | #pragma mark - 懒加载 22 | - (NSMutableDictionary *)stateTitles 23 | { 24 | if (!_stateTitles) { 25 | self.stateTitles = [NSMutableDictionary dictionary]; 26 | } 27 | return _stateTitles; 28 | } 29 | 30 | - (UILabel *)stateLabel 31 | { 32 | if (!_stateLabel) { 33 | [self addSubview:_stateLabel = [UILabel label]]; 34 | } 35 | return _stateLabel; 36 | } 37 | 38 | #pragma mark - 公共方法 39 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state 40 | { 41 | if (title == nil) return; 42 | self.stateTitles[@(state)] = title; 43 | self.stateLabel.text = self.stateTitles[@(self.state)]; 44 | } 45 | 46 | - (NSString *)titleForState:(MJRefreshState)state { 47 | return self.stateTitles[@(state)]; 48 | } 49 | 50 | #pragma mark - 重写父类的方法 51 | - (void)prepare 52 | { 53 | [super prepare]; 54 | 55 | // 初始化文字 56 | [self setTitle:MJRefreshBackFooterIdleText forState:MJRefreshStateIdle]; 57 | [self setTitle:MJRefreshBackFooterPullingText forState:MJRefreshStatePulling]; 58 | [self setTitle:MJRefreshBackFooterRefreshingText forState:MJRefreshStateRefreshing]; 59 | [self setTitle:MJRefreshBackFooterNoMoreDataText forState:MJRefreshStateNoMoreData]; 60 | } 61 | 62 | - (void)placeSubviews 63 | { 64 | [super placeSubviews]; 65 | 66 | // 状态标签 67 | self.stateLabel.frame = self.bounds; 68 | } 69 | 70 | - (void)setState:(MJRefreshState)state 71 | { 72 | MJRefreshCheckState 73 | 74 | // 设置状态文字 75 | self.stateLabel.text = self.stateTitles[@(state)]; 76 | } 77 | @end 78 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Header/MJRefreshGifHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshGifHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshGifHeader : MJRefreshStateHeader 12 | /** 设置state状态下的动画图片images 动画持续时间duration*/ 13 | - (void)setImages:(NSArray *)images duration:(NSTimeInterval)duration forState:(MJRefreshState)state; 14 | - (void)setImages:(NSArray *)images forState:(MJRefreshState)state; 15 | @end 16 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Header/MJRefreshNormalHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshNormalHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshStateHeader.h" 10 | 11 | @interface MJRefreshNormalHeader : MJRefreshStateHeader 12 | @property (weak, nonatomic, readonly) UIImageView *arrowView; 13 | /** 菊花的样式 */ 14 | @property (assign, nonatomic) UIActivityIndicatorViewStyle activityIndicatorViewStyle; 15 | @end 16 | -------------------------------------------------------------------------------- /家教/MJRefresh/Custom/Header/MJRefreshStateHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // MJRefreshStateHeader.h 3 | // MJRefreshExample 4 | // 5 | // Created by MJ Lee on 15/4/24. 6 | // Copyright (c) 2015年 小码哥. All rights reserved. 7 | // 8 | 9 | #import "MJRefreshHeader.h" 10 | 11 | @interface MJRefreshStateHeader : MJRefreshHeader 12 | #pragma mark - 刷新时间相关 13 | /** 利用这个block来决定显示的更新时间文字 */ 14 | @property (copy, nonatomic) NSString *(^lastUpdatedTimeText)(NSDate *lastUpdatedTime); 15 | /** 显示上一次刷新时间的label */ 16 | @property (weak, nonatomic, readonly) UILabel *lastUpdatedTimeLabel; 17 | 18 | #pragma mark - 状态相关 19 | /** 显示刷新状态的label */ 20 | @property (weak, nonatomic, readonly) UILabel *stateLabel; 21 | /** 设置state状态下的文字 */ 22 | - (void)setTitle:(NSString *)title forState:(MJRefreshState)state; 23 | @end 24 | -------------------------------------------------------------------------------- /家教/MJRefresh/LoadAlert.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoadAlert.swift 3 | // GFAlertView 4 | // 5 | // Created by goofygao on 15/11/27. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LoadAlert: UIView { 12 | 13 | 14 | @IBOutlet weak var activity: UIActivityIndicatorView! 15 | 16 | @IBOutlet weak var titleLabel: UILabel! 17 | 18 | var i = 0 19 | class func instantiateFromNib() -> LoadAlert { 20 | let view = UINib(nibName: "LoadAlert", bundle: nil).instantiateWithOwner(nil, options: nil).first as! LoadAlert 21 | 22 | return view 23 | } 24 | 25 | override func awakeFromNib() { 26 | super.awakeFromNib() 27 | self.layer.cornerRadius = 10 28 | self.layer.masksToBounds = true 29 | self.alpha = 0.9 30 | activity.startAnimating() 31 | NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "timerAction", userInfo: nil, repeats: true) 32 | } 33 | 34 | func timerAction() { 35 | i++ 36 | if i % 3 == 0 { 37 | titleLabel.text = "加载ing..." 38 | } else if i % 3 == 1 { 39 | titleLabel.text = "加载ing." 40 | } else if i % 3 == 2 { 41 | titleLabel.text = "加载ing.." 42 | } 43 | } 44 | 45 | 46 | } 47 | -------------------------------------------------------------------------------- /家教/MJRefresh/MJRefresh.bundle/arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/MJRefresh/MJRefresh.bundle/arrow@2x.png -------------------------------------------------------------------------------- /家教/MJRefresh/MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | 4 | #import "UIScrollView+MJRefresh.h" 5 | #import "UIScrollView+MJExtension.h" 6 | #import "UIView+MJExtension.h" 7 | 8 | #import "MJRefreshNormalHeader.h" 9 | #import "MJRefreshGifHeader.h" 10 | 11 | #import "MJRefreshBackNormalFooter.h" 12 | #import "MJRefreshBackGifFooter.h" 13 | #import "MJRefreshAutoNormalFooter.h" 14 | #import "MJRefreshAutoGifFooter.h" -------------------------------------------------------------------------------- /家教/MJRefresh/MJRefreshConst.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | #import 4 | 5 | const CGFloat MJRefreshHeaderHeight = 54.0; 6 | const CGFloat MJRefreshFooterHeight = 44.0; 7 | const CGFloat MJRefreshFastAnimationDuration = 0.25; 8 | const CGFloat MJRefreshSlowAnimationDuration = 0.4; 9 | 10 | NSString *const MJRefreshKeyPathContentOffset = @"contentOffset"; 11 | NSString *const MJRefreshKeyPathContentInset = @"contentInset"; 12 | NSString *const MJRefreshKeyPathContentSize = @"contentSize"; 13 | NSString *const MJRefreshKeyPathPanState = @"state"; 14 | 15 | NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey"; 16 | 17 | NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新"; 18 | NSString *const MJRefreshHeaderPullingText = @"松开立即刷新"; 19 | NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中..."; 20 | 21 | NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多"; 22 | NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据..."; 23 | NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕"; 24 | 25 | NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多"; 26 | NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多"; 27 | NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据..."; 28 | NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕"; -------------------------------------------------------------------------------- /家教/MJRefresh/UIScrollView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIScrollView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_insetT; 14 | @property (assign, nonatomic) CGFloat mj_insetB; 15 | @property (assign, nonatomic) CGFloat mj_insetL; 16 | @property (assign, nonatomic) CGFloat mj_insetR; 17 | 18 | @property (assign, nonatomic) CGFloat mj_offsetX; 19 | @property (assign, nonatomic) CGFloat mj_offsetY; 20 | 21 | @property (assign, nonatomic) CGFloat mj_contentW; 22 | @property (assign, nonatomic) CGFloat mj_contentH; 23 | @end 24 | -------------------------------------------------------------------------------- /家教/MJRefresh/UIScrollView+MJRefresh.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIScrollView+MJRefresh.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 15/3/4. 7 | // Copyright (c) 2015年 小码哥. All rights reserved. 8 | // 给ScrollView增加下拉刷新、上拉刷新的功能 9 | 10 | #import 11 | 12 | @class MJRefreshHeader, MJRefreshFooter; 13 | 14 | @interface UIScrollView (MJRefresh) 15 | /** 下拉刷新控件 */ 16 | @property (strong, nonatomic) MJRefreshHeader *header; 17 | /** 上拉刷新控件 */ 18 | @property (strong, nonatomic) MJRefreshFooter *footer; 19 | 20 | #pragma mark - other 21 | - (NSInteger)totalDataCount; 22 | @property (copy, nonatomic) void (^reloadDataBlock)(NSInteger totalDataCount); 23 | @end 24 | -------------------------------------------------------------------------------- /家教/MJRefresh/UIView+MJExtension.h: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.h 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import 11 | 12 | @interface UIView (MJExtension) 13 | @property (assign, nonatomic) CGFloat mj_x; 14 | @property (assign, nonatomic) CGFloat mj_y; 15 | @property (assign, nonatomic) CGFloat mj_w; 16 | @property (assign, nonatomic) CGFloat mj_h; 17 | @property (assign, nonatomic) CGSize mj_size; 18 | @property (assign, nonatomic) CGPoint mj_origin; 19 | @end 20 | -------------------------------------------------------------------------------- /家教/MJRefresh/UIView+MJExtension.m: -------------------------------------------------------------------------------- 1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh 2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 3 | // UIView+Extension.m 4 | // MJRefreshExample 5 | // 6 | // Created by MJ Lee on 14-5-28. 7 | // Copyright (c) 2014年 小码哥. All rights reserved. 8 | // 9 | 10 | #import "UIView+MJExtension.h" 11 | 12 | @implementation UIView (MJExtension) 13 | - (void)setMj_x:(CGFloat)mj_x 14 | { 15 | CGRect frame = self.frame; 16 | frame.origin.x = mj_x; 17 | self.frame = frame; 18 | } 19 | 20 | - (CGFloat)mj_x 21 | { 22 | return self.frame.origin.x; 23 | } 24 | 25 | - (void)setMj_y:(CGFloat)mj_y 26 | { 27 | CGRect frame = self.frame; 28 | frame.origin.y = mj_y; 29 | self.frame = frame; 30 | } 31 | 32 | - (CGFloat)mj_y 33 | { 34 | return self.frame.origin.y; 35 | } 36 | 37 | - (void)setMj_w:(CGFloat)mj_w 38 | { 39 | CGRect frame = self.frame; 40 | frame.size.width = mj_w; 41 | self.frame = frame; 42 | } 43 | 44 | - (CGFloat)mj_w 45 | { 46 | return self.frame.size.width; 47 | } 48 | 49 | - (void)setMj_h:(CGFloat)mj_h 50 | { 51 | CGRect frame = self.frame; 52 | frame.size.height = mj_h; 53 | self.frame = frame; 54 | } 55 | 56 | - (CGFloat)mj_h 57 | { 58 | return self.frame.size.height; 59 | } 60 | 61 | - (void)setMj_size:(CGSize)mj_size 62 | { 63 | CGRect frame = self.frame; 64 | frame.size = mj_size; 65 | self.frame = frame; 66 | } 67 | 68 | - (CGSize)mj_size 69 | { 70 | return self.frame.size; 71 | } 72 | 73 | - (void)setMj_origin:(CGPoint)mj_origin 74 | { 75 | CGRect frame = self.frame; 76 | frame.origin = mj_origin; 77 | self.frame = frame; 78 | } 79 | 80 | - (CGPoint)mj_origin 81 | { 82 | return self.frame.origin; 83 | } 84 | @end 85 | -------------------------------------------------------------------------------- /家教/Parents.h: -------------------------------------------------------------------------------- 1 | // 2 | // Teacher.h 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/12. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Parents : NSObject 12 | 13 | @property (nonatomic,copy) NSString *name; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /家教/Parents.m: -------------------------------------------------------------------------------- 1 | // 2 | // Teacher.m 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/12. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #import "Parents.h" 10 | 11 | @implementation Parents 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /家教/ProfileSetViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ProfileSetViewController.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/30. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ProfileSetViewController: UIViewController { 12 | 13 | @IBOutlet weak var proFileGBView2: UIView! 14 | @IBOutlet weak var avaterImageView: UIImageView! 15 | @IBOutlet weak var profileBGView: UIView! 16 | 17 | /// 昵称 18 | @IBOutlet weak var nickName: UILabel! 19 | /// 年龄 20 | @IBOutlet weak var profileAge: UILabel! 21 | /// 签名 22 | @IBOutlet weak var signatureLabel: UILabel! 23 | /// 身份定位 24 | @IBOutlet weak var bodyLocationLabel: UILabel! 25 | 26 | /// 电话号码 27 | @IBOutlet weak var bodyPhoneNumber: UILabel! 28 | /// 地址 29 | @IBOutlet weak var profileAddress: UILabel! 30 | /// 邮箱 31 | @IBOutlet weak var profileEmail: UILabel! 32 | override func viewDidLoad() { 33 | super.viewDidLoad() 34 | 35 | avaterImageView.layer.cornerRadius = avaterImageView.frame.width/2 36 | avaterImageView.layer.masksToBounds = true 37 | avaterImageView.layer.borderWidth = 5 38 | avaterImageView.layer.borderColor = UIColor(white: 0.6, alpha: 0.7).CGColor 39 | profileBGView.layer.cornerRadius = 20 40 | profileBGView.layer.masksToBounds = true 41 | proFileGBView2.layer.cornerRadius = 20 42 | proFileGBView2.layer.masksToBounds = true 43 | let navBar = self.navigationController?.navigationBar 44 | navBar?.barTintColor = UIColor(red: 65.0 / 255.0, green: 62.0 / 255.0, blue: 79.0 / 255.0, alpha: 1) 45 | navBar?.titleTextAttributes = [NSForegroundColorAttributeName: UIColor.whiteColor()] 46 | navBar?.tintColor = UIColor.whiteColor() 47 | self.title = "资料设置" 48 | 49 | 50 | } 51 | 52 | override func didReceiveMemoryWarning() { 53 | super.didReceiveMemoryWarning() 54 | // Dispose of any resources that can be recreated. 55 | } 56 | 57 | 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /家教/Student.m: -------------------------------------------------------------------------------- 1 | // 2 | // Student.m 3 | // 家教 4 | // 5 | // Created by goofygao on 15/11/9. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | #import "Student.h" 10 | #import "MJExtension/MJExtension.h" 11 | 12 | @implementation Student 13 | 14 | -(id)initWithDict:(NSDictionary *)dict { 15 | if (self == [super init]) { 16 | [self setValuesForKeysWithDictionary:dict]; 17 | } 18 | return self; 19 | } 20 | 21 | +(instancetype)cellWithDict:(NSDictionary *)dict { 22 | return [[self alloc] initWithDict:dict]; 23 | } 24 | 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /家教/UIColorExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColorExtension.swift 3 | // 家教 4 | // 5 | // Created by goofygao on 15/10/21. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIColor { 12 | class func randColor(alpha:CGFloat) -> UIColor { 13 | let red = CGFloat(arc4random_uniform(255))/CGFloat(INT8_MAX) 14 | let green = CGFloat(arc4random_uniform(255))/CGFloat(INT8_MAX) 15 | let blue = CGFloat(arc4random_uniform(255))/CGFloat(INT8_MAX) 16 | return UIColor(red: red, green: green, blue: blue, alpha: alpha) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /家教/UUChat/UUChatLeftMessageCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LeftMessageCell.swift 3 | // UUChatTableViewSwift 4 | // 5 | // Created by XcodeYang on 8/13/15. 6 | // Copyright © 2015 XcodeYang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class UUChatLeftMessageCell: UITableViewCell { 12 | 13 | @IBOutlet weak var dateLabel: UILabel! 14 | @IBOutlet weak var headImageView: UIButton! 15 | @IBOutlet weak var nameLabel: UILabel! 16 | @IBOutlet weak var contentButton: UIButton! 17 | 18 | @IBOutlet weak var contentLabel: UILabel! 19 | 20 | 21 | override func awakeFromNib() { 22 | super.awakeFromNib() 23 | self.selectionStyle = UITableViewCellSelectionStyle.None 24 | self.contentButton.titleLabel?.numberOfLines = 0; 25 | self.contentButton.contentEdgeInsets = UIEdgeInsetsMake(4, 29, 4, 9) 26 | } 27 | 28 | func configUIWithModel(num: NSInteger){ 29 | self.dateLabel.text = random()%2==0 ? "2014-09-21 18:32":"" 30 | self.contentLabel.text = self.getRandomStr(num) as String 31 | } 32 | 33 | func getRandomStr(num: NSInteger) -> NSString{ 34 | let str = "卡农并非特指一首曲子,其原意为“规则”,“同一旋律以同度或五度等不同的高度在各声部先后出现,造成此起彼落连续不断的模仿;一个声部的曲调自始至终追逐着另一声部,直到最后,它们会融合在一起,永不分离”,一如人世间至死不渝的爱情,相爱的两人生死相随,缠绵至极。" 35 | return (str as NSString).substringToIndex(num) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /家教/UUChat/UUChatRightMessageCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UUChatRightMessageCell.swift 3 | // UUChatTableViewSwift 4 | // 5 | // Created by XcodeYang on 8/13/15. 6 | // Copyright © 2015 XcodeYang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class UUChatRightMessageCell: UITableViewCell { 12 | 13 | @IBOutlet weak var dateLabel: UILabel! 14 | @IBOutlet weak var headImageView: UIButton! 15 | @IBOutlet weak var nameLabel: UILabel! 16 | @IBOutlet weak var contentButton: UIButton! 17 | 18 | @IBOutlet weak var contentLabel: UILabel! 19 | 20 | override func awakeFromNib() { 21 | super.awakeFromNib() 22 | self.selectionStyle = UITableViewCellSelectionStyle.None 23 | self.contentButton.titleLabel?.numberOfLines = 0; 24 | self.contentButton.contentEdgeInsets = UIEdgeInsetsMake(4, 29, 4, 9) 25 | } 26 | 27 | func configUIWithModel(num: NSInteger){ 28 | self.dateLabel.text = random()%2==0 ? "2014-09-21 18:32":"" 29 | self.contentLabel.text = self.getRandomStr(num) as String 30 | 31 | } 32 | 33 | func getRandomStr(num: NSInteger) -> NSString{ 34 | let str = "卡农并非特指一首曲子,其原意为“规则”,“同一旋律以同度或五度等不同的高度在各声部先后出现,造成此起彼落连续不断的模仿;一个声部的曲调自始至终追逐着另一声部,直到最后,它们会融合在一起,永不分离”,一如人世间至死不渝的爱情,相爱的两人生死相随,缠绵至极。" 35 | return (str as NSString).substringToIndex(num) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /家教/UUChat/UUInputView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UUInputView.swift 3 | // UUChatTableViewSwift 4 | // 5 | // Created by XcodeYang on 8/13/15. 6 | // Copyright © 2015 XcodeYang. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class UUInputView: UIView { 12 | 13 | @IBOutlet weak var leftButton: UIButton! 14 | 15 | @IBOutlet weak var rightButton: UIButton! 16 | 17 | @IBOutlet weak var contentTextField: UITextField! 18 | 19 | override func awakeFromNib() { 20 | super.awakeFromNib() 21 | self.layer.borderWidth = 1; 22 | self.layer.borderColor = UIColor.blackColor().colorWithAlphaComponent(0.1).CGColor 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /家教/__.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | __.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /家教/__.xcdatamodeld/__.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /家教/add-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/add-1.png -------------------------------------------------------------------------------- /家教/add-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/add-2.png -------------------------------------------------------------------------------- /家教/add-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/add-3.png -------------------------------------------------------------------------------- /家教/add-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/add-4.png -------------------------------------------------------------------------------- /家教/bg_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/bg_login.png -------------------------------------------------------------------------------- /家教/bg_setr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/bg_setr.png -------------------------------------------------------------------------------- /家教/boy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/boy.png -------------------------------------------------------------------------------- /家教/bt_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/bt_login.png -------------------------------------------------------------------------------- /家教/bt_setr_submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/bt_setr_submit.png -------------------------------------------------------------------------------- /家教/bt_signin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/bt_signin.png -------------------------------------------------------------------------------- /家教/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/camera.png -------------------------------------------------------------------------------- /家教/cellCollect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/cellCollect.png -------------------------------------------------------------------------------- /家教/cellComment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/cellComment.png -------------------------------------------------------------------------------- /家教/cellLike.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/cellLike.png -------------------------------------------------------------------------------- /家教/cell_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/cell_share.png -------------------------------------------------------------------------------- /家教/cell_share24px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/cell_share24px.png -------------------------------------------------------------------------------- /家教/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/collect.png -------------------------------------------------------------------------------- /家教/collect_selecte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/collect_selecte.png -------------------------------------------------------------------------------- /家教/editMyProfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/editMyProfile.png -------------------------------------------------------------------------------- /家教/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/girl.png -------------------------------------------------------------------------------- /家教/ic_menuL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/ic_menuL@3x.png -------------------------------------------------------------------------------- /家教/ic_menuRotatedL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/ic_menuRotatedL@3x.png -------------------------------------------------------------------------------- /家教/kechengbiaoBg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/kechengbiaoBg.png -------------------------------------------------------------------------------- /家教/libraries/extends/QQSDK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/libraries/extends/QQSDK/.DS_Store -------------------------------------------------------------------------------- /家教/libraries/extends/SinaWeiboSDK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/libraries/extends/SinaWeiboSDK/.DS_Store -------------------------------------------------------------------------------- /家教/libraries/extends/WeChatSDK/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/libraries/extends/WeChatSDK/.DS_Store -------------------------------------------------------------------------------- /家教/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/line.png -------------------------------------------------------------------------------- /家教/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/message.png -------------------------------------------------------------------------------- /家教/messageCountImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/messageCountImage.png -------------------------------------------------------------------------------- /家教/navigationbar_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/navigationbar_back@2x.png -------------------------------------------------------------------------------- /家教/navigationbar_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/navigationbar_back@3x.png -------------------------------------------------------------------------------- /家教/personalIDcard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/personalIDcard.png -------------------------------------------------------------------------------- /家教/profile-Like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/profile-Like.png -------------------------------------------------------------------------------- /家教/progile-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/progile-2.png -------------------------------------------------------------------------------- /家教/progile-zan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/progile-zan.png -------------------------------------------------------------------------------- /家教/search_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/search_bar.png -------------------------------------------------------------------------------- /家教/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mgoofyy/iOS_FE/e63aef3feb89e903e479d9bef955dd7d2a7ab7e1/家教/setting.png -------------------------------------------------------------------------------- /家教Tests/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 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /家教Tests/__Tests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // __Tests.swift 3 | // 家教Tests 4 | // 5 | // Created by goofygao on 15/10/19. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import __ 11 | 12 | class __Tests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measureBlock { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /家教UITests/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 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /家教UITests/__UITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // __UITests.swift 3 | // 家教UITests 4 | // 5 | // Created by goofygao on 15/10/19. 6 | // Copyright © 2015年 goofyy. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class __UITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | --------------------------------------------------------------------------------