├── .gitignore ├── LICENSE ├── README.md └── XMTV ├── Podfile ├── Podfile.lock ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AFError.swift │ │ ├── Alamofire.swift │ │ ├── DispatchQueue+Alamofire.swift │ │ ├── MultipartFormData.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── ParameterEncoding.swift │ │ ├── Request.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result.swift │ │ ├── ServerTrustPolicy.swift │ │ ├── SessionDelegate.swift │ │ ├── SessionManager.swift │ │ ├── TaskDelegate.swift │ │ ├── Timeline.swift │ │ └── Validation.swift ├── Kingfisher │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── AnimatedImageView.swift │ │ ├── Box.swift │ │ ├── CacheSerializer.swift │ │ ├── Filter.swift │ │ ├── Image.swift │ │ ├── ImageCache.swift │ │ ├── ImageDownloader.swift │ │ ├── ImagePrefetcher.swift │ │ ├── ImageProcessor.swift │ │ ├── ImageTransition.swift │ │ ├── ImageView+Kingfisher.swift │ │ ├── Indicator.swift │ │ ├── Kingfisher.h │ │ ├── Kingfisher.swift │ │ ├── KingfisherManager.swift │ │ ├── KingfisherOptionsInfo.swift │ │ ├── RequestModifier.swift │ │ ├── Resource.swift │ │ ├── String+MD5.swift │ │ ├── ThreadHelper.swift │ │ └── UIButton+Kingfisher.swift ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj └── Target Support Files │ ├── Alamofire │ ├── Alamofire-dummy.m │ ├── Alamofire-prefix.pch │ ├── Alamofire-umbrella.h │ ├── Alamofire.modulemap │ ├── Alamofire.xcconfig │ └── Info.plist │ ├── Kingfisher │ ├── Info.plist │ ├── Kingfisher-dummy.m │ ├── Kingfisher-prefix.pch │ ├── Kingfisher-umbrella.h │ ├── Kingfisher.modulemap │ └── Kingfisher.xcconfig │ └── Pods-XMTV │ ├── Info.plist │ ├── Pods-XMTV-acknowledgements.markdown │ ├── Pods-XMTV-acknowledgements.plist │ ├── Pods-XMTV-dummy.m │ ├── Pods-XMTV-frameworks.sh │ ├── Pods-XMTV-resources.sh │ ├── Pods-XMTV-umbrella.h │ ├── Pods-XMTV.debug.xcconfig │ ├── Pods-XMTV.modulemap │ └── Pods-XMTV.release.xcconfig ├── XMTV.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── XMTV.xcworkspace └── contents.xcworkspacedata ├── XMTV ├── AppDelegate.swift ├── Classes │ ├── Entertainment │ │ ├── Controller │ │ │ ├── EntertainmentVC.swift │ │ │ ├── LovelyPetsVC.swift │ │ │ ├── MusincVC.swift │ │ │ ├── OutdoorLivingVC.swift │ │ │ ├── PandaStarShowVC.swift │ │ │ └── TableGamesVC.swift │ │ ├── Model │ │ │ ├── ClassificationModel.swift │ │ │ ├── LivelistModel.swift │ │ │ ├── PictureModel.swift │ │ │ └── UserinfoModel.swift │ │ ├── View │ │ │ ├── PageContentView.swift │ │ │ └── PageTitleView.swift │ │ └── ViewModel │ │ │ ├── EntertainmentVM.swift │ │ │ ├── LovelyPetsVM.swift │ │ │ ├── MusicVM.swift │ │ │ ├── OutdoorLivingVM.swift │ │ │ ├── PandaStarShowVM.swift │ │ │ └── TableGamesVM.swift │ ├── Game │ │ ├── Controller │ │ │ └── GameVC.swift │ │ ├── Model │ │ │ └── GameModel.swift │ │ ├── View │ │ │ ├── CollectionGameCell.swift │ │ │ ├── CollectionGameCell.xib │ │ │ ├── CollectionGameLiveCell.swift │ │ │ └── CollectionGameLiveCell.xib │ │ └── ViewModel │ │ │ └── GameVM.swift │ ├── Home │ │ ├── Controller │ │ │ ├── AllLivingVC.swift │ │ │ ├── AllSubcateVC.swift │ │ │ ├── HomeVC.swift │ │ │ ├── IsLivingVC.swift │ │ │ ├── MoreLivingVC.swift │ │ │ ├── RecommendVC.swift │ │ │ ├── SearchVC.swift │ │ │ └── UnLivingVC.swift │ │ ├── Model │ │ │ ├── BannersModel.swift │ │ │ ├── LivingAndBannersModel.swift │ │ │ ├── SearchListModel.swift │ │ │ └── SearchModel.swift │ │ ├── View │ │ │ ├── CollectionSubcateCell.swift │ │ │ ├── CollectionSubcateCell.xib │ │ │ ├── CollectionSubcateSelectedCell.swift │ │ │ ├── CollectionSubcateSelectedCell.xib │ │ │ └── PageMenuView.swift │ │ └── ViewModel │ │ │ ├── AllLivingVM.swift │ │ │ ├── IsLivingVM.swift │ │ │ ├── MoreLivingVM.swift │ │ │ └── RecommendVM.swift │ ├── Main │ │ ├── Controller │ │ │ ├── BaseAllLivingVC.swift │ │ │ ├── BaseEntertainmentVC.swift │ │ │ ├── BaseModel.swift │ │ │ ├── BaseRecommendVC.swift │ │ │ ├── BaseSearchVC.swift │ │ │ ├── BaseVC.swift │ │ │ ├── NavigationController.swift │ │ │ └── TabBarController.swift │ │ ├── Model │ │ │ ├── AnchorGroup.swift │ │ │ ├── CycleModel.swift │ │ │ └── TypeModel.swift │ │ ├── View │ │ │ ├── BannerCycleView.swift │ │ │ ├── BannerCycleView.xib │ │ │ ├── CollectionCycleCell.swift │ │ │ ├── CollectionCycleCell.xib │ │ │ ├── CollectionHeaderView.swift │ │ │ ├── CollectionHeaderView.xib │ │ │ ├── CollectionNormalCell.swift │ │ │ ├── CollectionNormalCell.xib │ │ │ ├── CollectionSearchCell.swift │ │ │ └── CollectionSearchCell.xib │ │ └── ViewModel │ │ │ └── BaseVM.swift │ ├── Me │ │ └── Controller │ │ │ ├── Me.storyboard │ │ │ ├── MeVC.swift │ │ │ ├── SettingVC.storyboard │ │ │ └── SettingVC.swift │ ├── SmallShow │ │ └── Controller │ │ │ └── SmallShowVC.swift │ └── Tools │ │ ├── Category │ │ ├── UIBarButtonItem-Extension.swift │ │ └── UIColor-Extension.swift │ │ ├── Common.swift │ │ └── Network │ │ └── NetworkTool.swift └── Supporting Files │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── AppIcon20x20@2x.png │ │ ├── AppIcon20x20@3x.png │ │ ├── AppIcon29x29@2x.png │ │ ├── AppIcon29x29@3x.png │ │ ├── AppIcon40x40@2x.png │ │ ├── AppIcon40x40@3x.png │ │ ├── AppIcon60x60@2x.png │ │ ├── AppIcon60x60@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Home │ │ ├── Contents.json │ │ ├── addbutton_43x40_.imageset │ │ │ ├── Contents.json │ │ │ └── addbutton_43x40_@2x.png │ │ ├── getButton_hove.imageset │ │ │ ├── Contents.json │ │ │ └── getButton_hover_136x46_@2x.png │ │ ├── home_more_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── home_more_13x13_@2x.png │ │ ├── homepage_refresh_tv.imageset │ │ │ ├── Contents.json │ │ │ ├── homepage_refresh_tv@2x.png │ │ │ └── homepage_refresh_tv_@3x.png │ │ ├── load │ │ │ ├── 0tai_icon1-1.imageset │ │ │ │ ├── 0tai_icon1-1.png │ │ │ │ ├── 0tai_icon1.png │ │ │ │ └── Contents.json │ │ │ ├── 0tai_icon2-1.imageset │ │ │ │ ├── 0tai_icon2-1.png │ │ │ │ ├── 0tai_icon2.png │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── history_clear_all_button_22x22_.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── history_clear_all_button_22x22_@2x.png │ │ │ ├── history_clear_button_22x22_.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── history_clear_button_22x22_@2x.png │ │ │ ├── search_clear_button_16x16_.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── search_clear_button_16x16_@2x.png │ │ │ └── search_clear_button_hover_16x16_.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── search_clear_button_hover_16x16_@2x.png │ │ ├── look_image.imageset │ │ │ ├── Contents.json │ │ │ └── look_image@2x.png │ │ ├── pindaoxuanze_changyong_button_normal.imageset │ │ │ ├── Contents.json │ │ │ └── pindaoxuanze_changyong_button_normal.png │ │ ├── pindaoxuanze_changyong_button_press.imageset │ │ │ ├── Contents.json │ │ │ └── pindaoxuanze_changyong_button_press.png │ │ └── titleIcon │ │ │ ├── Contents.json │ │ │ ├── ahphs3_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ahphs3_h_icon_13x13_@2x.png │ │ │ ├── ahphs3_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ahphs3_icon_13x13_@2x.png │ │ │ ├── alllive_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── alllive_h_icon_13x13_@2x.png │ │ │ ├── alllive_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── alllive_icon_13x13_@2x.png │ │ │ ├── csgo_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── csgo_h_icon_13x13_@2x.png │ │ │ ├── csgo_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── csgo_icon_13x13_@2x.png │ │ │ ├── cyhx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── cyhx_h_icon_13x13_@2x.png │ │ │ ├── cyhx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── cyhx_icon_13x13_@2x.png │ │ │ ├── defult_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── defult_h_icon_13x13_@2x.png │ │ │ ├── defult_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── defult_icon_13x13_@2x.png │ │ │ ├── dota2_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── dota2_h_icon_13x13_@2x.png │ │ │ ├── dota2_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── dota2_icon_13x13_@2x.png │ │ │ ├── dxcyys_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── dxcyys_h_icon_13x13_@2x.png │ │ │ ├── dxcyys_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── dxcyys_icon_13x13_@2x.png │ │ │ ├── fbyx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── fbyx_h_icon_13x13_@2x.png │ │ │ ├── fbyx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── fbyx_icon_13x13_@2x.png │ │ │ ├── gdyx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── gdyx_h_icon_13x13_@2x.png │ │ │ ├── gdyx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── gdyx_icon_13x13_@2x.png │ │ │ ├── hjjd_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hjjd_h_icon_13x13_@2x.png │ │ │ ├── hjjd_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hjjd_icon_13x13_@2x.png │ │ │ ├── home_more_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── home_more_13x13_@2x.png │ │ │ ├── hszz_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hszz_h_icon_13x13_@2x.png │ │ │ ├── hszz_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hszz_icon_13x13_@2x.png │ │ │ ├── hwzb_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hwzb_h_icon_13x13_@2x.png │ │ │ ├── hwzb_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── hwzb_icon_13x13_@2x.png │ │ │ ├── jptj_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── jptj_h_icon_13x13_@2x.png │ │ │ ├── jptj_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── jptj_icon_13x13_@2x.png │ │ │ ├── jw3_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── jw3_h_icon_13x13_@2x.png │ │ │ ├── jw3_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── jw3_icon_13x13_@2x.png │ │ │ ├── lscs_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── lscs_h_icon_13x13_@2x.png │ │ │ ├── lscs_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── lscs_icon_13x13_@2x.png │ │ │ ├── mcly_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mcly_h_icon_13x13_@2x.png │ │ │ ├── mcly_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mcly_icon_13x13_@2x.png │ │ │ ├── mssj_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mssj_h_icon_13x13_@2x.png │ │ │ ├── mssj_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mssj_icon_13x13_@2x.png │ │ │ ├── mxd2_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mxd2_h_icon_13x13_@2x.png │ │ │ ├── mxd2_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── mxd2_icon_13x13_@2x.png │ │ │ ├── ppkdc_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ppkdc_h_icon_13x13_@2x.png │ │ │ ├── ppkdc_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ppkdc_icon_13x13_@2x.png │ │ │ ├── qh97_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── qh97_h_icon_13x13_@2x.png │ │ │ ├── qh97_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── qh97_icon_13x13_@2x.png │ │ │ ├── sjyx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── sjyx_h_icon_13x13_@2x.png │ │ │ ├── sjyx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── sjyx_icon_13x13_@2x.png │ │ │ ├── smzhOL_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── smzhOL_h_icon_13x13_@2x.png │ │ │ ├── smzhOL_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── smzhOL_icon_13x13_@2x.png │ │ │ ├── swxf_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── swxf_h_icon_13x13_@2x.png │ │ │ ├── swxf_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── swxf_icon_13x13_@2x.png │ │ │ ├── ty_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ty_h_icon_13x13_@2x.png │ │ │ ├── ty_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── ty_icon_13x13_@2x.png │ │ │ ├── tyjj_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── tyjj_h_icon_13x13_@2x.png │ │ │ ├── tyjj_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── tyjj_icon_13x13_@2x.png │ │ │ ├── wdsj_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wdsj_h_icon_13x13_@2x.png │ │ │ ├── wdsj_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wdsj_icon_13x13_@2x.png │ │ │ ├── wjzq_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wjzq_h_icon_13x13_@2x.png │ │ │ ├── wjzq_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wjzq_icon_13x13_@2x.png │ │ │ ├── wyzq_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wyzq_h_icon_13x13_@2x.png │ │ │ ├── wyzq_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── wyzq_icon_13x13_@2x.png │ │ │ ├── xjzb2_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── xjzb2_h_icon_13x13_@2x.png │ │ │ ├── xjzb2_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── xjzb2_icon_13x13_@2x.png │ │ │ ├── yllm_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yllm_h_icon_13x13_@2x.png │ │ │ ├── yllm_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yllm_icon_13x13_@2x.png │ │ │ ├── yxlm_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yxlm_h_icon_13x13_@2x.png │ │ │ ├── yxlm_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yxlm_icon_13x13_@2x.png │ │ │ ├── yyzb_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yyzb_13x13_@2x.png │ │ │ ├── yyzb_h_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── yyzb_h_13x13_@2x.png │ │ │ ├── zjyx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── zjyx_h_icon_13x13_@2x.png │ │ │ ├── zjyx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── zjyx_icon_13x13_@2x.png │ │ │ ├── zzyx_h_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── zzyx_h_icon_13x13_@2x.png │ │ │ └── zzyx_icon_13x13_.imageset │ │ │ ├── Contents.json │ │ │ └── zzyx_icon_13x13_@2x.png │ ├── LaunchImage.launchimage │ │ ├── Contents.json │ │ ├── LaunchImage-700-568h@2x.png │ │ ├── LaunchImage-700@2x.png │ │ ├── LaunchImage-800-667h@2x.png │ │ └── LaunchImage-800-Portrait-736h@3x.png │ ├── Me │ │ ├── Contents.json │ │ ├── arrow_right2.imageset │ │ │ ├── Contents.json │ │ │ └── arrow_right2_13x13_@2x.png │ │ ├── mine_activityIcon.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_activityIcon_22x22_@2x.png │ │ │ └── mine_activityIcon_24x24_@3x.png │ │ ├── mine_attentionIcon.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_attentionIcon_22x22_@2x.png │ │ │ └── mine_attentionIcon_24x24_@3x.png │ │ ├── mine_giftnotice.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_giftnotice_18x18_@2x.png │ │ │ └── mine_giftnotice_20x20_@3x.png │ │ ├── mine_histroyIcon.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_histroyIcon_22x22_@2x.png │ │ │ └── mine_histroyIcon_24x24_@3x.png │ │ ├── mine_message_icon.imageset │ │ │ ├── Contents.json │ │ │ └── mine_message_icon_22x22_@2x.png │ │ ├── mine_remindIcon.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_remindIcon_22x22_@2x.png │ │ │ └── mine_remindIcon_24x24_@3x.png │ │ ├── mine_settingIcon2.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_settingIcon2_19x19_@2x.png │ │ │ └── mine_settingIcon2_21x21_@3x.png │ │ ├── mine_settingIcon2_press.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_settingIcon2_press_19x19_@2x.png │ │ │ └── mine_settingIcon2_press_21x21_@3x.png │ │ ├── mine_suggestIcon.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_suggestIcon_22x22_@2x.png │ │ │ └── mine_suggestIcon_24x24_@3x.png │ │ ├── mine_zhubo.imageset │ │ │ ├── Contents.json │ │ │ ├── mine_zhubo_22x22_@2x.png │ │ │ └── mine_zhubo_24x24_@3x.png │ │ └── shake_icon.imageset │ │ │ ├── Contents.json │ │ │ ├── shake_icon_22x22_@2x.png │ │ │ └── shake_icon_24x24_@3x.png │ ├── NavBar │ │ ├── Contents.json │ │ ├── LOGO.imageset │ │ │ ├── Contents.json │ │ │ └── LOGO@2x.png │ │ ├── navigationbar.imageset │ │ │ ├── Contents.json │ │ │ └── navigationbarBackgroundWhite.png │ │ ├── navigationbarBackgroundWhite.imageset │ │ │ ├── Contents.json │ │ │ └── navigationbarBackgroundWhite.png │ │ ├── searchbutton_nor.imageset │ │ │ ├── Contents.json │ │ │ └── searchbutton_nor@2x.png │ │ ├── searchbutton_sel.imageset │ │ │ ├── Contents.json │ │ │ └── searchbutton_sel@2x.png │ │ ├── setting_back.imageset │ │ │ ├── Contents.json │ │ │ ├── setting_back@2x.png │ │ │ └── setting_back@3x.png │ │ └── title_image.imageset │ │ │ ├── Contents.json │ │ │ └── title_image.png │ └── tabBar │ │ ├── Contents.json │ │ ├── menu_goddess_nor.imageset │ │ ├── Contents.json │ │ └── menu_goddess_normal_21x22_@2x.png │ │ ├── menu_goddess_sel.imageset │ │ ├── Contents.json │ │ └── menu_goddess_21x22_@2x.png │ │ ├── menu_homepage_nor.imageset │ │ ├── Contents.json │ │ └── menu_homepage_24x24_@2x.png │ │ ├── menu_homepage_sel.imageset │ │ ├── Contents.json │ │ └── menu_homepage_sel_24x24_@2x.png │ │ ├── menu_mine_nor.imageset │ │ ├── Contents.json │ │ └── menu_mine_24x24_@2x.png │ │ ├── menu_mine_sel.imageset │ │ ├── Contents.json │ │ └── menu_mine_sel_24x24_@2x.png │ │ ├── menu_youxi_nor.imageset │ │ ├── Contents.json │ │ └── menu_youxi_24x24_@2x.png │ │ ├── menu_youxi_sel.imageset │ │ ├── Contents.json │ │ └── menu_youxi_sel_24x24_@2x.png │ │ ├── menu_yule_nor.imageset │ │ ├── Contents.json │ │ └── menu_yule_24x24_@2x.png │ │ └── menu_yule_sel.imageset │ │ ├── Contents.json │ │ └── menu_yule_sel_24x24_@2x.png │ └── Info.plist └── 屏幕截图 ├── 娱乐.gif ├── 小葱秀.gif ├── 我的.gif ├── 游戏.gif ├── 频道列表.gif └── 首页.gif /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | ## Playgrounds 31 | timeline.xctimeline 32 | playground.xcworkspace 33 | 34 | # Swift Package Manager 35 | # 36 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 37 | # Packages/ 38 | .build/ 39 | 40 | # CocoaPods 41 | # 42 | # We recommend against adding the Pods directory to your .gitignore. However 43 | # you should judge for yourself, the pros and cons are mentioned at: 44 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 45 | # 46 | # Pods/ 47 | 48 | # Carthage 49 | # 50 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 51 | # Carthage/Checkouts 52 | 53 | Carthage/Build 54 | 55 | # fastlane 56 | # 57 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 58 | # screenshots whenever they are needed. 59 | # For more information about the recommended setup visit: 60 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 61 | 62 | fastlane/report.xml 63 | fastlane/Preview.html 64 | fastlane/screenshots 65 | fastlane/test_output 66 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PandaTV 2 | **Swift3.0 + MVVM 之熊猫TV** 3 | > **导读:** 现在直播比较热门,市面上有很多直播APP,比如熊猫TV、斗鱼、映客、喵播、战旗等等。本人屌丝一枚,平时也玩玩LOL,我不会告诉你我是青铜5的渣渣😂😂😂。 工作了没电脑玩,就看看直播,所以就有了这个仿写的项目。 4 | **** 5 | >**声明:** 1.这个项目中的接口都是用青花瓷[下载地址](https://pan.baidu.com/s/1pL6ClBX)抓取的,只用作学习。关于如何用青花瓷抓取数据, [请点击这里](http://www.cnblogs.com/dsxniubility/p/4621314.html) 6 | > 2.项目中的素材都是从熊猫TV.ipa中提取出来的,这里提供一个工具 [iOS Image Extractor](https://github.com/devcxm/iOS-Images-Extractor) 关于这个工具如何使用,请看[这篇文章](http://blog.csdn.net/github_33362155/article/details/51206299) 7 | **** 8 | > **工程环境:** Xcode8.0 + swift3.0 9 | > **使用框架:** **Alamofire**请求数据,**Kingfisher**加载图片。 两个框架的用法github官方有,网上也有,项目中也有。 10 | 11 | #####项目介绍 12 | 一开始是想把直播做好的,应为这才是精髓,**奈何青花瓷抓取不到直播地址**,弄了很久,也抓取不到。只能说尽力了。如果有大神有获取直播间播放地址的方法,请告知 13 | 14 | **真是抓取不到直播间地址,不是我不做视频功能,大家可以自己试试** 15 | 16 | **真是抓取不到直播间地址,不是我不做视频功能,大家可以自己试试** 17 | 18 | **真是抓取不到直播间地址,不是我不做视频功能,大家可以自己试试** 19 | 20 | 重要的事情说三遍 21 | 22 | 整个项目分为5大模块:首页、游戏、娱乐、小葱秀、我的。下面用5张图片简单介绍各个界面构成 23 | 24 | - 首页: 25 | - 点击rightBarButtonItem跳转搜索控制器,可以搜索你感兴趣的内容 26 | - 菜单视图切换控制器,可以左右滑动,点击 ➕ 跳转频道选择页面,可以添加自己喜欢的频道 27 | - 广告滚动栏,collectionView + pageControl 28 | - 各种分类,collectionView分组实现 29 | 30 | ![Alt 首页](./XMTV/屏幕截图/首页.gif) 31 | 32 | - 频道选择控制器: 33 | - 1. 初始状态,常用频道没有内容。用户点击所有频道列表,点击的频道会从所有频道移除,添加到常用频道 34 | - 2. 常用频道有内容时,当用户点击常用频道,所点击的频道会从常用频道移除,自动添加到所有频道中最后一个 35 | - 3. 当常用频道有内容时, 用户长按某一个频道,能在常用频道中随意拖动更换位置 36 | - 4. 当用户点击左上角返回按钮时,常用频道会同步更新到菜单选择器中。 37 | 38 | ![频道列表截图](./XMTV/屏幕截图/频道列表.gif) 39 | 40 | - 游戏 41 | - collectionView实现,没什么好说的。点击每个item跳转不同游戏分类视频列表,也是collectionView实现 42 | 43 | ![游戏截图](./XMTV/屏幕截图/游戏.gif) 44 | 45 | - 娱乐 46 | - pageTitleView,切换频道,可左右滑动 47 | - 下面是collectionView,没什么好说的 48 | 49 | ![娱乐截图](./XMTV/屏幕截图/娱乐.gif) 50 | 51 | - 小葱秀 52 | - 使用UIWebwView加载网页 53 | 54 | ![小葱秀截图](./XMTV/屏幕截图/小葱秀.gif) 55 | 56 | - 我的 57 | - tableview静态cell分组 58 | 59 | ![我的截图](./XMTV/屏幕截图/我的.gif) 60 | 61 | 本项目是用swift + MVVM 写的。 本人也是才接触swift不久,对swift3.0的了解也不是很透彻,所有项目中存在很多问题或者垃圾代码。**如果你有什么好的建议或者意见可以issu我,或者可以私信[我的简书](http://www.jianshu.com/u/66a861134217),或者给我[发邮件](yang121yang@yeah.net)** 62 | 63 | **你觉得对你有所帮助的话,请献上宝贵的Star!!! 不胜感激!!!** 64 | -------------------------------------------------------------------------------- /XMTV/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '9.0' 2 | use_frameworks! 3 | 4 | target 'XMTV' do 5 | pod 'Alamofire' 6 | pod 'Kingfisher' 7 | end 8 | -------------------------------------------------------------------------------- /XMTV/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.2.0) 3 | - Kingfisher (3.2.4) 4 | 5 | DEPENDENCIES: 6 | - Alamofire 7 | - Kingfisher 8 | 9 | SPEC CHECKSUMS: 10 | Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe 11 | Kingfisher: 8d80f39da403cd9c9ee11984e1655f4d6a566cdb 12 | 13 | PODFILE CHECKSUM: b71f1d123c99031fb1c9dd0d3c1d8bd12c2321eb 14 | 15 | COCOAPODS: 1.2.0.beta.3 16 | -------------------------------------------------------------------------------- /XMTV/Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /XMTV/Pods/Alamofire/Source/DispatchQueue+Alamofire.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Alamofire.swift 3 | // 4 | // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | // 24 | 25 | import Dispatch 26 | import Foundation 27 | 28 | extension DispatchQueue { 29 | static var userInteractive: DispatchQueue { return DispatchQueue.global(qos: .userInteractive) } 30 | static var userInitiated: DispatchQueue { return DispatchQueue.global(qos: .userInitiated) } 31 | static var utility: DispatchQueue { return DispatchQueue.global(qos: .utility) } 32 | static var background: DispatchQueue { return DispatchQueue.global(qos: .background) } 33 | 34 | func after(_ delay: TimeInterval, execute closure: @escaping () -> Void) { 35 | asyncAfter(deadline: .now() + delay, execute: closure) 36 | } 37 | 38 | func syncResult(_ closure: () -> T) -> T { 39 | var result: T! 40 | sync { result = closure() } 41 | return result 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Wei Wang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/Sources/Box.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Box.swift 3 | // Kingfisher 4 | // 5 | // Created by WANG WEI on 2016/09/12. 6 | // Copyright © 2016年 Wei Wang. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Box { 12 | let value: T 13 | init(value: T) { 14 | self.value = value 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/Sources/Kingfisher.h: -------------------------------------------------------------------------------- 1 | // 2 | // Kingfisher.h 3 | // Kingfisher 4 | // 5 | // Created by Wei Wang on 15/4/6. 6 | // 7 | // Copyright (c) 2016 Wei Wang 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining a copy 10 | // of this software and associated documentation files (the "Software"), to deal 11 | // in the Software without restriction, including without limitation the rights 12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | // copies of the Software, and to permit persons to whom the Software is 14 | // furnished to do so, subject to the following conditions: 15 | // 16 | // The above copyright notice and this permission notice shall be included in 17 | // all copies or substantial portions of the Software. 18 | // 19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | // THE SOFTWARE. 26 | 27 | #import 28 | 29 | //! Project version number for Kingfisher. 30 | FOUNDATION_EXPORT double KingfisherVersionNumber; 31 | 32 | //! Project version string for Kingfisher. 33 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[]; 34 | 35 | // In this header, you should import all the public headers of your framework using statements like #import 36 | 37 | 38 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/Sources/Kingfisher.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Kingfisher.swift 3 | // Kingfisher 4 | // 5 | // Created by Wei Wang on 16/9/14. 6 | // 7 | // Copyright (c) 2016 Wei Wang 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining a copy 10 | // of this software and associated documentation files (the "Software"), to deal 11 | // in the Software without restriction, including without limitation the rights 12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | // copies of the Software, and to permit persons to whom the Software is 14 | // furnished to do so, subject to the following conditions: 15 | // 16 | // The above copyright notice and this permission notice shall be included in 17 | // all copies or substantial portions of the Software. 18 | // 19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | // THE SOFTWARE. 26 | 27 | import Foundation 28 | import ImageIO 29 | 30 | #if os(macOS) 31 | import AppKit 32 | public typealias Image = NSImage 33 | public typealias Color = NSColor 34 | public typealias ImageView = NSImageView 35 | typealias Button = NSButton 36 | #else 37 | import UIKit 38 | public typealias Image = UIImage 39 | public typealias Color = UIColor 40 | #if !os(watchOS) 41 | public typealias ImageView = UIImageView 42 | typealias Button = UIButton 43 | #endif 44 | #endif 45 | 46 | public final class Kingfisher { 47 | public let base: Base 48 | public init(_ base: Base) { 49 | self.base = base 50 | } 51 | } 52 | 53 | /** 54 | A type that has Kingfisher extensions. 55 | */ 56 | public protocol KingfisherCompatible { 57 | associatedtype CompatibleType 58 | var kf: CompatibleType { get } 59 | } 60 | 61 | public extension KingfisherCompatible { 62 | public var kf: Kingfisher { 63 | get { return Kingfisher(self) } 64 | } 65 | } 66 | 67 | extension Image: KingfisherCompatible { } 68 | #if !os(watchOS) 69 | extension ImageView: KingfisherCompatible { } 70 | extension Button: KingfisherCompatible { } 71 | #endif 72 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/Sources/RequestModifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RequestModifier.swift 3 | // Kingfisher 4 | // 5 | // Created by Wei Wang on 2016/09/05. 6 | // 7 | // Copyright (c) 2016 Wei Wang 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining a copy 10 | // of this software and associated documentation files (the "Software"), to deal 11 | // in the Software without restriction, including without limitation the rights 12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | // copies of the Software, and to permit persons to whom the Software is 14 | // furnished to do so, subject to the following conditions: 15 | // 16 | // The above copyright notice and this permission notice shall be included in 17 | // all copies or substantial portions of the Software. 18 | // 19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | // THE SOFTWARE. 26 | 27 | import Foundation 28 | 29 | /// Request modifier of image downloader. 30 | public protocol ImageDownloadRequestModifier { 31 | func modified(for request: URLRequest) -> URLRequest? 32 | } 33 | 34 | struct NoModifier: ImageDownloadRequestModifier { 35 | static let `default` = NoModifier() 36 | private init() {} 37 | func modified(for request: URLRequest) -> URLRequest? { 38 | return request 39 | } 40 | } 41 | 42 | public struct AnyModifier: ImageDownloadRequestModifier { 43 | 44 | let block: (URLRequest) -> URLRequest? 45 | 46 | public func modified(for request: URLRequest) -> URLRequest? { 47 | return block(request) 48 | } 49 | 50 | public init(modify: @escaping (URLRequest) -> URLRequest? ) { 51 | block = modify 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /XMTV/Pods/Kingfisher/Sources/ThreadHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ThreadHelper.swift 3 | // Kingfisher 4 | // 5 | // Created by Wei Wang on 15/10/9. 6 | // 7 | // Copyright (c) 2016 Wei Wang 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining a copy 10 | // of this software and associated documentation files (the "Software"), to deal 11 | // in the Software without restriction, including without limitation the rights 12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | // copies of the Software, and to permit persons to whom the Software is 14 | // furnished to do so, subject to the following conditions: 15 | // 16 | // The above copyright notice and this permission notice shall be included in 17 | // all copies or substantial portions of the Software. 18 | // 19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | // THE SOFTWARE. 26 | 27 | import Foundation 28 | 29 | extension DispatchQueue { 30 | // This method will dispatch the `block` to self. 31 | // If `self` is the main queue, and current thread is main thread, the block 32 | // will be invoked immediately instead of being dispatched. 33 | func safeAsync(_ block: @escaping ()->()) { 34 | if self === DispatchQueue.main && Thread.isMainThread { 35 | block() 36 | } else { 37 | async { block() } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /XMTV/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.2.0) 3 | - Kingfisher (3.2.4) 4 | 5 | DEPENDENCIES: 6 | - Alamofire 7 | - Kingfisher 8 | 9 | SPEC CHECKSUMS: 10 | Alamofire: aa2e09d871c9160ac53c90e83c68064a94e3dfbe 11 | Kingfisher: 8d80f39da403cd9c9ee11984e1655f4d6a566cdb 12 | 13 | PODFILE CHECKSUM: b71f1d123c99031fb1c9dd0d3c1d8bd12c2321eb 14 | 15 | COCOAPODS: 1.2.0.beta.3 16 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double AlamofireVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/Alamofire.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Alamofire 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Alamofire/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 | FMWK 17 | CFBundleShortVersionString 18 | 4.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/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 | FMWK 17 | CFBundleShortVersionString 18 | 3.2.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/Kingfisher-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Kingfisher : NSObject 3 | @end 4 | @implementation PodsDummy_Kingfisher 5 | @end 6 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/Kingfisher-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/Kingfisher-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Kingfisher.h" 14 | 15 | FOUNDATION_EXPORT double KingfisherVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/Kingfisher.modulemap: -------------------------------------------------------------------------------- 1 | framework module Kingfisher { 2 | umbrella header "Kingfisher-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Kingfisher/Kingfisher.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kingfisher 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -framework "CFNetwork" 5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Kingfisher 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | SWIFT_VERSION = 3.0 13 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/Pods-XMTV-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_XMTV : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_XMTV 5 | @end 6 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/Pods-XMTV-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_XMTVVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_XMTVVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/Pods-XMTV.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Kingfisher" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Alamofire/Alamofire.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Kingfisher/Kingfisher.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "Kingfisher" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/Pods-XMTV.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_XMTV { 2 | umbrella header "Pods-XMTV-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /XMTV/Pods/Target Support Files/Pods-XMTV/Pods-XMTV.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Kingfisher" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/Alamofire/Alamofire.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/Kingfisher/Kingfisher.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "Alamofire" -framework "Kingfisher" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = $BUILD_DIR 9 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /XMTV/XMTV.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /XMTV/XMTV.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /XMTV/XMTV/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/3. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | 17 | func application(_ applicatio·n: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 18 | 19 | window = UIWindow.init() 20 | let tabBarController = TabBarController.init() 21 | window?.rootViewController = tabBarController 22 | window?.makeKeyAndVisible() 23 | 24 | // 显示引导页 25 | 26 | 27 | return true 28 | } 29 | 30 | func applicationWillResignActive(_ application: UIApplication) { 31 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 32 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 33 | } 34 | 35 | func applicationDidEnterBackground(_ application: UIApplication) { 36 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 37 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 38 | } 39 | 40 | func applicationWillEnterForeground(_ application: UIApplication) { 41 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 42 | } 43 | 44 | func applicationDidBecomeActive(_ application: UIApplication) { 45 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 46 | } 47 | 48 | func applicationWillTerminate(_ application: UIApplication) { 49 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 50 | } 51 | 52 | 53 | } 54 | 55 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Controller/LovelyPetsVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LovelyPetsVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LovelyPetsVC: BaseEntertainmentVC { 12 | 13 | fileprivate lazy var lovelyVM: LovelyPetsVM = LovelyPetsVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | 18 | override func loadData() { 19 | baseVM = self.lovelyVM 20 | lovelyVM.requestData { 21 | self.collectionView.reloadData() 22 | self.loadDataFinished() 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Controller/MusincVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MusicVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MusicVC: BaseEntertainmentVC { 12 | 13 | fileprivate lazy var musicVM: MusicVM = MusicVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | 18 | override func loadData() { 19 | baseVM = self.musicVM 20 | musicVM.requestData { 21 | self.collectionView.reloadData() 22 | self.loadDataFinished() 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Controller/OutdoorLivingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OutdoorLivingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class OutdoorLivingVC: BaseEntertainmentVC { 12 | 13 | fileprivate lazy var outdoorVM: OutdoorLivingVM = OutdoorLivingVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | 18 | override func loadData() { 19 | baseVM = self.outdoorVM 20 | outdoorVM.requestData { 21 | self.collectionView.reloadData() 22 | self.loadDataFinished() 23 | } 24 | } 25 | } 26 | 27 | 28 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Controller/PandaStarShowVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PandaStarShowVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PandaStarShowVC: BaseEntertainmentVC { 12 | 13 | fileprivate lazy var starShowVM: PandaStarShowVM = PandaStarShowVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | } 18 | 19 | // MARK:- 发送网络请求 20 | extension PandaStarShowVC { 21 | override func loadData() { 22 | baseVM = self.starShowVM 23 | starShowVM.requestData { 24 | self.collectionView.reloadData() 25 | self.loadDataFinished() 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Controller/TableGamesVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TableGamesVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TableGamesVC: BaseEntertainmentVC { 12 | 13 | fileprivate lazy var tableGamesVM: TableGamesVM = TableGamesVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | 18 | override func loadData() { 19 | baseVM = self.tableGamesVM 20 | tableGamesVM.requestData { 21 | self.collectionView.reloadData() 22 | self.loadDataFinished() 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Model/ClassificationModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ClassificationModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ClassificationModel: NSObject { 12 | 13 | var cname: String = "" 14 | var ename: String = "" 15 | 16 | init(dict : [String : Any]) { 17 | super.init() 18 | setValuesForKeys(dict) 19 | } 20 | 21 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 22 | } 23 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Model/LivelistModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LivelistModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LivelistModel: NSObject { 12 | 13 | var id: String = "" 14 | var ver: String = "" 15 | var createtime: String = "" 16 | var updatetime: String = "" 17 | var name: String = "" 18 | var hostid: String = "" 19 | var person_num: Int = 0 20 | var announcement: String = "" 21 | 22 | var classification: [String: Any]? 23 | var pictures: [String: Any]? 24 | var userinfo: [String: Any]? 25 | 26 | var status: Int = 0 27 | var start_time: String = "" 28 | var end_time: String = "" 29 | var duration: String = "" 30 | var schedule: Int = 0 31 | var remind_switch: Int = 0 32 | var remind_content: String = "" 33 | var level: Int = 0 34 | var stream_status: Int = 0 35 | var classify_switch: Int = 0 36 | var reliable: Int = 0 37 | var banned_reason: Int = 0 38 | var unlock_time: Int = 0 39 | var speak_interval: Int = 0 40 | var person_num_thres: String = "" 41 | var reduce_ratio: String = "" 42 | var person_switch: String = "" 43 | var watermark_switch: Int = 0 44 | var watermark_loc: Int = 0 45 | var account_status: Int = 0 46 | var person_src: String = "" 47 | var display_type: Int = 0 48 | var tag: String = "" 49 | var tag_switch: Int = 0 50 | var tag_color: Int = 0 51 | var rcmd_ratio: Int = 0 52 | var show_pos: Int = 0 53 | var rtype_usable: Int = 0 54 | var room_type: Int = 0 55 | var rtype_value: Int = 0 56 | var style_type: Int = 0 57 | var cdn_rate: Int = 0 58 | var room_key: String = "" 59 | var fans: Int = 0 60 | 61 | init(dict : [String : Any]) { 62 | super.init() 63 | setValuesForKeys(dict) 64 | } 65 | 66 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 67 | } 68 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Model/PictureModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PictureModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PictureModel: NSObject { 12 | 13 | var img: String = "" 14 | 15 | init(dict : [String : Any]) { 16 | super.init() 17 | setValuesForKeys(dict) 18 | } 19 | 20 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 21 | } 22 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/Model/UserinfoModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserinfoModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class UserinfoModel: NSObject { 12 | 13 | var nickName: String = "" 14 | var rid: Int = 0 15 | var avatar: String = "" 16 | var userName: String = "" 17 | 18 | init(dict : [String : Any]) { 19 | super.init() 20 | setValuesForKeys(dict) 21 | } 22 | 23 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 24 | } 25 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/EntertainmentVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EntertainmentVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class EntertainmentVM: NSObject { 12 | 13 | lazy var livelistModels : [LivelistModel] = [LivelistModel]() 14 | 15 | // cate=hwzb&pageno=2&pagenum=10&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore 16 | // func requestLivelistData(_ finishCallback : @escaping () -> ()){ 17 | // HttpTools.requestData(.get, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate", parameters: ["version" : "2.401"]) { (result) in 18 | // guard let dict = result as? [String : Any] else { return } 19 | // guard let arr = dict["data"] as? [[String : Any]] else { return } 20 | // for dict in arr { 21 | // self.livelistModels.append(LivelistModel(dict: dict)) 22 | // } 23 | // finishCallback() 24 | // } 25 | // } 26 | } 27 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/LovelyPetsVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LovelyPetsVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LovelyPetsVM: BaseVM { 12 | func requestData(finishedCallback : @escaping () -> ()) { 13 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=pets&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/MusicVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MusicVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MusicVM: BaseVM { 12 | func requestData(finishedCallback : @escaping () -> ()) { 13 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=music&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/OutdoorLivingVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OutdoorLivingVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class OutdoorLivingVM: BaseVM { 12 | func requestData(finishedCallback : @escaping () -> ()) { 13 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=hwzb&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/PandaStarShowVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PandaStarShowVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PandaStarShowVM: BaseVM { 12 | func requestData(finishedCallback : @escaping () -> ()) { 13 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=yzdr&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Entertainment/ViewModel/TableGamesVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TableGamesVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TableGamesVM: BaseVM { 12 | func requestData(finishedCallback : @escaping () -> ()) { 13 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=boardgames&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Game/Model/GameModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GameModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/4. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class GameModel: NSObject, NSCoding { 12 | 13 | var cname: String = "" 14 | var ename: String = "" 15 | var img: String = "" 16 | var ext: String = "" 17 | var status: Int? 18 | var cdn_rate: Int? 19 | 20 | init(dict: [String: Any]) { 21 | super.init() 22 | setValuesForKeys(dict) 23 | } 24 | 25 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 26 | 27 | // MARK:- 处理需要归档的字段 28 | func encode(with aCoder:NSCoder) { 29 | aCoder.encode(cname, forKey:"cname") 30 | aCoder.encode(ename, forKey:"ename") 31 | aCoder.encode(img, forKey:"img") 32 | aCoder.encode(ext, forKey:"ext") 33 | aCoder.encode(status, forKey:"status") 34 | aCoder.encode(cdn_rate, forKey:"cdn_rate") 35 | } 36 | 37 | // MARK:- 处理需要解档的字段 38 | required init(coder aDecoder:NSCoder) { 39 | super.init() 40 | cname = (aDecoder.decodeObject(forKey:"cname")as? String)! 41 | ename = (aDecoder.decodeObject(forKey:"ename")as? String)! 42 | img = (aDecoder.decodeObject(forKey:"img")as? String)! 43 | ext = (aDecoder.decodeObject(forKey:"ext")as? String)! 44 | status = aDecoder.decodeObject(forKey:"status")as? Int 45 | cdn_rate = aDecoder.decodeObject(forKey:"cdn_rate")as? Int 46 | } 47 | 48 | override init() { 49 | super.init() 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Game/View/CollectionGameCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionGameCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/4. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Kingfisher 11 | 12 | class CollectionGameCell: UICollectionViewCell { 13 | @IBOutlet weak var imageView: UIImageView! 14 | @IBOutlet weak var nameLabel: UILabel! 15 | 16 | var gameModel: GameModel? { 17 | didSet { 18 | guard let iconURL = URL(string: gameModel?.img ?? "") else { return } 19 | imageView.kf.setImage(with: iconURL) 20 | nameLabel.text = gameModel?.cname 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Game/View/CollectionGameLiveCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionGameLiveCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/4. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionGameLiveCell: UICollectionViewCell { 12 | @IBOutlet weak var imageView: UIImageView! 13 | @IBOutlet weak var nickNameLabel: UILabel! 14 | @IBOutlet weak var nameLabel: UILabel! 15 | @IBOutlet weak var person_numBtn: UIButton! 16 | 17 | override func awakeFromNib() { 18 | super.awakeFromNib() 19 | // Initialization code 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Game/ViewModel/GameVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GameVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class GameVM: NSObject { 12 | //http://api.m.panda.tv/index.php?method=category.list&type=game&__version=1.1.7.1305&__plat=ios&__channel=appstore 13 | lazy var gameArray: [GameModel] = [GameModel]() 14 | func loadGameData(finishedCallback : @escaping () -> ()) { 15 | NetworkTool.request(type: .GET, urlString: "http://api.m.panda.tv/index.php", paramters: ["method":"category.list", "type":"game", "__version":"1.1.7.1305", "__plat":"ios", "__channel":"appstore"]) { (result) in 16 | guard let resultDict = result as? [String: NSObject] else { return } 17 | guard let dataArray = resultDict["data"] as? [[String: NSObject]] else { return } 18 | for dict in dataArray { 19 | self.gameArray.append(GameModel(dict: dict)) 20 | } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Controller/AllLivingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AllLivingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/18. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class AllLivingVC: BaseSearchVC { 12 | 13 | fileprivate lazy var allLivingVM: AllLivingVM = AllLivingVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | } 18 | 19 | // MARK:- 发送网络请求 20 | extension AllLivingVC { 21 | override func loadData() { 22 | baseVM = self.allLivingVM 23 | allLivingVM.requestData { 24 | self.collectionView.reloadData() 25 | self.loadDataFinished() 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Controller/IsLivingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IsLivingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class IsLivingVC: BaseSearchVC { 12 | 13 | fileprivate lazy var searchVM: IsLivingVM = IsLivingVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | } 18 | 19 | // MARK:- 发送网络请求 20 | extension IsLivingVC { 21 | override func loadData() { 22 | baseVM = self.searchVM 23 | searchVM.status = 2 24 | searchVM.keywords = UserDefaults.standard.object(forKey: "keywords") as! String 25 | searchVM.requestLivingData { 26 | self.collectionView.reloadData() 27 | self.loadDataFinished() 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Controller/MoreLivingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MoreLivingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MoreLivingVC: BaseEntertainmentVC { 12 | 13 | var cateName: String = "" 14 | fileprivate lazy var moreLivingVM: MoreLivingVM = MoreLivingVM() 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | } 18 | 19 | // MARK:- 发送网络请求 20 | override func loadData() { 21 | baseVM = self.moreLivingVM 22 | moreLivingVM.cate = cateName 23 | moreLivingVM.requestData { 24 | self.collectionView.reloadData() 25 | self.loadDataFinished() 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Controller/RecommendVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/13. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | private let kCycleViewH : CGFloat = kScreenW * 2 / 5 12 | 13 | class RecommendVC: BaseRecommendVC { 14 | 15 | fileprivate lazy var recommendVM : RecommendVM = RecommendVM() 16 | fileprivate lazy var cycleView : BannerCycleView = { 17 | let cycleView = BannerCycleView.bannerCycleView() 18 | cycleView.frame = CGRect(x: 0, y: -kCycleViewH, width: kScreenW, height: kCycleViewH)//指定大小 19 | return cycleView 20 | }() 21 | 22 | } 23 | 24 | extension RecommendVC { 25 | override func setupUI(){ 26 | super.setupUI() 27 | collectionView.addSubview(cycleView) 28 | collectionView.contentInset = UIEdgeInsets(top: kCycleViewH, left: 0, bottom: 0, right: 0) 29 | } 30 | } 31 | 32 | //MARK:- 网络请求 33 | extension RecommendVC { 34 | override func loadData(){ 35 | baseVM = recommendVM 36 | //闭包对VC有强引用 VC对recommendVM有强引用 recommendVM没有对闭包有强引用 =>没有形成循环引用 37 | recommendVM.requestData { 38 | self.collectionView.reloadData() 39 | } 40 | recommendVM.requestCycleData { 41 | self.cycleView.cycleModels = self.recommendVM.cycleModels 42 | } 43 | self.loadDataFinished() 44 | } 45 | } 46 | 47 | extension RecommendVC : UICollectionViewDelegateFlowLayout{ 48 | func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 49 | return CGSize(width: kNormalItemW, height: kNormalItemH) 50 | } 51 | 52 | override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 53 | return super.collectionView(collectionView, cellForItemAt: indexPath) 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Controller/UnLivingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UnLivingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class UnLivingVC: BaseSearchVC { 12 | 13 | fileprivate lazy var searchVM: IsLivingVM = IsLivingVM() 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | } 17 | } 18 | 19 | // MARK:- 发送网络请求 20 | extension UnLivingVC { 21 | override func loadData() { 22 | baseVM = self.searchVM 23 | searchVM.status = 3 24 | searchVM.keywords = UserDefaults.standard.object(forKey: "keywords") as! String 25 | searchVM.requestLivingData { 26 | self.collectionView.reloadData() 27 | self.loadDataFinished() 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Model/BannersModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BannersModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/18. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BannersModel: NSObject { 12 | 13 | var roomid: String = "" 14 | var name: String = "" 15 | var display_type: Int = 0 16 | var title: String = "" 17 | var bigimg: String = "" 18 | var smallimg: String = "" 19 | var style_type: Int = 0 20 | var type: Int = 0 21 | 22 | init(dict : [String : Any]) { 23 | super.init() 24 | setValuesForKeys(dict) 25 | } 26 | 27 | override func setValue(_ value: Any?, forUndefinedKey key: String) { 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Model/LivingAndBannersModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LivingAndBannersModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/18. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class LivingAndBannersModel: NSObject { 12 | 13 | lazy var anchors: [LivelistModel] = [LivelistModel]() 14 | lazy var bannerAds: [BannersModel] = [BannersModel]() 15 | var total: Int = 0 16 | var items: [[String: Any]]? { 17 | didSet { 18 | guard let items1 = items else { return } 19 | for dict in items1 { 20 | anchors.append(LivelistModel(dict: dict)) 21 | } 22 | } 23 | } 24 | 25 | var banners: [[String: Any]]? { 26 | didSet { 27 | guard let banner = banners else { return } 28 | for dict in banner { 29 | bannerAds.append(BannersModel(dict: dict)) 30 | } 31 | } 32 | } 33 | 34 | 35 | init(dict : [String : Any]) { 36 | super.init() 37 | setValuesForKeys(dict) 38 | } 39 | 40 | override func setValue(_ value: Any?, forUndefinedKey key: String) { 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Model/SearchListModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchListModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/17. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SearchListModel: NSObject { 12 | 13 | var md5: String = "" 14 | var nickname: String = "" 15 | var roomid: String = "" 16 | var hostid: String = "" 17 | var name: String = "" 18 | var style: String = "" 19 | // var class: String = "" 20 | var classification: String = "" 21 | var person_num: Int = 0 22 | var bamboos: Int = 0 23 | var fans: Int = 0 24 | var status: Int = 0 25 | var content: String = "" 26 | var pictures: [String: Any]? 27 | var updatetime: String = "" 28 | var reliable: Int = 0 29 | var sex: Int = 0 30 | var province: Int = 0 31 | var url_footprint: String = "" 32 | var se: [String: Any]? 33 | var display_type: Int = 0 34 | var tag: String = "" 35 | var tag_switch: Int = 0 36 | var tag_color: Int = 0 37 | var style_type: Int = 0 38 | 39 | init(dict : [String : Any]) { 40 | super.init() 41 | setValuesForKeys(dict) 42 | } 43 | 44 | override func setValue(_ value: Any?, forUndefinedKey key: String) { 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/Model/SearchModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SearchModel: NSObject { 12 | 13 | lazy var anchors: [SearchListModel] = [SearchListModel]() 14 | var total: Int = 0 15 | var items: [[String: Any]]? { 16 | didSet { 17 | guard let items1 = items else { return } 18 | for dict in items1 { 19 | anchors.append(SearchListModel(dict: dict)) 20 | } 21 | } 22 | } 23 | 24 | init(dict : [String : Any]) { 25 | super.init() 26 | setValuesForKeys(dict) 27 | } 28 | 29 | override func setValue(_ value: Any?, forUndefinedKey key: String) { 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/View/CollectionSubcateCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionSubcateCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/9. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionSubcateCell: UICollectionViewCell { 12 | 13 | @IBOutlet weak var itemButton: UIButton! 14 | override func awakeFromNib() { 15 | super.awakeFromNib() 16 | itemButton.isUserInteractionEnabled = false 17 | itemButton.setBackgroundImage(UIImage(named: "getButton_hove"), for: .normal) 18 | itemButton.setTitleColor(UIColor(r: 104, g: 225, b: 182), for: .normal) 19 | } 20 | 21 | var subcateModel: GameModel? { 22 | didSet { 23 | itemButton.setTitle(subcateModel?.cname, for: .normal) 24 | } 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/View/CollectionSubcateSelectedCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionSubcateSelectedCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/9. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionSubcateSelectedCell: UICollectionViewCell { 12 | 13 | @IBOutlet weak var itemButton: UIButton! 14 | override func awakeFromNib() { 15 | super.awakeFromNib() 16 | itemButton.setBackgroundImage(UIImage(named: "pindaoxuanze_changyong_button_normal"), for: .normal) 17 | itemButton.setBackgroundImage(UIImage(named: "pindaoxuanze_changyong_button_press"), for: .highlighted) 18 | } 19 | 20 | var subcateModel: GameModel? { 21 | didSet { 22 | itemButton.setTitle(subcateModel?.cname, for: .normal) 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/ViewModel/AllLivingVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AllLivingVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/18. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class AllLivingVM: BaseVM { 12 | 13 | func requestData(finishedCallback : @escaping () -> ()) { 14 | loadSearchData(URLString: "http://api.m.panda.tv/ajax_live_lists?pageno=1&pagenum=20&order=person_num&status=2&banner=1&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/ViewModel/IsLivingVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IsLivingVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class IsLivingVM: BaseVM { 12 | 13 | var status: Int = 0 14 | var keywords: String = "" 15 | func requestLivingData(finishedCallback : @escaping () -> ()) { 16 | loadSearchData(URLString: "http://api.m.panda.tv/ajax_search?keyword=\(keywords)&pageno=1&pagenum=20&status=\(status)&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/ViewModel/MoreLivingVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MoreLivingVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/16. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MoreLivingVM: BaseVM { 12 | 13 | var cate: String = "" 14 | func requestData(finishedCallback : @escaping () -> ()) { 15 | loadAnchorGroupData(isLiveData: true, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_cate?cate=\(cate)&pageno=1&pagenum=20&order=person_num&status=2&__version=1.1.7.1305&__plat=ios&__channel=appstore", finishedCallback: finishedCallback) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Home/ViewModel/RecommendVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/13. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class RecommendVM: BaseVM { 12 | lazy var cycleModels : [CycleModel] = [CycleModel]() 13 | fileprivate lazy var allGroup: AnchorGroup = AnchorGroup() 14 | let params = ["pagenum":"4", "hotroom": "1", "__version": "1.1.7.1305", "__plat": "ios", "__channel": "appstore"] 15 | } 16 | 17 | extension RecommendVM { 18 | //http://api.m.panda.tv/ajax_get_live_list_by_multicate?pagenum=4&hotroom=1&__version=1.1.7.1305&__plat=ios&__channel=appstore 19 | func requestData(finishedCallback : @escaping () -> ()) { 20 | loadAnchorGroupData(isLiveData: false, URLString: "http://api.m.panda.tv/ajax_get_live_list_by_multicate", parameters:params, finishedCallback: finishedCallback) 21 | } 22 | // MARK: - 请求轮播数据 23 | func requestCycleData(_ finishCallback : @escaping () -> ()){ 24 | let parameters = ["__version": "1.1.7.1305", "__plat": "ios", "__channel": "appstore"] 25 | NetworkTool.request(type: .GET, urlString: "http://api.m.panda.tv/ajax_rmd_ads_get", paramters: parameters) { (result) in 26 | guard let dict = result as? [String : Any] else { return } 27 | guard let arr = dict["data"] as? [[String : Any]] else { return } 28 | for dict in arr { 29 | self.cycleModels.append(CycleModel(dict: dict)) 30 | } 31 | print("cycleModels - ",self.cycleModels) 32 | finishCallback() 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/Controller/BaseModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/13. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BaseModel: NSObject { 12 | 13 | // init(dict : [String : Any]) { 14 | // super.init() 15 | // setValuesForKeys(dict) 16 | // } 17 | // 18 | // override func setValue(_ value: Any?, forUndefinedKey key: String) { 19 | // 20 | // } 21 | } 22 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/Controller/BaseVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BaseVC: UIViewController { 12 | 13 | var contentView : UIView? 14 | fileprivate lazy var loadView: UIView = { [unowned self] in 15 | let view = UIView() 16 | view.frame = CGRect(origin: .zero, size: CGSize(width: kScreenW, height: kScreenH-kNavigationBarH-2 * kTabBarH)) 17 | 18 | let imageView = UIImageView(image: UIImage(named: "0tai_icon2-1")) 19 | imageView.center = view.center 20 | imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 21 | 22 | let title = UILabel() 23 | title.font = UIFont.systemFont(ofSize: 13) 24 | title.textColor = UIColor.darkGray 25 | title.text = "在这里,你会找到最有趣的直播。" 26 | title.textAlignment = .center 27 | title.center = CGPoint(x: imageView.center.x, y: imageView.frame.maxY+10) 28 | title.bounds.size = CGSize(width: kScreenW, height: 20) 29 | 30 | view.addSubview(imageView) 31 | view.addSubview(title) 32 | return view 33 | 34 | }() 35 | 36 | override func viewDidLoad() { 37 | super.viewDidLoad() 38 | setupUI() 39 | } 40 | 41 | override func didReceiveMemoryWarning() { 42 | super.didReceiveMemoryWarning() 43 | // Dispose of any resources that can be recreated. 44 | } 45 | } 46 | 47 | extension BaseVC { 48 | func setupUI() { 49 | contentView?.isHidden = true 50 | view.addSubview(loadView) 51 | view.backgroundColor = BGCOLOR 52 | } 53 | 54 | func loadDataFinished() { 55 | loadView.isHidden = true 56 | contentView?.isHidden = false 57 | } 58 | 59 | func resetData() { 60 | loadView.isHidden = false 61 | contentView?.isHidden = true 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/Model/AnchorGroup.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnchorGroup.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/12. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class AnchorGroup: NSObject { 12 | 13 | lazy var anchors: [LivelistModel] = [LivelistModel]() 14 | var type: TypeModel? 15 | var total: Int = 0 16 | var items: [[String: Any]]? { 17 | didSet { 18 | guard let items1 = items else { return } 19 | for dict in items1 { 20 | anchors.append(LivelistModel(dict: dict)) 21 | } 22 | } 23 | } 24 | 25 | override init() {} 26 | 27 | init(dict : [String : Any]) { 28 | super.init() 29 | setValuesForKeys(dict) 30 | } 31 | 32 | override func setValue(_ value: Any?, forUndefinedKey key: String) { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/Model/CycleModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CycleModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/12. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CycleModel: NSObject { 12 | 13 | var title : String = "" 14 | var smallimg : String = "" 15 | var bigimg : String = "" 16 | 17 | init(dict : [String : Any]) { 18 | super.init() 19 | setValuesForKeys(dict) 20 | } 21 | 22 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 23 | 24 | } 25 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/Model/TypeModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TypeModel.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/12. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TypeModel: NSObject { 12 | 13 | var ename: String = "" 14 | var cname: String = "" 15 | var icon: String = "" 16 | 17 | init(dict : [String : Any]) { 18 | super.init() 19 | setValuesForKeys(dict) 20 | } 21 | 22 | override func setValue(_ value: Any?, forUndefinedKey key: String) {} 23 | } 24 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/View/CollectionCycleCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionCycleCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/12. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionCycleCell: UICollectionViewCell { 12 | 13 | @IBOutlet weak var iconImageView: UIImageView! 14 | @IBOutlet weak var titleLabel: UILabel! 15 | 16 | // MARK: 定义模型属性 17 | var cycleModel : CycleModel? { 18 | didSet { 19 | titleLabel.text = cycleModel?.title 20 | let iconURL = URL(string: cycleModel?.bigimg ?? "")! 21 | iconImageView.kf.setImage(with: iconURL, placeholder: UIImage(named: "homepage_refresh_tv")) 22 | } 23 | } 24 | 25 | override func awakeFromNib() { 26 | super.awakeFromNib() 27 | // Initialization code 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/View/CollectionHeaderView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionHeaderView.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/12. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | protocol CollectionHeaderViewDelegate: class { 12 | func moreLivingList(cataName: String, titleName: String) 13 | } 14 | 15 | class CollectionHeaderView: UICollectionReusableView { 16 | 17 | @IBOutlet weak var titleLabel: UILabel! 18 | @IBOutlet weak var iconImageView: UIImageView! 19 | @IBOutlet weak var moreBtn: UIButton! 20 | @IBOutlet weak var arrowBtn: UIButton! 21 | 22 | weak var delegate: CollectionHeaderViewDelegate? 23 | 24 | var total: Int? { 25 | didSet { 26 | if total! <= 4 { 27 | moreBtn.isHidden = true 28 | arrowBtn.isHidden = true 29 | } else { 30 | moreBtn.isHidden = false 31 | arrowBtn.isHidden = false 32 | } 33 | } 34 | } 35 | // MARK:- 定义模型属性 36 | var group : TypeModel? { 37 | didSet { 38 | titleLabel.text = group?.value(forKeyPath: "cname") as! String? 39 | guard let url = URL(string: ((group?.value(forKeyPath: "icon") as! String?)!)) else { return } 40 | iconImageView.kf.setImage(with: url, placeholder: UIImage(named: "defult_h_icon_13x13_")) 41 | } 42 | } 43 | 44 | // MARK: - 点击更多按钮 45 | @IBAction func moreClick(_ sender: UIButton) { 46 | let s1 = (group?.value(forKeyPath: "ename") as! String?) 47 | let s2 = titleLabel.text 48 | delegate?.moreLivingList(cataName: s1!, titleName: s2!) 49 | } 50 | 51 | override func awakeFromNib() { 52 | super.awakeFromNib() 53 | // Initialization code 54 | } 55 | 56 | } 57 | 58 | extension CollectionHeaderView { 59 | class func collectionHeaderView() -> CollectionHeaderView { 60 | return Bundle.main.loadNibNamed("CollectionHeaderView", owner: nil, options: nil)?.first as! CollectionHeaderView 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/View/CollectionNormalCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionNormalCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionNormalCell: UICollectionViewCell { 12 | 13 | @IBOutlet weak var iconImageView: UIImageView! 14 | @IBOutlet weak var onlineBtn: UIButton! 15 | @IBOutlet weak var nickNameLabel: UILabel! 16 | @IBOutlet weak var nameLabel: UILabel! 17 | 18 | var anchor : LivelistModel? { 19 | didSet { 20 | guard let anchor = anchor else { return } 21 | var onlineStr : String = "" 22 | if anchor.person_num >= 10000 { 23 | onlineStr = String(format:"%.1f万",Float(anchor.person_num) / 10000) 24 | } else { 25 | onlineStr = "\(anchor.person_num)" 26 | } 27 | onlineBtn.setTitle(onlineStr, for: UIControlState()) 28 | nickNameLabel.text = anchor.name 29 | 30 | if let picture = anchor.pictures { 31 | guard let iconURL = URL(string: picture["img"] as! String) else { return } 32 | iconImageView.kf.setImage(with: iconURL, placeholder: UIImage(named: "homepage_refresh_tv"), options: [.forceRefresh], progressBlock: nil, completionHandler: nil) 33 | } 34 | 35 | if let userInfo = anchor.userinfo { 36 | nameLabel.text = userInfo["nickName"] as? String 37 | } 38 | } 39 | } 40 | 41 | override func awakeFromNib() { 42 | super.awakeFromNib() 43 | iconImageView.contentMode = .scaleAspectFit 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/View/CollectionSearchCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CollectionSearchCell.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/17. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class CollectionSearchCell: UICollectionViewCell { 12 | 13 | @IBOutlet weak var iconImageView: UIImageView! 14 | @IBOutlet weak var onlineBtn: UIButton! 15 | @IBOutlet weak var nickNameLabel: UILabel! 16 | @IBOutlet weak var nameLabel: UILabel! 17 | 18 | var anchor : SearchListModel? { 19 | didSet { 20 | guard let anchor = anchor else { return } 21 | var onlineStr : String = "" 22 | if anchor.person_num >= 10000 { 23 | onlineStr = String(format:"%.1f万",Float(anchor.person_num) / 10000) 24 | } else { 25 | onlineStr = "\(anchor.person_num)" 26 | } 27 | onlineBtn.setTitle(onlineStr, for: UIControlState()) 28 | nickNameLabel.text = anchor.name 29 | nameLabel.text = anchor.nickname 30 | 31 | if let picture = anchor.pictures { 32 | guard let iconURL = URL(string: picture["img"] as! String) else { return } 33 | iconImageView.kf.setImage(with: iconURL, placeholder: UIImage(named: "homepage_refresh_tv"), options: [.forceRefresh], progressBlock: nil, completionHandler: nil) 34 | } 35 | } 36 | } 37 | 38 | override func awakeFromNib() { 39 | super.awakeFromNib() 40 | iconImageView.contentMode = .scaleAspectFit 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Main/ViewModel/BaseVM.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseVM.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/11. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class BaseVM: NSObject { 12 | // MARK: - items, total, type 13 | lazy var anchorGroups: [AnchorGroup] = [AnchorGroup]() 14 | func loadAnchorGroupData(isLiveData : Bool, URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping () -> ()) { 15 | NetworkTool.request(type: .GET, urlString: URLString, paramters: parameters) { (result) in 16 | guard let dict = result as? [String : Any] else { return } 17 | if isLiveData { 18 | guard let dictionary = dict["data"] as? [String : Any] else { return } 19 | self.anchorGroups.append(AnchorGroup(dict: dictionary)) 20 | } else { 21 | guard let arr = dict["data"] as? [[String : Any]] else { return } 22 | for dict in arr { 23 | self.anchorGroups.append(AnchorGroup(dict: dict)) 24 | } 25 | } 26 | finishedCallback() 27 | } 28 | } 29 | 30 | // MARK: - items, total 31 | lazy var searchGroup: [SearchModel] = [SearchModel]() 32 | func loadSearchData(URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping () -> ()) { 33 | NetworkTool.request(type: .GET, urlString: URLString, paramters: parameters) { (result) in 34 | guard let dict = result as? [String : Any] else { return } 35 | guard let dictionary = dict["data"] as? [String : Any] else { return } 36 | self.searchGroup.append(SearchModel(dict: dictionary)) 37 | finishedCallback() 38 | } 39 | } 40 | 41 | // MARK: - items, total 42 | // lazy var searchGroup: [SearchModel] = [SearchModel]() 43 | // func loadSearchData(URLString : String, parameters : [String : Any]? = nil, finishedCallback : @escaping () -> ()) { 44 | // NetworkTool.request(type: .GET, urlString: URLString, paramters: parameters) { (result) in 45 | // guard let dict = result as? [String : Any] else { return } 46 | // guard let dictionary = dict["data"] as? [String : Any] else { return } 47 | // self.searchGroup.append(SearchModel(dict: dictionary)) 48 | // finishedCallback() 49 | // } 50 | // } 51 | } 52 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Me/Controller/MeVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MeVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/3. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class MeVC: UITableViewController { 12 | 13 | // MARK: - life cycle 14 | override func viewWillAppear(_ animated: Bool) { 15 | super.viewWillAppear(true) 16 | navigationItem.rightBarButtonItem = UIBarButtonItem(imageName: "mine_settingIcon2", highlightedImage: "mine_settingIcon2_press", target: self, action: #selector(MeVC.settingClick)) 17 | } 18 | 19 | override func viewDidLoad() { 20 | super.viewDidLoad() 21 | setTableView() 22 | } 23 | 24 | // MARK: - 设置tableView 25 | func setTableView() { 26 | self.tableView.separatorStyle = .none 27 | self.tableView.sectionHeaderHeight = 0 28 | self.tableView.sectionFooterHeight = 10 29 | self.tableView.contentInset = UIEdgeInsetsMake(-25, 0, 0, 0) 30 | self.tableView.tableFooterView = UIView(frame: .zero) 31 | } 32 | 33 | // MARK: - 点击设置按钮 34 | func settingClick() { 35 | let settingVC = UIStoryboard(name: "SettingVC", bundle: nil).instantiateInitialViewController()! 36 | navigationController?.pushViewController(settingVC, animated: true) 37 | } 38 | 39 | override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 40 | 41 | let section = indexPath.section 42 | let row = indexPath.row 43 | 44 | if section == 0 { 45 | print("点我登陆") 46 | } else if section == 1 { 47 | print("我要当主播") 48 | } else if section == 2 { 49 | print("我的订阅") 50 | } else if section == 3 { 51 | print("观看历史") 52 | } else { 53 | if row == 0 { 54 | print("私信") 55 | } else if row == 1 { 56 | print("摇一摇") 57 | } else if row == 2 { 58 | print("活动中心") 59 | } else if row == 3 { 60 | print("开播提醒") 61 | } else if row == 4 { 62 | print("意见反馈") 63 | } 64 | 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Me/Controller/SettingVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/7. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SettingVC: UITableViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | setupUI() 16 | } 17 | 18 | fileprivate func setupUI() { 19 | title = "设置" 20 | self.tableView.separatorStyle = .none 21 | self.tableView.sectionHeaderHeight = 0 22 | self.tableView.sectionFooterHeight = 10 23 | self.tableView.contentInset = UIEdgeInsetsMake(-25, 0, 0, 0) 24 | self.tableView.tableFooterView = UIView(frame: .zero) 25 | } 26 | 27 | // MARK: - Table view delegate 28 | override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 29 | switch indexPath.section { 30 | case 0: 31 | print("扫一扫") 32 | break 33 | case 1: 34 | print("硬件解码") 35 | break 36 | case 2: 37 | print("清除缓存") 38 | break 39 | case 3: 40 | print("关于我们") 41 | break 42 | 43 | default: 44 | break 45 | } 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/SmallShow/Controller/SmallShowVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SmallShowVC.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/3. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class SmallShowVC: UIViewController { 12 | // MARK: - 由于用青花瓷没有抓取到请求,就用webView直接加载熊猫TV官网 小葱秀地址。显示效果差不多 13 | /// 注意: 控制台打印跟 webView.loadRequest(request)这句代码有关,只要loadRequest就会出现个打印,这个可能是应为ios10 SDK的问题,这个虽然看起来不爽,但是不影响程序正常运行。暂时没有找到解决方法。 14 | 15 | /* objc[22562]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x127e44910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x127c6e210). One of the two will be used. Which one is undefined. 16 | */ 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | automaticallyAdjustsScrollViewInsets = false 21 | let webView = UIWebView(frame: CGRect(x: 0, y: 20, width: kScreenW, height: kScreenH-49)) 22 | webView.delegate = self 23 | view.addSubview(webView) 24 | webView.scrollView.bounces = false 25 | let request = URLRequest(url: URL(string: "http://cong.panda.tv")!) 26 | webView.loadRequest(request) 27 | } 28 | } 29 | 30 | extension SmallShowVC: UIWebViewDelegate{ 31 | // 因为点击WebView上的播放按钮,会跳转其他页面, 这里禁止跳转 32 | func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool { 33 | if request.description.contains("https://m.panda.tv/room.html") { 34 | return false 35 | } else { 36 | return true 37 | } 38 | } 39 | } 40 | 41 | 42 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Tools/Category/UIBarButtonItem-Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem-Extension.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/3. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIBarButtonItem { 12 | 13 | convenience init(imageName : String, highlightedImage : String = "" , size : CGSize = CGSize.zero, target:UIViewController, action:Selector) { 14 | let btn = UIButton() 15 | btn.setImage(UIImage(named : imageName), for: .normal) 16 | if highlightedImage != ""{ 17 | btn.setImage(UIImage(named : highlightedImage), for: .highlighted) 18 | } 19 | if size != CGSize.zero{ 20 | btn.frame = CGRect (origin: CGPoint.zero, size: size) 21 | }else 22 | { 23 | btn.sizeToFit() 24 | } 25 | btn.addTarget(target, action: action, for: .touchUpInside) 26 | self.init(customView: btn) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Tools/Category/UIColor-Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor-Extension.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/3. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIColor { 12 | /// rgb颜色 13 | convenience init(r: CGFloat, g: CGFloat, b: CGFloat) { 14 | self.init(red: r/255.0 ,green: g/255.0 ,blue: b/255.0 ,alpha:1.0) 15 | } 16 | /// 纯色(用于灰色) 17 | convenience init(gray: CGFloat) { 18 | self.init(red: gray/255.0 ,green: gray/255.0 ,blue: gray/255.0 ,alpha:1.0) 19 | } 20 | 21 | class func randomColor() -> UIColor { 22 | return UIColor(r: CGFloat(arc4random_uniform(256)), g: CGFloat(arc4random_uniform(256)), b: CGFloat(arc4random_uniform(256))) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /XMTV/XMTV/Classes/Tools/Network/NetworkTool.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NetworkTool.swift 3 | // XMTV 4 | // 5 | // Created by Mac on 2017/1/4. 6 | // Copyright © 2017年 Mac. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Alamofire 11 | 12 | enum MethodType { 13 | case GET 14 | case POST 15 | } 16 | 17 | class NetworkTool { 18 | class func request(type: MethodType, urlString: String, paramters: [String: Any]? = nil, finishedCallback: @escaping (_ result: Any) -> ()) { 19 | // 获取类型 20 | let method = type == .GET ? HTTPMethod.get : HTTPMethod.post 21 | // 发送网络请求 22 | Alamofire.request(urlString, method: method, parameters: paramters).responseJSON { (response) in 23 | guard let result = response.result.value else { 24 | print(response.result.error) 25 | return 26 | } 27 | // 回调 28 | finishedCallback(result as AnyObject) 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "AppIcon20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "AppIcon20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "AppIcon29x29@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "AppIcon29x29@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "AppIcon40x40@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "AppIcon40x40@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "AppIcon60x60@2x.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "AppIcon60x60@3x.png", 49 | "scale" : "3x" 50 | } 51 | ], 52 | "info" : { 53 | "version" : 1, 54 | "author" : "xcode" 55 | } 56 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/addbutton_43x40_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "addbutton_43x40_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/addbutton_43x40_.imageset/addbutton_43x40_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/addbutton_43x40_.imageset/addbutton_43x40_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/getButton_hove.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "getButton_hover_136x46_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/getButton_hove.imageset/getButton_hover_136x46_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/getButton_hove.imageset/getButton_hover_136x46_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/home_more_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_more_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/home_more_13x13_.imageset/home_more_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/home_more_13x13_.imageset/home_more_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/homepage_refresh_tv.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "homepage_refresh_tv@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "homepage_refresh_tv_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/homepage_refresh_tv.imageset/homepage_refresh_tv@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/homepage_refresh_tv.imageset/homepage_refresh_tv@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/homepage_refresh_tv.imageset/homepage_refresh_tv_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/homepage_refresh_tv.imageset/homepage_refresh_tv_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon1-1.imageset/0tai_icon1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon1-1.imageset/0tai_icon1-1.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon1-1.imageset/0tai_icon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon1-1.imageset/0tai_icon1.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon1-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "0tai_icon1.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "0tai_icon1-1.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon2-1.imageset/0tai_icon2-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon2-1.imageset/0tai_icon2-1.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon2-1.imageset/0tai_icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon2-1.imageset/0tai_icon2.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/0tai_icon2-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "0tai_icon2.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "0tai_icon2-1.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_all_button_22x22_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "history_clear_all_button_22x22_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_all_button_22x22_.imageset/history_clear_all_button_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_all_button_22x22_.imageset/history_clear_all_button_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_button_22x22_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "history_clear_button_22x22_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_button_22x22_.imageset/history_clear_button_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/history_clear_button_22x22_.imageset/history_clear_button_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_16x16_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "search_clear_button_16x16_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_16x16_.imageset/search_clear_button_16x16_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_16x16_.imageset/search_clear_button_16x16_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_hover_16x16_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "search_clear_button_hover_16x16_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_hover_16x16_.imageset/search_clear_button_hover_16x16_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/load/search_clear_button_hover_16x16_.imageset/search_clear_button_hover_16x16_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/look_image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "look_image@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/look_image.imageset/look_image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/look_image.imageset/look_image@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "pindaoxuanze_changyong_button_normal.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_normal.imageset/pindaoxuanze_changyong_button_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_normal.imageset/pindaoxuanze_changyong_button_normal.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_press.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "pindaoxuanze_changyong_button_press.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_press.imageset/pindaoxuanze_changyong_button_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/pindaoxuanze_changyong_button_press.imageset/pindaoxuanze_changyong_button_press.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ahphs3_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_h_icon_13x13_.imageset/ahphs3_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_h_icon_13x13_.imageset/ahphs3_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ahphs3_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_icon_13x13_.imageset/ahphs3_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ahphs3_icon_13x13_.imageset/ahphs3_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "alllive_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_h_icon_13x13_.imageset/alllive_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_h_icon_13x13_.imageset/alllive_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "alllive_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_icon_13x13_.imageset/alllive_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/alllive_icon_13x13_.imageset/alllive_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "csgo_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_h_icon_13x13_.imageset/csgo_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_h_icon_13x13_.imageset/csgo_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "csgo_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_icon_13x13_.imageset/csgo_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/csgo_icon_13x13_.imageset/csgo_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "cyhx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_h_icon_13x13_.imageset/cyhx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_h_icon_13x13_.imageset/cyhx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "cyhx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_icon_13x13_.imageset/cyhx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/cyhx_icon_13x13_.imageset/cyhx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "defult_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_h_icon_13x13_.imageset/defult_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_h_icon_13x13_.imageset/defult_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "defult_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_icon_13x13_.imageset/defult_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/defult_icon_13x13_.imageset/defult_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dota2_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_h_icon_13x13_.imageset/dota2_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_h_icon_13x13_.imageset/dota2_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dota2_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_icon_13x13_.imageset/dota2_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dota2_icon_13x13_.imageset/dota2_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dxcyys_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_h_icon_13x13_.imageset/dxcyys_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_h_icon_13x13_.imageset/dxcyys_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dxcyys_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_icon_13x13_.imageset/dxcyys_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/dxcyys_icon_13x13_.imageset/dxcyys_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fbyx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_h_icon_13x13_.imageset/fbyx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_h_icon_13x13_.imageset/fbyx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fbyx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_icon_13x13_.imageset/fbyx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/fbyx_icon_13x13_.imageset/fbyx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "gdyx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_h_icon_13x13_.imageset/gdyx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_h_icon_13x13_.imageset/gdyx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "gdyx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_icon_13x13_.imageset/gdyx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/gdyx_icon_13x13_.imageset/gdyx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hjjd_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_h_icon_13x13_.imageset/hjjd_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_h_icon_13x13_.imageset/hjjd_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hjjd_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_icon_13x13_.imageset/hjjd_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hjjd_icon_13x13_.imageset/hjjd_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/home_more_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_more_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/home_more_13x13_.imageset/home_more_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/home_more_13x13_.imageset/home_more_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hszz_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_h_icon_13x13_.imageset/hszz_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_h_icon_13x13_.imageset/hszz_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hszz_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_icon_13x13_.imageset/hszz_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hszz_icon_13x13_.imageset/hszz_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hwzb_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_h_icon_13x13_.imageset/hwzb_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_h_icon_13x13_.imageset/hwzb_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hwzb_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_icon_13x13_.imageset/hwzb_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/hwzb_icon_13x13_.imageset/hwzb_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "jptj_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_h_icon_13x13_.imageset/jptj_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_h_icon_13x13_.imageset/jptj_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "jptj_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_icon_13x13_.imageset/jptj_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jptj_icon_13x13_.imageset/jptj_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "jw3_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_h_icon_13x13_.imageset/jw3_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_h_icon_13x13_.imageset/jw3_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "jw3_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_icon_13x13_.imageset/jw3_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/jw3_icon_13x13_.imageset/jw3_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "lscs_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_h_icon_13x13_.imageset/lscs_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_h_icon_13x13_.imageset/lscs_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "lscs_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_icon_13x13_.imageset/lscs_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/lscs_icon_13x13_.imageset/lscs_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mcly_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_h_icon_13x13_.imageset/mcly_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_h_icon_13x13_.imageset/mcly_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mcly_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_icon_13x13_.imageset/mcly_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mcly_icon_13x13_.imageset/mcly_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mssj_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_h_icon_13x13_.imageset/mssj_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_h_icon_13x13_.imageset/mssj_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mssj_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_icon_13x13_.imageset/mssj_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mssj_icon_13x13_.imageset/mssj_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mxd2_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_h_icon_13x13_.imageset/mxd2_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_h_icon_13x13_.imageset/mxd2_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mxd2_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_icon_13x13_.imageset/mxd2_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/mxd2_icon_13x13_.imageset/mxd2_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ppkdc_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_h_icon_13x13_.imageset/ppkdc_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_h_icon_13x13_.imageset/ppkdc_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ppkdc_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_icon_13x13_.imageset/ppkdc_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ppkdc_icon_13x13_.imageset/ppkdc_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "qh97_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_h_icon_13x13_.imageset/qh97_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_h_icon_13x13_.imageset/qh97_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "qh97_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_icon_13x13_.imageset/qh97_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/qh97_icon_13x13_.imageset/qh97_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sjyx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_h_icon_13x13_.imageset/sjyx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_h_icon_13x13_.imageset/sjyx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sjyx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_icon_13x13_.imageset/sjyx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/sjyx_icon_13x13_.imageset/sjyx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "smzhOL_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_h_icon_13x13_.imageset/smzhOL_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_h_icon_13x13_.imageset/smzhOL_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "smzhOL_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_icon_13x13_.imageset/smzhOL_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/smzhOL_icon_13x13_.imageset/smzhOL_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "swxf_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_h_icon_13x13_.imageset/swxf_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_h_icon_13x13_.imageset/swxf_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "swxf_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_icon_13x13_.imageset/swxf_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/swxf_icon_13x13_.imageset/swxf_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ty_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_h_icon_13x13_.imageset/ty_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_h_icon_13x13_.imageset/ty_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ty_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_icon_13x13_.imageset/ty_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/ty_icon_13x13_.imageset/ty_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tyjj_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_h_icon_13x13_.imageset/tyjj_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_h_icon_13x13_.imageset/tyjj_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tyjj_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_icon_13x13_.imageset/tyjj_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/tyjj_icon_13x13_.imageset/tyjj_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wdsj_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_h_icon_13x13_.imageset/wdsj_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_h_icon_13x13_.imageset/wdsj_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wdsj_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_icon_13x13_.imageset/wdsj_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wdsj_icon_13x13_.imageset/wdsj_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wjzq_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_h_icon_13x13_.imageset/wjzq_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_h_icon_13x13_.imageset/wjzq_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wjzq_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_icon_13x13_.imageset/wjzq_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wjzq_icon_13x13_.imageset/wjzq_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wyzq_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_h_icon_13x13_.imageset/wyzq_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_h_icon_13x13_.imageset/wyzq_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "wyzq_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_icon_13x13_.imageset/wyzq_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/wyzq_icon_13x13_.imageset/wyzq_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "xjzb2_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_h_icon_13x13_.imageset/xjzb2_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_h_icon_13x13_.imageset/xjzb2_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "xjzb2_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_icon_13x13_.imageset/xjzb2_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/xjzb2_icon_13x13_.imageset/xjzb2_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yllm_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_h_icon_13x13_.imageset/yllm_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_h_icon_13x13_.imageset/yllm_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yllm_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_icon_13x13_.imageset/yllm_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yllm_icon_13x13_.imageset/yllm_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yxlm_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_h_icon_13x13_.imageset/yxlm_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_h_icon_13x13_.imageset/yxlm_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yxlm_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_icon_13x13_.imageset/yxlm_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yxlm_icon_13x13_.imageset/yxlm_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yyzb_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_13x13_.imageset/yyzb_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_13x13_.imageset/yyzb_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_h_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "yyzb_h_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_h_13x13_.imageset/yyzb_h_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/yyzb_h_13x13_.imageset/yyzb_h_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "zjyx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_h_icon_13x13_.imageset/zjyx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_h_icon_13x13_.imageset/zjyx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "zjyx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_icon_13x13_.imageset/zjyx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zjyx_icon_13x13_.imageset/zjyx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_h_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "zzyx_h_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_h_icon_13x13_.imageset/zzyx_h_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_h_icon_13x13_.imageset/zzyx_h_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_icon_13x13_.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "zzyx_icon_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_icon_13x13_.imageset/zzyx_icon_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Home/titleIcon/zzyx_icon_13x13_.imageset/zzyx_icon_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "extent" : "full-screen", 5 | "idiom" : "iphone", 6 | "subtype" : "736h", 7 | "filename" : "LaunchImage-800-Portrait-736h@3x.png", 8 | "minimum-system-version" : "8.0", 9 | "orientation" : "portrait", 10 | "scale" : "3x" 11 | }, 12 | { 13 | "extent" : "full-screen", 14 | "idiom" : "iphone", 15 | "subtype" : "667h", 16 | "filename" : "LaunchImage-800-667h@2x.png", 17 | "minimum-system-version" : "8.0", 18 | "orientation" : "portrait", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "orientation" : "portrait", 23 | "idiom" : "iphone", 24 | "filename" : "LaunchImage-700@2x.png", 25 | "extent" : "full-screen", 26 | "minimum-system-version" : "7.0", 27 | "scale" : "2x" 28 | }, 29 | { 30 | "extent" : "full-screen", 31 | "idiom" : "iphone", 32 | "subtype" : "retina4", 33 | "filename" : "LaunchImage-700-568h@2x.png", 34 | "minimum-system-version" : "7.0", 35 | "orientation" : "portrait", 36 | "scale" : "2x" 37 | } 38 | ], 39 | "info" : { 40 | "version" : 1, 41 | "author" : "xcode" 42 | } 43 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700-568h@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-700@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-667h@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/LaunchImage.launchimage/LaunchImage-800-Portrait-736h@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/arrow_right2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "arrow_right2_13x13_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/arrow_right2.imageset/arrow_right2_13x13_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/arrow_right2.imageset/arrow_right2_13x13_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_activityIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_activityIcon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_activityIcon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_activityIcon.imageset/mine_activityIcon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_activityIcon.imageset/mine_activityIcon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_activityIcon.imageset/mine_activityIcon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_activityIcon.imageset/mine_activityIcon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_attentionIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_attentionIcon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_attentionIcon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_attentionIcon.imageset/mine_attentionIcon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_attentionIcon.imageset/mine_attentionIcon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_attentionIcon.imageset/mine_attentionIcon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_attentionIcon.imageset/mine_attentionIcon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_giftnotice.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_giftnotice_18x18_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_giftnotice_20x20_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_giftnotice.imageset/mine_giftnotice_18x18_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_giftnotice.imageset/mine_giftnotice_18x18_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_giftnotice.imageset/mine_giftnotice_20x20_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_giftnotice.imageset/mine_giftnotice_20x20_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_histroyIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_histroyIcon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_histroyIcon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_histroyIcon.imageset/mine_histroyIcon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_histroyIcon.imageset/mine_histroyIcon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_histroyIcon.imageset/mine_histroyIcon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_histroyIcon.imageset/mine_histroyIcon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_message_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_message_icon_22x22_@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_message_icon.imageset/mine_message_icon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_message_icon.imageset/mine_message_icon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_remindIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_remindIcon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_remindIcon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_remindIcon.imageset/mine_remindIcon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_remindIcon.imageset/mine_remindIcon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_remindIcon.imageset/mine_remindIcon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_remindIcon.imageset/mine_remindIcon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_settingIcon2_19x19_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_settingIcon2_21x21_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2.imageset/mine_settingIcon2_19x19_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2.imageset/mine_settingIcon2_19x19_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2.imageset/mine_settingIcon2_21x21_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2.imageset/mine_settingIcon2_21x21_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2_press.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_settingIcon2_press_19x19_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_settingIcon2_press_21x21_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2_press.imageset/mine_settingIcon2_press_19x19_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2_press.imageset/mine_settingIcon2_press_19x19_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2_press.imageset/mine_settingIcon2_press_21x21_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_settingIcon2_press.imageset/mine_settingIcon2_press_21x21_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_suggestIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_suggestIcon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_suggestIcon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_suggestIcon.imageset/mine_suggestIcon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_suggestIcon.imageset/mine_suggestIcon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_suggestIcon.imageset/mine_suggestIcon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_suggestIcon.imageset/mine_suggestIcon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_zhubo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mine_zhubo_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mine_zhubo_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_zhubo.imageset/mine_zhubo_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_zhubo.imageset/mine_zhubo_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_zhubo.imageset/mine_zhubo_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/mine_zhubo.imageset/mine_zhubo_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/shake_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "shake_icon_22x22_@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "shake_icon_24x24_@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/shake_icon.imageset/shake_icon_22x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/shake_icon.imageset/shake_icon_22x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/Me/shake_icon.imageset/shake_icon_24x24_@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/Me/shake_icon.imageset/shake_icon_24x24_@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/LOGO.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "LOGO@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/LOGO.imageset/LOGO@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/LOGO.imageset/LOGO@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "navigationbarBackgroundWhite.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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbar.imageset/navigationbarBackgroundWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbar.imageset/navigationbarBackgroundWhite.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbarBackgroundWhite.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "navigationbarBackgroundWhite.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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbarBackgroundWhite.imageset/navigationbarBackgroundWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/navigationbarBackgroundWhite.imageset/navigationbarBackgroundWhite.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "searchbutton_nor@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_nor.imageset/searchbutton_nor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_nor.imageset/searchbutton_nor@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "searchbutton_sel@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 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_sel.imageset/searchbutton_sel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/searchbutton_sel.imageset/searchbutton_sel@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/setting_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "setting_back@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "setting_back@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/setting_back.imageset/setting_back@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/setting_back.imageset/setting_back@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/setting_back.imageset/setting_back@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/setting_back.imageset/setting_back@3x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/title_image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "title_image.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/title_image.imageset/title_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/NavBar/title_image.imageset/title_image.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_goddess_normal_21x22_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_nor.imageset/menu_goddess_normal_21x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_nor.imageset/menu_goddess_normal_21x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_goddess_21x22_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_sel.imageset/menu_goddess_21x22_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_goddess_sel.imageset/menu_goddess_21x22_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_homepage_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_nor.imageset/menu_homepage_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_nor.imageset/menu_homepage_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_homepage_sel_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_sel.imageset/menu_homepage_sel_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_homepage_sel.imageset/menu_homepage_sel_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_mine_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_nor.imageset/menu_mine_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_nor.imageset/menu_mine_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_mine_sel_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_sel.imageset/menu_mine_sel_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_mine_sel.imageset/menu_mine_sel_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_youxi_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_nor.imageset/menu_youxi_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_nor.imageset/menu_youxi_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_youxi_sel_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_sel.imageset/menu_youxi_sel_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_youxi_sel.imageset/menu_youxi_sel_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_nor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_yule_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_nor.imageset/menu_yule_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_nor.imageset/menu_yule_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_sel.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "menu_yule_sel_24x24_@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 | "properties" : { 22 | "template-rendering-intent" : "original" 23 | } 24 | } -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_sel.imageset/menu_yule_sel_24x24_@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/XMTV/Supporting Files/Assets.xcassets/tabBar/menu_yule_sel.imageset/menu_yule_sel_24x24_@2x.png -------------------------------------------------------------------------------- /XMTV/XMTV/Supporting Files/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | NSAppTransportSecurity 24 | 25 | NSAllowsArbitraryLoads 26 | 27 | 28 | UIRequiredDeviceCapabilities 29 | 30 | armv7 31 | 32 | UISupportedInterfaceOrientations 33 | 34 | UIInterfaceOrientationPortrait 35 | UIInterfaceOrientationLandscapeLeft 36 | UIInterfaceOrientationLandscapeRight 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /XMTV/屏幕截图/娱乐.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/娱乐.gif -------------------------------------------------------------------------------- /XMTV/屏幕截图/小葱秀.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/小葱秀.gif -------------------------------------------------------------------------------- /XMTV/屏幕截图/我的.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/我的.gif -------------------------------------------------------------------------------- /XMTV/屏幕截图/游戏.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/游戏.gif -------------------------------------------------------------------------------- /XMTV/屏幕截图/频道列表.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/频道列表.gif -------------------------------------------------------------------------------- /XMTV/屏幕截图/首页.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VictDog/PandaTV/c48b0c0c550febd9914da655658ba81baf556f0e/XMTV/屏幕截图/首页.gif --------------------------------------------------------------------------------