├── DoubanWorlds ├── DoubanWorlds │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── MainIcons │ │ │ ├── Contents.json │ │ │ ├── nav_share.imageset │ │ │ │ ├── .DS_Store │ │ │ │ ├── nav_share@2x.png │ │ │ │ ├── nav_share@3x.png │ │ │ │ └── Contents.json │ │ │ ├── nav_arrow.imageset │ │ │ │ ├── nav_arrow@2x.png │ │ │ │ ├── nav_arrow@3x.png │ │ │ │ └── Contents.json │ │ │ ├── nav_arrow_white.imageset │ │ │ │ ├── nav_arrow_white@2x.png │ │ │ │ ├── nav_arrow_white@3x.png │ │ │ │ └── Contents.json │ │ │ ├── searchBarBackImage.imageset │ │ │ │ ├── searchBarBackImage@2x.png │ │ │ │ ├── searchBarBackImage@3x.png │ │ │ │ └── Contents.json │ │ │ ├── AlbumLocationIconHL.imageset │ │ │ │ ├── AlbumLocationIconHL@2x.png │ │ │ │ └── Contents.json │ │ │ ├── blog_homepage_headerbg.imageset │ │ │ │ ├── blog_homepage_headerbg.png │ │ │ │ ├── blog_homepage_headerbg@2x.png │ │ │ │ ├── blog_homepage_headerbg@3x.png │ │ │ │ └── Contents.json │ │ │ ├── LuckyMoney_ChangeArrow.imageset │ │ │ │ ├── LuckyMoney_ChangeArrow@2x.png │ │ │ │ └── Contents.json │ │ │ ├── icon_sight_close_color.imageset │ │ │ │ ├── icon_sight_close_color@2x.png │ │ │ │ └── Contents.json │ │ │ ├── CellHidePassword_icon_HL.imageset │ │ │ │ ├── CellHidePassword_icon_HL@2x.png │ │ │ │ └── Contents.json │ │ │ ├── FavoritesActionSheetTextIcon.imageset │ │ │ │ ├── FavoritesActionSheetTextIcon@2x.png │ │ │ │ ├── FavoritesActionSheetTextIcon@3x.png │ │ │ │ └── Contents.json │ │ │ ├── navigationbar_background_os7.imageset │ │ │ │ ├── navigationbar_background_os7@3x.png │ │ │ │ └── Contents.json │ │ │ ├── FavoritesActionSheetLocatinIcon.imageset │ │ │ │ ├── FavoritesActionSheetLocatinIcon@2x.png │ │ │ │ ├── FavoritesActionSheetLocatinIcon@3x.png │ │ │ │ └── Contents.json │ │ │ └── searchbar_textfield_search_icon.imageset │ │ │ │ ├── searchbar_textfield_search_icon@2x.png │ │ │ │ └── Contents.json │ │ ├── starIcons │ │ │ ├── Contents.json │ │ │ ├── home_star1_img.imageset │ │ │ │ ├── home_star1_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star2_img.imageset │ │ │ │ ├── home_star2_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star3_img.imageset │ │ │ │ ├── home_star3_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star4_img.imageset │ │ │ │ ├── home_star4_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star5_img.imageset │ │ │ │ ├── home_star5_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star6_img.imageset │ │ │ │ ├── home_star6_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star7_img.imageset │ │ │ │ ├── home_star7_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star8_img.imageset │ │ │ │ ├── home_star8_img@2x.png │ │ │ │ └── Contents.json │ │ │ ├── home_star9_img.imageset │ │ │ │ ├── home_star9_img@2x.png │ │ │ │ └── Contents.json │ │ │ └── home_star10_img.imageset │ │ │ │ ├── home_star10_img@2x.png │ │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Classes │ │ ├── Lib │ │ │ ├── AFNetworking │ │ │ │ └── .svn │ │ │ │ │ └── prop-base │ │ │ │ │ ├── AFNetworking.h.svn-base │ │ │ │ │ ├── AFSecurityPolicy.h.svn-base │ │ │ │ │ ├── AFSecurityPolicy.m.svn-base │ │ │ │ │ ├── AFHTTPRequestOperation.h.svn-base │ │ │ │ │ ├── AFHTTPRequestOperation.m.svn-base │ │ │ │ │ ├── AFHTTPSessionManager.h.svn-base │ │ │ │ │ ├── AFHTTPSessionManager.m.svn-base │ │ │ │ │ ├── AFURLSessionManager.h.svn-base │ │ │ │ │ ├── AFURLSessionManager.m.svn-base │ │ │ │ │ ├── AFURLConnectionOperation.h.svn-base │ │ │ │ │ ├── AFURLConnectionOperation.m.svn-base │ │ │ │ │ ├── AFURLRequestSerialization.h.svn-base │ │ │ │ │ ├── AFURLRequestSerialization.m.svn-base │ │ │ │ │ ├── AFURLResponseSerialization.h.svn-base │ │ │ │ │ ├── AFURLResponseSerialization.m.svn-base │ │ │ │ │ ├── AFHTTPRequestOperationManager.h.svn-base │ │ │ │ │ ├── AFHTTPRequestOperationManager.m.svn-base │ │ │ │ │ ├── AFNetworkReachabilityManager.h.svn-base │ │ │ │ │ └── AFNetworkReachabilityManager.m.svn-base │ │ │ ├── PinYin │ │ │ │ ├── .DS_Store │ │ │ │ ├── ChineseInclude.h │ │ │ │ ├── PinYinForObjc.h │ │ │ │ ├── ChineseInclude.m │ │ │ │ ├── PinyinFormatter.h │ │ │ │ ├── HanyuPinyinOutputFormat.m │ │ │ │ ├── ChineseToPinyinResource.h │ │ │ │ ├── HanyuPinyinOutputFormat.h │ │ │ │ ├── NSString+PinYin4Cocoa.h │ │ │ │ ├── PinYinForObjc.m │ │ │ │ └── PinyinHelper.h │ │ │ ├── ZLCamera │ │ │ │ ├── .DS_Store │ │ │ │ ├── ZLCamera.m │ │ │ │ ├── ZLCamera.h │ │ │ │ ├── ZLCameraView.h │ │ │ │ ├── ZLCameraViewController.h │ │ │ │ ├── ZLCameraImageView.h │ │ │ │ └── ZLCameraImageView.m │ │ │ ├── ZLPhotoBrowser │ │ │ │ ├── .DS_Store │ │ │ │ ├── Views │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── ZLPhotoPickerCustomToolBarView.m │ │ │ │ │ ├── ZLPhotoPickerCustomToolBarView.h │ │ │ │ │ ├── ZLPhotoPickerBrowserPhotoView.h │ │ │ │ │ ├── ZLPhotoPickerBrowserPhotoImageView.h │ │ │ │ │ ├── ZLPhotoPickerBrowserPhotoScrollView.h │ │ │ │ │ └── ZLPhotoPickerBrowserPhotoView.m │ │ │ │ ├── ViewControllers │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── ZLPhotoPickerBrowserViewController+SignlePhotoBrowser.h │ │ │ │ └── Models │ │ │ │ │ ├── ZLPhotoRect.h │ │ │ │ │ └── ZLPhotoPickerBrowserPhoto.h │ │ │ ├── LDRefresh │ │ │ │ ├── tableview_pull_refresh@2x.png │ │ │ │ ├── tableview_pull_refresh@3x.png │ │ │ │ ├── LDRefresh.h │ │ │ │ ├── LDRefreshHeaderView.h │ │ │ │ ├── LDRefreshFooterView.h │ │ │ │ └── UIScrollView+LDRefresh.h │ │ │ ├── SVProgressHUD │ │ │ │ ├── SVProgressHUD.bundle │ │ │ │ │ ├── info.png │ │ │ │ │ ├── error.png │ │ │ │ │ ├── error@2x.png │ │ │ │ │ ├── error@3x.png │ │ │ │ │ ├── info@2x.png │ │ │ │ │ ├── info@3x.png │ │ │ │ │ ├── success.png │ │ │ │ │ ├── angle-mask.png │ │ │ │ │ ├── success@2x.png │ │ │ │ │ ├── success@3x.png │ │ │ │ │ ├── angle-mask@2x.png │ │ │ │ │ └── angle-mask@3x.png │ │ │ │ ├── SVRadialGradientLayer.h │ │ │ │ ├── SVIndefiniteAnimatedView.h │ │ │ │ ├── SVRadialGradientLayer.m │ │ │ │ └── SVProgressHUDManager.h │ │ │ ├── Masonry │ │ │ │ ├── MASLayoutConstraint.m │ │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ │ ├── MASLayoutConstraint.h │ │ │ │ ├── MASCompositeConstraint.h │ │ │ │ ├── Info.plist │ │ │ │ ├── Masonry.h │ │ │ │ ├── ViewController+MASAdditions.h │ │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ │ ├── MASViewAttribute.m │ │ │ │ ├── MASViewAttribute.h │ │ │ │ ├── ViewController+MASAdditions.m │ │ │ │ └── MASViewConstraint.h │ │ │ ├── ZLPhotoPicker │ │ │ │ ├── Models │ │ │ │ │ ├── ZLPhotoPickerGroup.m │ │ │ │ │ ├── ZLPhotoAssets.h │ │ │ │ │ ├── ZLPhotoPickerGroup.h │ │ │ │ │ ├── ZLPhotoAssets.m │ │ │ │ │ └── ZLPhotoPickerDatas.h │ │ │ │ ├── ViewControllers │ │ │ │ │ ├── ZLNavigationController.h │ │ │ │ │ ├── ZLPhotoPickerGroupViewController.h │ │ │ │ │ ├── ZLPhotoPickerAssetsViewController.h │ │ │ │ │ ├── ZLNavigationController.m │ │ │ │ │ └── ZLPhotoPickerViewController.h │ │ │ │ ├── Views │ │ │ │ │ ├── ZLPhotoPickerFooterCollectionReusableView.h │ │ │ │ │ ├── ZLPhotoPickerGroupTableViewCell.h │ │ │ │ │ ├── ZLPhotoPickerCollectionViewCell.h │ │ │ │ │ ├── ZLPhotoPickerImageView.h │ │ │ │ │ ├── ZLPhotoPickerCollectionViewCell.m │ │ │ │ │ ├── ZLPhotoPickerFooterCollectionReusableView.m │ │ │ │ │ └── ZLPhotoPickerCollectionView.h │ │ │ │ └── ZLPhotoPickerCommon.h │ │ │ ├── SKTagView │ │ │ │ ├── SKTagButton.h │ │ │ │ ├── SKTag.m │ │ │ │ ├── SKTagView.h │ │ │ │ ├── SKTag.h │ │ │ │ └── SKTagButton.m │ │ │ ├── SDWebImage │ │ │ │ ├── UIImage+MultiFormat.h │ │ │ │ ├── SDWebImageOperation.h │ │ │ │ ├── UIImage+GIF.h │ │ │ │ ├── SDWebImageDecoder.h │ │ │ │ ├── UIImage+WebP.h │ │ │ │ ├── NSData+ImageContentType.h │ │ │ │ ├── UIView+WebCacheOperation.h │ │ │ │ ├── NSData+ImageContentType.m │ │ │ │ └── SDWebImageCompat.m │ │ │ ├── DACircularProgress │ │ │ │ ├── DALabeledCircularProgressView.h │ │ │ │ ├── DALabeledCircularProgressView.m │ │ │ │ └── DACircularProgressView.h │ │ │ └── ZLPhoto.h │ │ ├── Other │ │ │ ├── Resources │ │ │ │ ├── .DS_Store │ │ │ │ ├── PlistRes │ │ │ │ │ └── .DS_Store │ │ │ │ ├── tabbarIcons │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── tabbar_me@2x.png │ │ │ │ │ ├── tabbar_me@3x.png │ │ │ │ │ ├── tabbar_meHL@2x.png │ │ │ │ │ ├── tabbar_meHL@3x.png │ │ │ │ │ ├── tabbar_contacts@2x.png │ │ │ │ │ ├── tabbar_contacts@3x.png │ │ │ │ │ ├── tabbar_contactsHL@2x.png │ │ │ │ │ ├── tabbar_contactsHL@3x.png │ │ │ │ │ ├── tabbar_discover@2x.png │ │ │ │ │ ├── tabbar_discover@3x.png │ │ │ │ │ ├── tabbar_discoverHL@2x.png │ │ │ │ │ ├── tabbar_discoverHL@3x.png │ │ │ │ │ ├── tabbar_mainframe@2x.png │ │ │ │ │ ├── tabbar_mainframe@3x.png │ │ │ │ │ ├── tabbar_mainframeHL@2x.png │ │ │ │ │ └── tabbar_mainframeHL@3x.png │ │ │ │ ├── flotageBackgroud@2x.png │ │ │ │ ├── activityTypeIcons │ │ │ │ │ ├── owl.png │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── printer-2.png │ │ │ │ │ ├── type-meet.png │ │ │ │ │ ├── type-pan.png │ │ │ │ │ ├── umbrella.png │ │ │ │ │ ├── new-mac-pro.png │ │ │ │ │ ├── power-plant.png │ │ │ │ │ ├── rubber-duck.png │ │ │ │ │ ├── space-rocket.png │ │ │ │ │ ├── type-nike-dunk.png │ │ │ │ │ ├── type-radio-4.png │ │ │ │ │ ├── type-sharpner.png │ │ │ │ │ ├── type-snowman.png │ │ │ │ │ ├── type-support.png │ │ │ │ │ ├── type-sunglasses.png │ │ │ │ │ ├── type-ps4-controller.png │ │ │ │ │ ├── type-traffic-light.png │ │ │ │ │ └── type-polaroid-socialmatic.png │ │ │ │ ├── worlds_placeholderImage.jpg │ │ │ │ ├── Introducegif │ │ │ │ │ ├── doubanWorlds.gif │ │ │ │ │ ├── doubanWorlds1.gif │ │ │ │ │ ├── doubanWorlds2.gif │ │ │ │ │ └── doubanWorlds3.gif │ │ │ │ └── VoiceAssistantPlayBtnHL@2x.png │ │ │ ├── detail_defultImage.png │ │ │ ├── category │ │ │ │ ├── UIImage+category │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── UIImage+ZLPhotoLib.h │ │ │ │ ├── UIView+Extension │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── UIView+ViewController.h │ │ │ │ │ ├── UIView+ViewController.m │ │ │ │ │ ├── UIView+ZLExtension.h │ │ │ │ │ ├── UIView+i7Rotate360.h │ │ │ │ │ ├── UIViewExt.h │ │ │ │ │ ├── UIView+ZLExtension.m │ │ │ │ │ └── UIView+i7Rotate360.m │ │ │ │ ├── UIBarButtonItem+Extension │ │ │ │ │ ├── .DS_Store │ │ │ │ │ └── UIBarButtonItem+Extension.h │ │ │ │ └── NSString+Extension.h │ │ │ ├── AppDelegate.h │ │ │ ├── Defines │ │ │ │ ├── LYConstans.h │ │ │ │ ├── LYConstans.m │ │ │ │ └── URLDefines.h │ │ │ └── DoubanWorlds.pch │ │ ├── Recommend │ │ │ ├── View │ │ │ │ ├── PickViews │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── HotCityCell.h │ │ │ │ │ ├── SectionHeaderView.h │ │ │ │ │ ├── LocationCityCell.h │ │ │ │ │ ├── CityIndexCell.h │ │ │ │ │ ├── SectionHeaderView.m │ │ │ │ │ └── YLYTableViewIndexView.h │ │ │ │ ├── ActivityTypeView.h │ │ │ │ ├── SearchViews │ │ │ │ │ ├── YLYSearchBar.h │ │ │ │ │ └── YLYSearchBar.m │ │ │ │ ├── RecommendCells │ │ │ │ │ ├── RecommendHeadView.h │ │ │ │ │ └── HotActivityCell.h │ │ │ │ ├── DeatailViews │ │ │ │ │ ├── DetailHeadView.h │ │ │ │ │ ├── DetailContentCell.h │ │ │ │ │ ├── DetailFirstRowCell.h │ │ │ │ │ ├── DetialSecondCell.h │ │ │ │ │ ├── ALActionSheetView.h │ │ │ │ │ └── DetailHeadView.m │ │ │ │ └── ActivityTypeCell.h │ │ │ ├── Controller │ │ │ │ ├── PickControllers │ │ │ │ │ ├── .DS_Store │ │ │ │ │ ├── PickCityViewController.h │ │ │ │ │ ├── PickOverseasController.h │ │ │ │ │ └── PickChinaCityController.h │ │ │ │ ├── RecommendViewController.h │ │ │ │ ├── SearchCityController.h │ │ │ │ └── DetailControllers │ │ │ │ │ ├── ActivityDetailController.h │ │ │ │ │ └── MapViewController.h │ │ │ ├── Tool │ │ │ │ ├── LocationManager.h │ │ │ │ ├── BLRColorComponents.h │ │ │ │ └── RecommendHttpTool.h │ │ │ └── Model │ │ │ │ ├── HotCityModel.h │ │ │ │ ├── ActivityOwnerModel.h │ │ │ │ ├── HotCityModel.m │ │ │ │ ├── ActivityOwnerModel.m │ │ │ │ └── RecommendModel.m │ │ ├── Movie │ │ │ ├── View │ │ │ │ ├── MovieMenuView.h │ │ │ │ ├── DetailViews │ │ │ │ │ ├── MovieDetailHeadView.h │ │ │ │ │ └── MovieDetailIntroCell.h │ │ │ │ └── HotMovieCell.h │ │ │ ├── Controller │ │ │ │ ├── MovieViewController.h │ │ │ │ ├── HotAndNew │ │ │ │ │ ├── HotMovieController.h │ │ │ │ │ └── NewFilmController.h │ │ │ │ └── MovieDetailController.h │ │ │ ├── Model │ │ │ │ ├── AvatarsModel.h │ │ │ │ ├── RatingModel.h │ │ │ │ ├── CastModel.h │ │ │ │ ├── AvatarsModel.m │ │ │ │ ├── RatingModel.m │ │ │ │ ├── CastModel.m │ │ │ │ └── MovieModel.h │ │ │ └── Tool │ │ │ │ └── MovieHttpTool.h │ │ ├── Me │ │ │ ├── Controller │ │ │ │ └── MeViewController.h │ │ │ ├── Tool │ │ │ │ ├── MeHttpTool.h │ │ │ │ └── MeHttpTool.m │ │ │ └── Model │ │ │ │ └── UserInfos.h │ │ ├── Main │ │ │ ├── Controller │ │ │ │ ├── BaseViewController.h │ │ │ │ ├── MainTabbarController.h │ │ │ │ ├── MainNavgationController.h │ │ │ │ ├── MainNavgationController.m │ │ │ │ └── BaseViewController.m │ │ │ ├── View │ │ │ │ └── TranslucentNavbar.h │ │ │ └── Tool │ │ │ │ ├── HttpTools.h │ │ │ │ └── AppTools.h │ │ └── OAuth │ │ │ ├── Controller │ │ │ └── OAuthViewController.h │ │ │ ├── Tool │ │ │ ├── AccountTool.h │ │ │ └── AccountTool.m │ │ │ └── Model │ │ │ ├── LYAccount.h │ │ │ └── LYAccount.m │ ├── main.m │ ├── Info.plist │ └── Base.lproj │ │ └── LaunchScreen.storyboard ├── DoubanWorlds.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── LYoung.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── LYoung.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── DoubanWorldsUITests │ ├── Info.plist │ └── DoubanWorldsUITests.m └── DoubanWorldsTests │ ├── Info.plist │ └── DoubanWorldsTests.m └── README.md /DoubanWorlds/DoubanWorlds/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFNetworking.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFSecurityPolicy.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFSecurityPolicy.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPRequestOperation.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPRequestOperation.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPSessionManager.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPSessionManager.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLSessionManager.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLSessionManager.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLConnectionOperation.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLConnectionOperation.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLRequestSerialization.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLRequestSerialization.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLResponseSerialization.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFURLResponseSerialization.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPRequestOperationManager.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFHTTPRequestOperationManager.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFNetworkReachabilityManager.h.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/AFNetworking/.svn/prop-base/AFNetworkReachabilityManager.m.svn-base: -------------------------------------------------------------------------------- 1 | K 14 2 | svn:executable 3 | V 0 4 | 5 | END 6 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/detail_defultImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/detail_defultImage.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/PlistRes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/PlistRes/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/flotageBackgroud@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/flotageBackgroud@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/owl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/owl.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIImage+category/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/category/UIImage+category/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/tableview_pull_refresh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/tableview_pull_refresh@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/tableview_pull_refresh@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/tableview_pull_refresh@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/ViewControllers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/ViewControllers/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_me@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_me@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_me@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_me@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/worlds_placeholderImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/worlds_placeholderImage.jpg -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds.gif -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds1.gif -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds2.gif -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds3.gif -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/VoiceAssistantPlayBtnHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/VoiceAssistantPlayBtnHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/printer-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/printer-2.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-meet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-meet.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-pan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-pan.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/umbrella.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/umbrella.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_meHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_meHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_meHL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_meHL@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/PickControllers/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/PickControllers/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/new-mac-pro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/new-mac-pro.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/power-plant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/power-plant.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/rubber-duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/rubber-duck.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/error@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/info@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/space-rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/space-rocket.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-nike-dunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-nike-dunk.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-radio-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-radio-4.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-sharpner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-sharpner.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-snowman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-snowman.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-support.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contacts@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contacts@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contacts@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contacts@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contactsHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contactsHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contactsHL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_contactsHL@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discover@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discover@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discoverHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discoverHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discoverHL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_discoverHL@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframe@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframe@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframe@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframe@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIBarButtonItem+Extension/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/category/UIBarButtonItem+Extension/.DS_Store -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow.imageset/nav_arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow.imageset/nav_arrow@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow.imageset/nav_arrow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow.imageset/nav_arrow@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/nav_share@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/nav_share@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/nav_share@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/nav_share@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/success@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-sunglasses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-sunglasses.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframeHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframeHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframeHL@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/tabbarIcons/tabbar_mainframeHL@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-ps4-controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-ps4-controller.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-traffic-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-traffic-light.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star1_img.imageset/home_star1_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star1_img.imageset/home_star1_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star2_img.imageset/home_star2_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star2_img.imageset/home_star2_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star3_img.imageset/home_star3_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star3_img.imageset/home_star3_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star4_img.imageset/home_star4_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star4_img.imageset/home_star4_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star5_img.imageset/home_star5_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star5_img.imageset/home_star5_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star6_img.imageset/home_star6_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star6_img.imageset/home_star6_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star7_img.imageset/home_star7_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star7_img.imageset/home_star7_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star8_img.imageset/home_star8_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star8_img.imageset/home_star8_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star9_img.imageset/home_star9_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star9_img.imageset/home_star9_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-polaroid-socialmatic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/activityTypeIcons/type-polaroid-socialmatic.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow_white.imageset/nav_arrow_white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow_white.imageset/nav_arrow_white@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow_white.imageset/nav_arrow_white@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow_white.imageset/nav_arrow_white@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star10_img.imageset/home_star10_img@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star10_img.imageset/home_star10_img@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchBarBackImage.imageset/searchBarBackImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchBarBackImage.imageset/searchBarBackImage@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchBarBackImage.imageset/searchBarBackImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchBarBackImage.imageset/searchBarBackImage@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/AlbumLocationIconHL.imageset/AlbumLocationIconHL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/AlbumLocationIconHL.imageset/AlbumLocationIconHL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/LuckyMoney_ChangeArrow.imageset/LuckyMoney_ChangeArrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/LuckyMoney_ChangeArrow.imageset/LuckyMoney_ChangeArrow@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/blog_homepage_headerbg@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/icon_sight_close_color.imageset/icon_sight_close_color@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/icon_sight_close_color.imageset/icon_sight_close_color@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds.xcodeproj/project.xcworkspace/xcuserdata/LYoung.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds.xcodeproj/project.xcworkspace/xcuserdata/LYoung.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/CellHidePassword_icon_HL.imageset/CellHidePassword_icon_HL@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/CellHidePassword_icon_HL.imageset/CellHidePassword_icon_HL@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetTextIcon.imageset/FavoritesActionSheetTextIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetTextIcon.imageset/FavoritesActionSheetTextIcon@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetTextIcon.imageset/FavoritesActionSheetTextIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetTextIcon.imageset/FavoritesActionSheetTextIcon@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/navigationbar_background_os7.imageset/navigationbar_background_os7@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/navigationbar_background_os7.imageset/navigationbar_background_os7@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetLocatinIcon.imageset/FavoritesActionSheetLocatinIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetLocatinIcon.imageset/FavoritesActionSheetLocatinIcon@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetLocatinIcon.imageset/FavoritesActionSheetLocatinIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetLocatinIcon.imageset/FavoritesActionSheetLocatinIcon@3x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchbar_textfield_search_icon.imageset/searchbar_textfield_search_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LeeYouth/DoubanWorld/HEAD/DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchbar_textfield_search_icon.imageset/searchbar_textfield_search_icon@2x.png -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/View/MovieMenuView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieMenuView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影两个按钮 8 | 9 | #import 10 | 11 | @interface MovieMenuView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/ActivityTypeView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ActivityTypeView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/31. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 活动类型 8 | 9 | #import 10 | 11 | @interface ActivityTypeView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Me/Controller/MeViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MeViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MeViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/SearchViews/YLYSearchBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // YLYSearchBar.h 3 | // VSina 4 | // 5 | // Created by 苑立永 on 14-9-20. 6 | // Copyright (c) 2014年 苑立永. All rights reserved. 7 | // 自定义searchbar 8 | 9 | #import 10 | 11 | @interface YLYSearchBar : UITextField 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Controller/BaseViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BaseViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface BaseViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Models/ZLPhotoPickerGroup.m: -------------------------------------------------------------------------------- 1 | // 2 | // PickerGroup.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerGroup.h" 10 | 11 | @implementation ZLPhotoPickerGroup 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Controller/MovieViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影 8 | 9 | #import 10 | 11 | @interface MovieViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/RecommendCells/RecommendHeadView.h: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendHeadView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 热门头部视图 8 | 9 | #import 10 | 11 | @interface RecommendHeadView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Controller/MainTabbarController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainTabbarController.h 3 | // AnecdotesDemo 4 | // 5 | // Created by LYoung on 15/10/13. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MainTabbarController : UITabBarController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Controller/HotAndNew/HotMovieController.h: -------------------------------------------------------------------------------- 1 | // 2 | // HotMovieController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 热映 8 | 9 | #import 10 | 11 | @interface HotMovieController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Controller/HotAndNew/NewFilmController.h: -------------------------------------------------------------------------------- 1 | // 2 | // NewFilmController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 即将上映 8 | 9 | #import 10 | 11 | @interface NewFilmController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/OAuth/Controller/OAuthViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // OAuthViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface OAuthViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/ChineseInclude.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChineseInclude.h 3 | // Search 4 | // 5 | // Created by LYZ on 14-1-24. 6 | // Copyright (c) 2014年 LYZ. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ChineseInclude : NSObject 12 | + (BOOL)isIncludeChineseInString:(NSString*)str; 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SKTagView/SKTagButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Shaokang Zhao on 15/1/12. 3 | // Copyright (c) 2015 Shaokang Zhao. All rights reserved. 4 | // 5 | 6 | #import 7 | #import 8 | 9 | @class SKTag; 10 | @interface SKTagButton : UIButton 11 | + (instancetype)buttonWithTag:(SKTag *)tag; 12 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Controller/MainNavgationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MainNavgationController.h 3 | // AnecdotesDemo 4 | // 5 | // Created by LYoung on 15/10/13. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MainNavgationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/RecommendViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface RecommendViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/SearchCityController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SearchCityController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/29. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 搜索城市 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface SearchCityController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/PickControllers/PickCityViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickCityViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/25. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PickCityViewController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+ViewController.h 3 | // Movie 4 | // 5 | // Created by xzm on 13-9-18. 6 | // Copyright (c) 2013年 ios. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (ViewController) 12 | 13 | -(UIViewController *)viewController; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/PickControllers/PickOverseasController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickOverseasController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 选取国外城市 8 | 9 | #import 10 | 11 | @interface PickOverseasController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/ViewControllers/ZLNavigationController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLNavigationController.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15/11/25. 6 | // Copyright © 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZLNavigationController : UINavigationController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/PickControllers/PickChinaCityController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickChinaCityController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 选取中国城市 8 | 9 | #import 10 | 11 | @interface PickChinaCityController : BaseViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/UIImage+MultiFormat.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+MultiFormat.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (MultiFormat) 12 | 13 | + (UIImage *)sd_imageWithData:(NSData *)data; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerCustomToolBarView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerCustomToolBarView.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-26. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerCustomToolBarView.h" 10 | 11 | @implementation ZLPhotoPickerCustomToolBarView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCamera.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZLCamera.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-23. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLCamera.h" 10 | 11 | @implementation ZLCamera 12 | 13 | - (UIImage *)photoImage{ 14 | return [UIImage imageWithContentsOfFile:self.imagePath]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/LDRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // LDRefresh.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #ifndef LDRefresh_h 10 | #define LDRefresh_h 11 | 12 | #import "LDRefreshFooterView.h" 13 | #import "LDRefreshHeaderView.h" 14 | #import "UIScrollView+LDRefresh.h" 15 | 16 | 17 | #endif /* LDRefresh_h */ 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVRadialGradientLayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.h 3 | // SVProgressHUD, https://github.com/TransitApp/SVProgressHUD 4 | // 5 | // Copyright (c) 2014 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVRadialGradientLayer : CALayer 11 | 12 | @property (nonatomic) CGPoint gradientCenter; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/DeatailViews/DetailHeadView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailHeadView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | @class RecommendModel; 11 | 12 | @interface DetailHeadView : UIView 13 | 14 | @property (nonatomic ,strong) RecommendModel *activityModel; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/HotCityCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // HotCityCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 热门城市cell 8 | 9 | #import 10 | 11 | @interface HotCityCell : UITableViewCell 12 | 13 | +(instancetype)cellWithTableView:(UITableView *)tableView; 14 | 15 | +(CGFloat)getCellHeight; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/SectionHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SectionHeaderView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 城市选择器头部视图 8 | 9 | #import 10 | 11 | @interface SectionHeaderView : UIView 12 | 13 | 14 | @property (nonatomic, copy) NSString *text; 15 | 16 | +(CGFloat)getSectionHeadHeight; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Controller/MovieDetailController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieDetailController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影详情页 8 | 9 | #import "BaseViewController.h" 10 | #import "MovieModel.h" 11 | 12 | @interface MovieDetailController : BaseViewController 13 | 14 | @property (nonatomic ,strong) MovieModel *movieModel; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/SDWebImageOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | 11 | @protocol SDWebImageOperation 12 | 13 | - (void)cancel; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/LocationCityCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationCityCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 定位到的城市cell 8 | 9 | #import 10 | 11 | @interface LocationCityCell : UITableViewCell 12 | 13 | +(instancetype)cellWithTableView:(UITableView *)tableView; 14 | 15 | +(CGFloat)getCellHeight; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Me/Tool/MeHttpTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // MeHttpTool.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | @class UserInfos; 11 | 12 | @interface MeHttpTool : NSObject 13 | //block传值 14 | typedef void (^UserInfoSuccess)(UserInfos *user); 15 | 16 | 17 | + (void)userInfoSuccess:(UserInfoSuccess)success; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerFooterCollectionReusableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // FooterCollectionReusableView.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-13. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZLPhotoPickerFooterCollectionReusableView : UICollectionReusableView 12 | 13 | @property (nonatomic , assign) NSInteger count; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star10_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star10_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star1_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star1_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star2_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star2_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star3_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star3_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star4_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star4_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star5_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star5_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star6_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star6_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star7_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star7_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star8_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star8_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/starIcons/home_star9_img.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "home_star9_img@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/LDRefreshHeaderView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LDRefreshHeaderView.h 3 | // LDRefresh 4 | // 5 | // Created by lidi on 10/6/15. 6 | // Copyright © 2015 lidi. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern const CGFloat LDRefreshHeaderHeight; 12 | 13 | @interface LDRefreshHeaderView : UIView 14 | @property (nonatomic, assign) CGFloat dragHeight; 15 | 16 | - (void)startRefresh; 17 | - (void)endRefresh; 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Models/ZLPhotoRect.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoRect.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15/8/21. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZLPhotoRect : NSObject 12 | + (CGRect)setMaxMinZoomScalesForCurrentBoundWithImage:(UIImage *)image; 13 | + (CGRect)setMaxMinZoomScalesForCurrentBoundWithImageView:(UIImageView *)imageView; 14 | @end 15 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerCustomToolBarView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerCustomToolBarView.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-26. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | /** 10 | * Note: 图片游览器自定义View 11 | * 在里面创建的控件会添加到 ZLPhotoPickerBrowserViewController view里面 12 | */ 13 | #import 14 | 15 | @interface ZLPhotoPickerCustomToolBarView : UIView 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/AlbumLocationIconHL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "AlbumLocationIconHL@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/DetailControllers/ActivityDetailController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ActivityDetailController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/29. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 活动详情页 8 | 9 | #import "BaseViewController.h" 10 | #import "RecommendModel.h" 11 | @interface ActivityDetailController : BaseViewController 12 | 13 | @property (nonatomic ,strong) RecommendModel *activityModel;//活动ID 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/LuckyMoney_ChangeArrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "LuckyMoney_ChangeArrow@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/icon_sight_close_color.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_sight_close_color@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/CellHidePassword_icon_HL.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "CellHidePassword_icon_HL@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/navigationbar_background_os7.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" : "navigationbar_background_os7@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/View/TranslucentNavbar.h: -------------------------------------------------------------------------------- 1 | // 2 | // TranslucentNavbar.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/7. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 自定义透明的导航栏 8 | 9 | #import 10 | 11 | @interface TranslucentNavbar : UIView 12 | 13 | @property (nonatomic ,assign) BOOL barHidden; 14 | 15 | @property (nonatomic ,strong) NSString *title;//主标题 16 | 17 | @property (nonatomic ,strong) NSString *orgTitle;//原始标题 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_arrow@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_arrow@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_share@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_share@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchbar_textfield_search_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "searchbar_textfield_search_icon@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 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCamera.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLCamera.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-23. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ZLCamera : NSObject 13 | 14 | @property (copy,nonatomic) NSString *imagePath; 15 | @property (strong,nonatomic) UIImage *thumbImage; 16 | @property (strong,nonatomic) UIImage *photoImage; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/View/DetailViews/MovieDetailHeadView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieDetailHeadView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/7. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影详情页头部视图 8 | 9 | #import 10 | @class MovieModel,DetailMovieModel; 11 | 12 | @interface MovieDetailHeadView : UIView 13 | 14 | @property (nonatomic ,strong) MovieModel *model; 15 | 16 | @property (nonatomic ,strong) DetailMovieModel *infoModel; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/CityIndexCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // CityIndexCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/25. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 城市cell 8 | 9 | #import 10 | 11 | @interface CityIndexCell : UITableViewCell 12 | 13 | +(instancetype)cellWithTableView:(UITableView *)tableView; 14 | 15 | +(CGFloat)getCellHeight; 16 | 17 | 18 | @property (nonatomic ,strong) NSString *cityName; 19 | 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/UIImage+GIF.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+GIF.h 3 | // LBGIFImage 4 | // 5 | // Created by Laurin Brandner on 06.01.12. 6 | // Copyright (c) 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (GIF) 12 | 13 | + (UIImage *)sd_animatedGIFNamed:(NSString *)name; 14 | 15 | + (UIImage *)sd_animatedGIFWithData:(NSData *)data; 16 | 17 | - (UIImage *)sd_animatedImageByScalingAndCroppingToSize:(CGSize)size; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/PinYinForObjc.h: -------------------------------------------------------------------------------- 1 | // 2 | // PinYinForObjc.h 3 | // Search 4 | // 5 | // Created by LYZ on 14-1-24. 6 | // Copyright (c) 2014年 LYZ. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "HanyuPinyinOutputFormat.h" 11 | #import "PinyinHelper.h" 12 | 13 | @interface PinYinForObjc : NSObject 14 | 15 | + (NSString*)chineseConvertToPinYin:(NSString*)chinese;//转换为拼音 16 | + (NSString*)chineseConvertToPinYinHead:(NSString *)chinese;//转换为拼音首字母 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerGroupTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerGroupTableViewCell.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-13. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZLPhotoPickerGroup; 12 | 13 | @interface ZLPhotoPickerGroupTableViewCell : UITableViewCell 14 | 15 | /** 16 | * 赋值xib 17 | */ 18 | @property (nonatomic , strong) ZLPhotoPickerGroup *group; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/View/HotMovieCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // HotMovieCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 热映电影 8 | 9 | #import 10 | @class MovieModel; 11 | 12 | @interface HotMovieCell : UITableViewCell 13 | 14 | +(instancetype)cellWithTableView:(UITableView *)tableView; 15 | 16 | +(CGFloat)getCellHeight:(MovieModel *)model; 17 | 18 | @property (nonatomic ,strong) MovieModel *model; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/nav_arrow_white.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "nav_arrow_white@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "nav_arrow_white@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVIndefiniteAnimatedView.h 3 | // SVProgressHUD, https://github.com/TransitApp/SVProgressHUD 4 | // 5 | // Copyright (c) 2014 Guillaume Campagna. All rights reserved. 6 | // 7 | 8 | #import 9 | 10 | @interface SVIndefiniteAnimatedView : UIView 11 | 12 | @property (nonatomic, assign) CGFloat strokeThickness; 13 | @property (nonatomic, assign) CGFloat radius; 14 | @property (nonatomic, strong) UIColor *strokeColor; 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/ActivityTypeCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ActivityTypeCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/31. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ActivityTypeCell : UITableViewCell 12 | 13 | +(CGFloat)getCellHeight; 14 | 15 | +(instancetype)cellWithTableView:(UITableView *)tableView; 16 | 17 | @property (nonatomic ,copy) NSString *title; 18 | @property (nonatomic ,copy) NSString *imageName; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/searchBarBackImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "searchBarBackImage@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "searchBarBackImage@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCameraView.h: -------------------------------------------------------------------------------- 1 | // 2 | // BQCameraView.h 3 | // carame 4 | // 5 | // Created by ZL on 14-9-24. 6 | // Copyright (c) 2014年 beiqing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZLCameraView; 12 | 13 | @protocol ZLCameraViewDelegate 14 | 15 | @optional 16 | - (void) cameraDidSelected : (ZLCameraView *) camera; 17 | 18 | @end 19 | 20 | @interface ZLCameraView : UIView 21 | 22 | @property (weak, nonatomic) id delegate; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Controller/DetailControllers/MapViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MapViewController.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 位置定位界面 8 | 9 | #import "BaseViewController.h" 10 | 11 | @interface MapViewController : BaseViewController 12 | 13 | @property (nonatomic ,copy) NSString *activityName; 14 | 15 | @property (nonatomic ,copy) NSString *address; 16 | 17 | @property (nonatomic ,strong) NSString *geo; 18 | 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetTextIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "FavoritesActionSheetTextIcon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "FavoritesActionSheetTextIcon@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/ChineseInclude.m: -------------------------------------------------------------------------------- 1 | // 2 | // ChineseInclude.m 3 | // Search 4 | // 5 | // Created by LYZ on 14-1-24. 6 | // Copyright (c) 2014年 LYZ. All rights reserved. 7 | // 8 | 9 | #import "ChineseInclude.h" 10 | 11 | @implementation ChineseInclude 12 | + (BOOL)isIncludeChineseInString:(NSString*)str { 13 | for (int i=0; i 10 | 11 | @class RecommendModel; 12 | 13 | @interface DetailContentCell : UITableViewCell 14 | 15 | @property (nonatomic ,strong) RecommendModel *model; 16 | 17 | +(CGFloat)getCellHeight:(RecommendModel *)model; 18 | 19 | +(instancetype)cellWithTableView:(UITableView *)tableView; 20 | 21 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/RecommendCells/HotActivityCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // HotActivityCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 热门活动cell 8 | 9 | #import 10 | @class RecommendModel; 11 | 12 | @interface HotActivityCell : UITableViewCell 13 | 14 | +(CGFloat)getCellHeight:(RecommendModel *)model; 15 | 16 | +(instancetype)cellWithTableView:(UITableView *)tableView; 17 | 18 | @property (nonatomic ,strong) RecommendModel *model; 19 | 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/AvatarsModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // AvatarsModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 图片信息模型 8 | 9 | #import 10 | 11 | @interface AvatarsModel : NSObject 12 | 13 | /** 小 */ 14 | @property (nonatomic ,strong) NSString *small; 15 | /** 大 */ 16 | @property (nonatomic ,strong) NSString *large; 17 | /** 中 */ 18 | @property (nonatomic ,strong) NSString *medium; 19 | 20 | - (id)initWithDictionary:(NSDictionary *)dic; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/DeatailViews/DetailFirstRowCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailFirstRowCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 活动详情页第一个cell 8 | 9 | #import 10 | @class RecommendModel; 11 | 12 | @interface DetailFirstRowCell : UITableViewCell 13 | 14 | @property (nonatomic ,strong) RecommendModel *model; 15 | 16 | +(CGFloat)getCellHeight:(RecommendModel *)model; 17 | 18 | +(instancetype)cellWithTableView:(UITableView *)tableView; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/FavoritesActionSheetLocatinIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "FavoritesActionSheetLocatinIcon@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "FavoritesActionSheetLocatinIcon@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/LDRefreshFooterView.h: -------------------------------------------------------------------------------- 1 | // 2 | // LDRefreshFooterView.h 3 | // LDRefresh 4 | // 5 | // Created by lidi on 10/6/15. 6 | // Copyright © 2015 lidi. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern const CGFloat LDRefreshFooterHeight; 12 | 13 | @interface LDRefreshFooterView : UIView 14 | @property (nonatomic, assign) BOOL autoLoadMore;//default YES 15 | @property (nonatomic, assign) BOOL loadMoreEnabled; //default YES 16 | @property (nonatomic, assign) CGFloat dragHeight; 17 | 18 | - (void)endRefresh; 19 | @end 20 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/SDWebImageDecoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * Created by james on 9/28/11. 6 | * 7 | * For the full copyright and license information, please view the LICENSE 8 | * file that was distributed with this source code. 9 | */ 10 | 11 | #import 12 | #import "SDWebImageCompat.h" 13 | 14 | @interface UIImage (ForceDecode) 15 | 16 | + (UIImage *)decodedImageWithImage:(UIImage *)image; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIImage+category/UIImage+ZLPhotoLib.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+ZLPhotoLib.h 3 | // MLCamera 4 | // 5 | // Created by 张磊 on 15/4/25. 6 | // Copyright (c) 2015年 www.weibo.com/makezl All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (ZLPhotoLib) 12 | + (instancetype)ml_imageFromBundleNamed:(NSString *)name; 13 | - (UIImage *)scaleToSize:(CGSize)size; 14 | - (UIImage *)imageScaleAspectFillFromTop:(CGSize)frameSize; 15 | -(UIImage*)subImageInRect:(CGRect)rect; 16 | - (UIImage *)imageFillSize:(CGSize)viewsize; 17 | @end 18 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/PinyinFormatter.h: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // 4 | // Created by kimziv on 13-9-14. 5 | // 6 | 7 | #ifndef _PinyinFormatter_H_ 8 | #define _PinyinFormatter_H_ 9 | 10 | @class HanyuPinyinOutputFormat; 11 | 12 | @interface PinyinFormatter : NSObject { 13 | } 14 | 15 | + (NSString *)formatHanyuPinyinWithNSString:(NSString *)pinyinStr 16 | withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat; 17 | + (NSString *)convertToneNumber2ToneMarkWithNSString:(NSString *)pinyinStr; 18 | - (id)init; 19 | @end 20 | 21 | #endif // _PinyinFormatter_H_ 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerCollectionViewCell.h 3 | // 相机 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class UICollectionView; 12 | 13 | @interface ZLPhotoPickerCollectionViewCell : UICollectionViewCell 14 | + (instancetype) cellWithCollectionView : (UICollectionView *) collectionView cellForItemAtIndexPath:(NSIndexPath *) indexPath; 15 | 16 | @property (nonatomic , strong) UIImage *cellImage; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/DeatailViews/DetialSecondCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetialSecondCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 活动详情页第二个cell 8 | 9 | #import 10 | @class RecommendModel; 11 | 12 | @interface DetialSecondCell : UITableViewCell 13 | 14 | @property (nonatomic ,strong) RecommendModel *model; 15 | 16 | +(CGFloat)getCellHeight; 17 | 18 | +(instancetype)cellWithTableView:(UITableView *)tableView; 19 | 20 | @property (nonatomic ,copy) NSString *title; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/MainIcons/blog_homepage_headerbg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blog_homepage_headerbg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blog_homepage_headerbg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "blog_homepage_headerbg@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/ViewControllers/ZLPhotoPickerBrowserViewController+SignlePhotoBrowser.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoBrowserViewController+SignlePhotoBrowser.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15/8/21. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerBrowserViewController.h" 10 | 11 | @interface ZLPhotoPickerBrowserViewController (SignlePhotoBrowser) 12 | - (void)showHeadPortrait:(UIImageView *)toImageView; 13 | - (void)showHeadPortrait:(UIImageView *)toImageView originUrl:(NSString *)originUrl; 14 | @end 15 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/RatingModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // RatingModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影评分 8 | 9 | #import 10 | 11 | @interface RatingModel : NSObject 12 | /** 最高评分 */ 13 | @property (nonatomic ,strong) NSString *max; 14 | 15 | @property (nonatomic ,strong) NSString *average; 16 | 17 | @property (nonatomic ,strong) NSString *stars; 18 | /** 最低评分 */ 19 | @property (nonatomic ,strong) NSString *min; 20 | 21 | - (id)initWithDictionary:(NSDictionary *)dic; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/OAuth/Tool/AccountTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // AccountTool.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | @class LYAccount; 11 | 12 | typedef void (^AccessTokenSuccess)(); 13 | 14 | @interface AccountTool : NSObject 15 | 16 | +(void)saveAccount:(LYAccount *)account; 17 | + (LYAccount *)currenAccount; 18 | /** 19 | * 获取access_Token 20 | */ 21 | +(void)getAccessTokenWithcode:(NSString *)code success:(AccessTokenSuccess)success filure:(HttpFailure)failure; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/HanyuPinyinOutputFormat.m: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // 4 | // Created by kimziv on 13-9-14. 5 | // 6 | 7 | #include "HanyuPinyinOutputFormat.h" 8 | 9 | @implementation HanyuPinyinOutputFormat 10 | @synthesize vCharType=_vCharType; 11 | @synthesize caseType=_caseType; 12 | @synthesize toneType=_toneType; 13 | 14 | - (id)init { 15 | if (self = [super init]) { 16 | [self restoreDefault]; 17 | } 18 | return self; 19 | } 20 | 21 | - (void)restoreDefault { 22 | _vCharType = VCharTypeWithUAndColon; 23 | _caseType = CaseTypeLowercase; 24 | _toneType = ToneTypeWithToneNumber; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Defines/LYConstans.h: -------------------------------------------------------------------------------- 1 | // 2 | // LYConstans.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/29. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 常量字段 8 | 9 | #import 10 | 11 | extern NSString *kCurrentActiveType;//当前活动类型 12 | 13 | extern NSString *kCurrentLocation; //获取到的当前位置 14 | 15 | extern NSString *kCityButtonClick;//城市按钮点击 16 | 17 | extern NSString *kTypeButtonClick;//类型选择 18 | 19 | extern NSString *kIsCityButtonClick;//城市按钮是否点击了 20 | 21 | extern NSString *kMovieMenuBtnClick;//电影界面menu按钮监听 22 | 23 | extern NSString *kMovieScrollViewMove;//电影scroll移动 -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/UIImage+WebP.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+WebP.h 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 07/06/13. 6 | // Copyright (c) 2013 Dailymotion. All rights reserved. 7 | // 8 | 9 | #ifdef SD_WEBP 10 | 11 | #import 12 | 13 | // Fix for issue #416 Undefined symbols for architecture armv7 since WebP introduction when deploying to device 14 | void WebPInitPremultiplyNEON(void); 15 | 16 | void WebPInitUpsamplersNEON(void); 17 | 18 | void VP8DspInitNEON(void); 19 | 20 | @interface UIImage (WebP) 21 | 22 | + (UIImage *)sd_imageWithWebPData:(NSData *)data; 23 | 24 | @end 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/CastModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // CastModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 演员信息模型 8 | 9 | #import 10 | @class AvatarsModel; 11 | 12 | @interface CastModel : NSObject 13 | 14 | /** 演员图片(大中小) */ 15 | @property (nonatomic ,strong) AvatarsModel *avatars; 16 | /** 演员主页 */ 17 | @property (nonatomic ,strong) NSString *alt; 18 | /** ID */ 19 | @property (nonatomic ,strong) NSString *ID; 20 | /** 名字 */ 21 | @property (nonatomic ,strong) NSString *name; 22 | 23 | - (id)initWithDictionary:(NSDictionary *)dic; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Tool/LocationManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // LocationManager.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 当前位置管理 8 | 9 | #import 10 | #import 11 | 12 | typedef void (^LocationBlock)(CLLocation *currentLocation,NSString *cityName); 13 | 14 | @interface LocationManager : NSObject 15 | 16 | + (LocationManager *)sharedFOLClient; 17 | 18 | /** 19 | * 获取地址 20 | * 21 | * @param addressBlock addressBlock description 22 | */ 23 | - (void) currentLocation:(LocationBlock)locationBlock; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 代码持续更新中... 2 | # 模仿豆瓣一部分,包括豆瓣同城活动,豆瓣电影 3 | ## 图一 4 | ![image](https://github.com/LeeYouth/DoubanWorld/blob/master/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds.gif ) 5 | ## 图二 6 | ![image](https://github.com/LeeYouth/DoubanWorld/blob/master/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds1.gif ) 7 | ## 图三 8 | ![image](https://github.com/LeeYouth/DoubanWorld/blob/master/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds2.gif ) 9 | ## 图四 10 | ![image](https://github.com/LeeYouth/DoubanWorld/blob/master/DoubanWorlds/DoubanWorlds/Classes/Other/Resources/Introducegif/doubanWorlds3.gif ) 11 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/Defines/LYConstans.m: -------------------------------------------------------------------------------- 1 | // 2 | // LYConstans.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/29. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "LYConstans.h" 10 | 11 | NSString * kCurrentLocation = @"kCurrentLocation"; 12 | 13 | NSString * kCityButtonClick = @"kCityButtonClick"; 14 | 15 | NSString * kTypeButtonClick = @"kTypeButtonClick"; 16 | 17 | NSString * kIsCityButtonClick = @"kIsCityButtonClick"; 18 | 19 | NSString * kCurrentActiveType = @"kCurrentActiveType"; 20 | 21 | NSString * kMovieMenuBtnClick = @"kMovieMenuBtnClick"; 22 | 23 | NSString * kMovieScrollViewMove = @"kMovieScrollViewMove"; -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+ViewController.m 3 | // Movie 4 | // 5 | // Created by xzm on 13-9-18. 6 | // Copyright (c) 2013年 ios. All rights reserved. 7 | // 8 | 9 | #import "UIView+ViewController.h" 10 | 11 | @implementation UIView (ViewController) 12 | 13 | -(UIViewController *)viewController{ 14 | 15 | id next = [self nextResponder]; 16 | 17 | while (next) { 18 | next = [next nextResponder]; 19 | if ([next isKindOfClass:[UIViewController class]]) { 20 | 21 | return next; 22 | } 23 | } 24 | return nil; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+ZLExtension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Extension.h 3 | // 4 | // Created by 张磊 on 14-11-14. 5 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 6 | // 7 | 8 | 9 | #import 10 | 11 | @interface UIView (ZLExtension) 12 | 13 | @property (nonatomic,assign) CGFloat zl_x; 14 | @property (nonatomic,assign) CGFloat zl_y; 15 | @property (nonatomic,assign) CGFloat zl_centerX; 16 | @property (nonatomic,assign) CGFloat zl_centerY; 17 | @property (nonatomic,assign) CGFloat zl_width; 18 | @property (nonatomic,assign) CGFloat zl_height; 19 | @property (nonatomic,assign) CGSize zl_size; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/DACircularProgress/DALabeledCircularProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DALabeledCircularProgressView.h 3 | // DACircularProgressExample 4 | // 5 | // Created by Josh Sklar on 4/8/14. 6 | // Copyright (c) 2014 Shout Messenger. All rights reserved. 7 | // 8 | 9 | #import "DACircularProgressView.h" 10 | 11 | /** 12 | @class DALabeledCircularProgressView 13 | 14 | @brief Subclass of DACircularProgressView that adds a UILabel. 15 | */ 16 | @interface DALabeledCircularProgressView : DACircularProgressView 17 | 18 | /** 19 | UILabel placed right on the DACircularProgressView. 20 | */ 21 | @property (strong, nonatomic) UILabel *progressLabel; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SKTagView/SKTag.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Shaokang Zhao on 15/1/12. 3 | // Copyright (c) 2015 Shaokang Zhao. All rights reserved. 4 | // 5 | 6 | #import "SKTag.h" 7 | 8 | @implementation SKTag 9 | 10 | - (instancetype)initWithText:(NSString *)text 11 | { 12 | self = [super init]; 13 | if (self) 14 | { 15 | _text = text; 16 | _fontSize = 15; 17 | _textColor = [UIColor blackColor]; 18 | _bgColor = [UIColor whiteColor]; 19 | _enable = YES; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | + (instancetype)tagWithText:(NSString *)text 26 | { 27 | return [[self alloc] initWithText:text]; 28 | } 29 | 30 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/AvatarsModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // AvatarsModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "AvatarsModel.h" 10 | 11 | @implementation AvatarsModel 12 | 13 | - (id)initWithDictionary:(NSDictionary *)dic 14 | { 15 | self = [super init]; 16 | if (self) { 17 | [self setValuesForKeysWithDictionary:dic]; 18 | 19 | } 20 | return self; 21 | 22 | } 23 | 24 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 25 | { 26 | 27 | } 28 | 29 | -(id)valueForKeyPath:(NSString *)keyPath 30 | { 31 | return nil; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhoto.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPicker.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-12-17. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #ifndef ZLAssetsPickerDemo_ZLPicker_h 10 | #define ZLAssetsPickerDemo_ZLPicker_h 11 | 12 | #import "ZLCameraViewController.h" 13 | #import "ZLPhotoPickerBrowserViewController.h" 14 | #import "ZLPhotoPickerAssetsViewController.h" 15 | #import "ZLPhotoPickerViewController.h" 16 | #import "ZLPhotoPickerDatas.h" 17 | #import "ZLPhotoPickerCommon.h" 18 | #import "UIView+ZLExtension.h" 19 | 20 | /** 21 | * 22 | 使用方法:看Demo啦~~ 23 | 有什么不懂的也可以联系QQ:120886865 (*^__^*) 嘻嘻…… 24 | * 25 | */ 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+i7Rotate360.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+i7Rotate360.h 3 | // include7 AG 4 | // 5 | // Created by Jonas Schnelli on 01.12.10. 6 | // Copyright 2010 include7 AG. All rights reserved. 7 | // 8 | 9 | 10 | 11 | enum i7Rotate360TimingMode { 12 | i7Rotate360TimingModeEaseInEaseOut, 13 | i7Rotate360TimingModeLinear 14 | }; 15 | 16 | @interface UIView (i7Rotate360) 17 | - (void)rotate360WithDuration:(CGFloat)aDuration repeatCount:(CGFloat)aRepeatCount timingMode:(enum i7Rotate360TimingMode)aMode; 18 | - (void)rotate360WithDuration:(CGFloat)aDuration timingMode:(enum i7Rotate360TimingMode)aMode; 19 | - (void)rotate360WithDuration:(CGFloat)aDuration; 20 | @end 21 | 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Model/HotCityModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // HotCityModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/25. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 热门城市数据模型 8 | 9 | #import 10 | 11 | @interface HotCityModel : NSObject 12 | /** 父城市 */ 13 | @property (nonatomic ,strong) NSString *parent; 14 | /** YES 或者 NO */ 15 | @property (nonatomic ,strong) NSString *habitable; 16 | /** 城市ID */ 17 | @property (nonatomic ,strong) NSString *ID; 18 | /** 城市名字 */ 19 | @property (nonatomic ,strong) NSString *name; 20 | /** 城市英文名 */ 21 | @property (nonatomic ,strong) NSString *uid; 22 | 23 | - (id)initWithDictionary:(NSDictionary *)dic; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCameraViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // BQCamera.h 3 | // BQCommunity 4 | // 5 | // Created by ZL on 14-9-11. 6 | // Copyright (c) 2014年 beiqing. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZLCamera.h" 11 | 12 | typedef void(^ZLCameraCallBack)(id object); 13 | 14 | @interface ZLCameraViewController : UIViewController 15 | 16 | // 顶部View 17 | @property (weak, nonatomic) UIView *topView; 18 | // 底部View 19 | @property (weak, nonatomic) UIView *controlView; 20 | // 拍照的个数限制 21 | @property (assign,nonatomic) NSInteger maxCount; 22 | // 完成后回调 23 | @property (copy, nonatomic) ZLCameraCallBack callback; 24 | 25 | - (void)showPickerVc:(UIViewController *)vc; 26 | @end 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCameraImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // BQImageView.h 3 | // BQCommunity 4 | // 5 | // Created by TJQ on 14-8-5. 6 | // Copyright (c) 2014年 beiqing. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZLCameraImageView; 12 | 13 | @protocol ZLCameraImageViewDelegate 14 | 15 | @optional 16 | /** 17 | * 根据index来删除照片 18 | */ 19 | - (void) deleteImageView : (ZLCameraImageView *) imageView; 20 | 21 | @end 22 | 23 | @interface ZLCameraImageView : UIImageView 24 | 25 | @property (weak, nonatomic) id delegatge; 26 | /** 27 | * 是否是编辑模式 , YES 代表是 28 | */ 29 | @property (assign, nonatomic, getter = isEdit) BOOL edit; 30 | 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/OAuth/Model/LYAccount.h: -------------------------------------------------------------------------------- 1 | // 2 | // LYAccount.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LYAccount : NSObject 12 | 13 | /** string 用于调用access_token,接口获取授权后的access token */ 14 | @property (nonatomic,copy) NSString *access_token; 15 | 16 | /** string 用于调用access_token 生命周期,单位是秒数 */ 17 | @property (nonatomic,copy) NSString *expires_in; 18 | 19 | 20 | @property (nonatomic ,strong) NSString *refresh_token; 21 | 22 | /** string 授权用户的UID */ 23 | @property (nonatomic,copy) NSString *douban_user_id; 24 | 25 | - (id)initWithDict:(NSDictionary *)dic; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/NSData+ImageContentType.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import 7 | 8 | @interface NSData (ImageContentType) 9 | 10 | /** 11 | * Compute the content type for an image data 12 | * 13 | * @param data the input data 14 | * 15 | * @return the content type as string (i.e. image/jpeg, image/gif) 16 | */ 17 | + (NSString *)sd_contentTypeForImageData:(NSData *)data; 18 | 19 | @end 20 | 21 | 22 | @interface NSData (ImageContentTypeDeprecated) 23 | 24 | + (NSString *)contentTypeForImageData:(NSData *)data __deprecated_msg("Use `sd_contentTypeForImageData:`"); 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Model/ActivityOwnerModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // ActivityOwnerModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ActivityOwnerModel : NSObject 12 | 13 | @property (nonatomic ,strong) NSString *name; 14 | @property (nonatomic ,strong) NSString *avatar; 15 | @property (nonatomic ,strong) NSString *uid; 16 | @property (nonatomic ,strong) NSString *alt; 17 | @property (nonatomic ,strong) NSString *type; 18 | @property (nonatomic ,strong) NSString *ID; 19 | @property (nonatomic ,strong) NSString *large_avatar; 20 | - (id)initWithDictionary:(NSDictionary *)dic; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Models/ZLPhotoAssets.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLAssets.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-3. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ZLPhotoAssets : NSObject 13 | 14 | @property (strong,nonatomic) ALAsset *asset; 15 | 16 | /** 17 | * 缩略图 18 | */ 19 | - (UIImage *)aspectRatioImage; 20 | /** 21 | * 缩略图 22 | */ 23 | - (UIImage *)thumbImage; 24 | /** 25 | * 原图 26 | */ 27 | - (UIImage *)originImage; 28 | /** 29 | * 获取是否是视频类型, Default = false 30 | */ 31 | @property (assign,nonatomic) BOOL isVideoType; 32 | /** 33 | * 获取图片的URL 34 | */ 35 | - (NSURL *)assetURL; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/ViewControllers/ZLPhotoPickerGroupViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerGroupViewController.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZLPhotoPickerViewController.h" 11 | 12 | @interface ZLPhotoPickerGroupViewController : UIViewController 13 | 14 | @property (nonatomic , weak) id delegate; 15 | @property (nonatomic , assign) PickerViewShowStatus status; 16 | @property (nonatomic , assign) NSInteger maxCount; 17 | // 记录选中的值 18 | @property (strong,nonatomic) NSArray *selectAsstes; 19 | // 置顶展示图片 20 | @property (assign,nonatomic) BOOL topShowPhotoPicker; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerBrowserPhotoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerBrowserPhotoView.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-14. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol ZLPhotoPickerBrowserPhotoViewDelegate; 13 | 14 | @interface ZLPhotoPickerBrowserPhotoView : UIView {} 15 | 16 | @property (nonatomic, weak) id tapDelegate; 17 | 18 | @end 19 | 20 | @protocol ZLPhotoPickerBrowserPhotoViewDelegate 21 | 22 | @optional 23 | 24 | - (void)view:(UIView *)view singleTapDetected:(UITouch *)touch; 25 | - (void)view:(UIView *)view doubleTapDetected:(UITouch *)touch; 26 | 27 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Tool/HttpTools.h: -------------------------------------------------------------------------------- 1 | // 2 | // HttpTools.h 3 | // Finance 4 | // 5 | // Created by LYoung on 15/8/4. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 基础网络请求 8 | 9 | #import 10 | 11 | 12 | typedef void (^HttpSuccess)(id json); 13 | typedef void (^HttpFailure)(NSError *error); 14 | 15 | typedef void (^ArrayBlock)(NSMutableArray *resultArray); 16 | 17 | 18 | @interface HttpTools : NSObject 19 | 20 | 21 | /** 22 | * POST请求 23 | */ 24 | + (void)postWithURL:(NSString *)url params:(NSDictionary *)params success:(HttpSuccess)success failure:(HttpFailure)failure; 25 | /** 26 | * GET请求 27 | */ 28 | + (void)getWithURL:(NSString *)url params:(NSDictionary *)params success:(HttpSuccess)success failure:(HttpFailure)failure; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Model/HotCityModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // HotCityModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/25. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "HotCityModel.h" 10 | 11 | @implementation HotCityModel 12 | 13 | - (id)initWithDictionary:(NSDictionary *)dic 14 | { 15 | self = [super init]; 16 | if (self) { 17 | [self setValuesForKeysWithDictionary:dic]; 18 | if (dic[@"id"]) { 19 | self.ID = [NSString stringWithFormat:@"%@",dic[@"id"]]; 20 | } 21 | } 22 | return self; 23 | 24 | } 25 | 26 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 27 | { 28 | 29 | } 30 | 31 | -(id)valueForKeyPath:(NSString *)keyPath 32 | { 33 | return nil; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerImageView.h 3 | // 相机 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ZLPhotoPickerImageView : UIImageView 12 | /** 13 | * 是否有蒙版层 14 | */ 15 | @property (nonatomic , assign , getter=isMaskViewFlag) BOOL maskViewFlag; 16 | /** 17 | * 蒙版层的颜色,默认白色 18 | */ 19 | @property (nonatomic , strong) UIColor *maskViewColor; 20 | /** 21 | * 蒙版的透明度,默认 0.5 22 | */ 23 | @property (nonatomic , assign) CGFloat maskViewAlpha; 24 | /** 25 | * 是否有右上角打钩的按钮 26 | */ 27 | @property (nonatomic , assign) BOOL animationRightTick; 28 | /** 29 | * 是否视频类型 30 | */ 31 | @property (assign,nonatomic) BOOL isVideoType; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Model/ActivityOwnerModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // ActivityOwnerModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "ActivityOwnerModel.h" 10 | 11 | @implementation ActivityOwnerModel 12 | 13 | - (id)initWithDictionary:(NSDictionary *)dic 14 | { 15 | self = [super init]; 16 | if (self) { 17 | [self setValuesForKeysWithDictionary:dic]; 18 | if (dic[@"id"]) { 19 | self.ID = [NSString stringWithFormat:@"%@",dic[@"id"]]; 20 | } 21 | } 22 | return self; 23 | 24 | } 25 | 26 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 27 | { 28 | 29 | } 30 | 31 | -(id)valueForKeyPath:(NSString *)keyPath 32 | { 33 | return nil; 34 | } 35 | 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/View/DetailViews/MovieDetailIntroCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieDetailIntroCell.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/20. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影详情页电影简介 8 | 9 | #import 10 | @class DetailMovieModel; 11 | 12 | typedef void (^CellBlock)(NSIndexPath *indexPath); 13 | 14 | 15 | @interface MovieDetailIntroCell : UITableViewCell 16 | 17 | @property (nonatomic ,strong) UIButton *unfoldBtn;//展开视图 18 | 19 | @property (nonatomic, copy) CellBlock block; 20 | 21 | @property (nonatomic, strong) NSIndexPath *indexPath; 22 | 23 | 24 | + (instancetype)cellWithTableView:(UITableView *)tableView; 25 | 26 | - (void)configCellWithModel:(DetailMovieModel *)model; 27 | 28 | + (CGFloat)heightWithModel:(DetailMovieModel *)model; 29 | 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SKTagView/SKTagView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SKTagView.h 3 | // 4 | // Created by Shaokang Zhao on 15/1/12. 5 | // Copyright (c) 2015 Shaokang Zhao. All rights reserved. 6 | // 7 | 8 | #import 9 | #import "SKTag.h" 10 | 11 | @interface SKTagView : UIView 12 | 13 | @property (nonatomic) UIEdgeInsets padding; 14 | @property (nonatomic) int lineSpace; 15 | @property (nonatomic) CGFloat insets; 16 | @property (nonatomic) CGFloat preferredMaxLayoutWidth; 17 | @property (nonatomic) BOOL singleLine; 18 | 19 | - (void)addTag:(SKTag *)tag; 20 | - (void)insertTag:(SKTag *)tag atIndex:(NSUInteger)index; 21 | - (void)removeTag:(SKTag *)tag; 22 | - (void)removeTagAtIndex:(NSUInteger)index; 23 | - (void)removeAllTags; 24 | 25 | @property (nonatomic, copy) void (^didClickTagAtIndex)(NSUInteger index); 26 | 27 | @end 28 | 29 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/ChineseToPinyinResource.h: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // 4 | // Created by kimziv on 13-9-14. 5 | // 6 | 7 | #ifndef _ChineseToPinyinResource_H_ 8 | #define _ChineseToPinyinResource_H_ 9 | 10 | @class NSArray; 11 | @class NSMutableDictionary; 12 | 13 | @interface ChineseToPinyinResource : NSObject { 14 | NSString* _directory; 15 | NSDictionary *_unicodeToHanyuPinyinTable; 16 | } 17 | //@property(nonatomic, strong)NSDictionary *unicodeToHanyuPinyinTable; 18 | 19 | - (id)init; 20 | - (void)initializeResource; 21 | - (NSArray *)getHanyuPinyinStringArrayWithChar:(unichar)ch; 22 | - (BOOL)isValidRecordWithNSString:(NSString *)record; 23 | - (NSString *)getHanyuPinyinRecordFromCharWithChar:(unichar)ch; 24 | + (ChineseToPinyinResource *)getInstance; 25 | 26 | @end 27 | 28 | 29 | 30 | #endif // _ChineseToPinyinResource_H_ 31 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorldsUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIBarButtonItem+Extension/UIBarButtonItem+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIBarButtonItem+Extension.h 3 | // Finance 4 | // 5 | // Created by xinbb on 15/7/13. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIBarButtonItem (Extension) 12 | 13 | + (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action normalImage:(NSString *)normalImage highlightedImage:(NSString *)highlightedImage; 14 | 15 | +(UIBarButtonItem *)itemWithImage:(NSString *)image higlightedImage:(NSString *)hilight target:(id)target action:(SEL)action; 16 | 17 | +(UIBarButtonItem *)itemWithImage:(NSString *)image title:(NSString *)title target:(id)target action:(SEL)action; 18 | 19 | +(UIBarButtonItem *)itemWithImage:(NSString *)image target:(id)target action:(SEL)action; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/HanyuPinyinOutputFormat.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by kimziv on 13-9-14. 3 | */ 4 | #ifndef _HanyuPinyinOutputFormat_H_ 5 | #define _HanyuPinyinOutputFormat_H_ 6 | 7 | typedef enum { 8 | ToneTypeWithToneNumber, 9 | ToneTypeWithoutTone, 10 | ToneTypeWithToneMark 11 | }ToneType; 12 | 13 | typedef enum { 14 | CaseTypeUppercase, 15 | CaseTypeLowercase 16 | }CaseType; 17 | 18 | typedef enum { 19 | VCharTypeWithUAndColon, 20 | VCharTypeWithV, 21 | VCharTypeWithUUnicode 22 | }VCharType; 23 | 24 | 25 | @interface HanyuPinyinOutputFormat : NSObject 26 | 27 | @property(nonatomic, assign) VCharType vCharType; 28 | @property(nonatomic, assign) CaseType caseType; 29 | @property(nonatomic, assign) ToneType toneType; 30 | 31 | - (id)init; 32 | - (void)restoreDefault; 33 | @end 34 | 35 | #endif // _HanyuPinyinOutputFormat_H_ 36 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Models/ZLPhotoPickerGroup.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerGroup.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface ZLPhotoPickerGroup : NSObject 13 | 14 | /** 15 | * 组名 16 | */ 17 | @property (nonatomic , copy) NSString *groupName; 18 | 19 | /** 20 | * 缩略图 21 | */ 22 | @property (nonatomic , strong) UIImage *thumbImage; 23 | 24 | /** 25 | * 组里面的图片个数 26 | */ 27 | @property (nonatomic , assign) NSInteger assetsCount; 28 | 29 | /** 30 | * 类型 : Saved Photos... 31 | */ 32 | @property (nonatomic , copy) NSString *type; 33 | 34 | @property (nonatomic , strong) ALAssetsGroup *group; 35 | 36 | @property (assign,nonatomic) BOOL isVideo; 37 | @end 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorldsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds.xcodeproj/xcuserdata/LYoung.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DoubanWorlds.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | E6E2B3AE1C2942F4003F2C4B 16 | 17 | primary 18 | 19 | 20 | E6E2B3C71C2942F5003F2C4B 21 | 22 | primary 23 | 24 | 25 | E6E2B3D21C2942F5003F2C4B 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIViewExt.h: -------------------------------------------------------------------------------- 1 | /* 2 | Erica Sadun, http://ericasadun.com 3 | iPhone Developer's Cookbook, 3.0 Edition 4 | BSD License, Use at your own risk 5 | */ 6 | 7 | #import 8 | 9 | CGPoint CGRectGetCenter(CGRect rect); 10 | CGRect CGRectMoveToCenter(CGRect rect, CGPoint center); 11 | 12 | @interface UIView (ViewFrameGeometry) 13 | @property CGPoint origin; 14 | @property CGSize size; 15 | 16 | @property (readonly) CGPoint bottomLeft; 17 | @property (readonly) CGPoint bottomRight; 18 | @property (readonly) CGPoint topRight; 19 | 20 | @property CGFloat height; 21 | @property CGFloat width; 22 | 23 | @property CGFloat top; 24 | @property CGFloat left; 25 | 26 | @property CGFloat bottom; 27 | @property CGFloat right; 28 | 29 | - (void) moveBy: (CGPoint) delta; 30 | - (void) scaleBy: (CGFloat) scaleFactor; 31 | - (void) fitInSize: (CGSize) aSize; 32 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerCollectionViewCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // PickerCollectionViewCell.m 3 | // 相机 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerCollectionViewCell.h" 10 | 11 | static NSString *const _cellIdentifier = @"cell"; 12 | 13 | @implementation ZLPhotoPickerCollectionViewCell 14 | 15 | + (instancetype)cellWithCollectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 16 | 17 | ZLPhotoPickerCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:_cellIdentifier forIndexPath:indexPath]; 18 | 19 | if ([[cell.contentView.subviews lastObject] isKindOfClass:[UIImageView class]]) { 20 | [[cell.contentView.subviews lastObject] removeFromSuperview]; 21 | } 22 | 23 | return cell; 24 | } 25 | @end 26 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/ViewControllers/ZLPhotoPickerAssetsViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerAssetsViewController.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-12. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZLPhotoPickerCommon.h" 11 | #import "ZLPhotoPickerGroupViewController.h" 12 | 13 | @class ZLPhotoPickerGroup; 14 | 15 | @interface ZLPhotoPickerAssetsViewController : UIViewController 16 | 17 | @property (weak , nonatomic) ZLPhotoPickerGroupViewController *groupVc; 18 | @property (nonatomic , assign) PickerViewShowStatus status; 19 | @property (nonatomic , strong) ZLPhotoPickerGroup *assetsGroup; 20 | @property (nonatomic , assign) NSInteger maxCount; 21 | // 需要记录选中的值的数据 22 | @property (strong,nonatomic) NSArray *selectPickerAssets; 23 | // 置顶展示图片 24 | @property (assign,nonatomic) BOOL topShowPhotoPicker; 25 | @end 26 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/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 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Tool/MovieHttpTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieHttpTool.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | @class DetailMovieModel; 11 | 12 | typedef void (^MovieInfoBlock)(DetailMovieModel *movieModel); 13 | 14 | @interface MovieHttpTool : NSObject 15 | /** 16 | * 获取热映电影 17 | * 18 | * @param start 开始页 19 | * @param arrayBlock 返回数组 20 | */ 21 | +(void)getHotMovieWithStart:(NSInteger)start arrayBlock:(ArrayBlock)arrayBlock; 22 | 23 | /** 24 | * 即将上映的电影 25 | * 26 | * @param start 开始页 27 | * @param arrayBlock 返回数组 28 | */ 29 | +(void)getComingsoonWithStart:(NSInteger)start arrayBlock:(ArrayBlock)arrayBlock; 30 | 31 | /** 32 | * 电影详细信息 33 | * 34 | * @param movieID 电影ID 35 | */ 36 | +(void)getMovieInfoWithID:(NSString *)movieID movieInfoBlock:(MovieInfoBlock)movieInfoBlock; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Models/ZLPhotoAssets.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZLAssets.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15-1-3. 6 | // Copyright (c) 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoAssets.h" 10 | 11 | @implementation ZLPhotoAssets 12 | 13 | - (UIImage *)aspectRatioImage{ 14 | return [UIImage imageWithCGImage:[self.asset aspectRatioThumbnail]]; 15 | } 16 | 17 | - (UIImage *)thumbImage{ 18 | return [UIImage imageWithCGImage:[self.asset thumbnail]]; 19 | } 20 | 21 | - (UIImage *)originImage{ 22 | return [UIImage imageWithCGImage:[[self.asset defaultRepresentation] fullScreenImage]]; 23 | } 24 | 25 | - (BOOL)isVideoType{ 26 | NSString *type = [self.asset valueForProperty:ALAssetPropertyType]; 27 | //媒体类型是视频 28 | return [type isEqualToString:ALAssetTypeVideo]; 29 | } 30 | 31 | - (NSURL *)assetURL{ 32 | return [[self.asset defaultRepresentation] url]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerBrowserPhotoImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerBrowserPhotoImageView.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-14. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @protocol ZLPhotoPickerBrowserPhotoImageViewDelegate; 13 | 14 | @interface ZLPhotoPickerBrowserPhotoImageView : UIImageView {} 15 | 16 | @property (nonatomic, weak) id tapDelegate; 17 | @property (assign,nonatomic) CGFloat progress; 18 | 19 | - (void)addScaleBigTap; 20 | - (void)removeScaleBigTap; 21 | @end 22 | 23 | @protocol ZLPhotoPickerBrowserPhotoImageViewDelegate 24 | 25 | @optional 26 | - (void)imageView:(UIImageView *)imageView singleTapDetected:(UITouch *)touch; 27 | - (void)imageView:(UIImageView *)imageView doubleTapDetected:(UITouch *)touch; 28 | 29 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Model/RecommendModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "RecommendModel.h" 10 | #import "ActivityOwnerModel.h" 11 | 12 | @implementation RecommendModel 13 | - (id)initWithDictionary:(NSDictionary *)dic 14 | { 15 | self = [super init]; 16 | if (self) { 17 | [self setValuesForKeysWithDictionary:dic]; 18 | if (dic[@"id"]) { 19 | self.ID = [NSString stringWithFormat:@"%@",dic[@"id"]]; 20 | if (dic[@"owner"]) { 21 | self.owner = [[ActivityOwnerModel alloc] initWithDictionary:dic[@"owner"]]; 22 | } 23 | } 24 | } 25 | return self; 26 | 27 | } 28 | 29 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 30 | { 31 | 32 | } 33 | 34 | -(id)valueForKeyPath:(NSString *)keyPath 35 | { 36 | return nil; 37 | } 38 | @end 39 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/RatingModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // RatingModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "RatingModel.h" 10 | 11 | @implementation RatingModel 12 | 13 | - (id)initWithDictionary:(NSDictionary *)dic 14 | { 15 | self = [super init]; 16 | if (self) { 17 | [self setValuesForKeysWithDictionary:dic]; 18 | 19 | self.max = [NSString stringWithFormat:@"%@",dic[@"max"]]; 20 | self.average = [NSString stringWithFormat:@"%@",dic[@"average"]]; 21 | self.stars = [NSString stringWithFormat:@"%@",dic[@"stars"]]; 22 | self.min = [NSString stringWithFormat:@"%@",dic[@"min"]]; 23 | 24 | } 25 | return self; 26 | 27 | } 28 | 29 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 30 | { 31 | 32 | } 33 | 34 | -(id)valueForKeyPath:(NSString *)keyPath 35 | { 36 | return nil; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/DoubanWorlds.pch: -------------------------------------------------------------------------------- 1 | // 2 | // DoubanWorlds.pch 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #ifndef DoubanWorlds_pch 10 | #define DoubanWorlds_pch 11 | 12 | #import 13 | #import 14 | 15 | #import "URLDefines.h" 16 | #import "CommenDefines.h" 17 | #import "Masonry.h" 18 | #import "SVProgressHUDManager.h" 19 | #import "UIImageView+WebCache.h" 20 | #import "HttpTools.h" 21 | #import "AppTools.h" 22 | #import "NSString+Extension.h" 23 | #import "BaseViewController.h" 24 | #import "UIViewExt.h" 25 | #import "UIView+ViewController.h" 26 | #import "LYConstans.h" 27 | 28 | 29 | 30 | // Include any system framework and library headers here that should be included in all compilation units. 31 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. 32 | 33 | #endif /* DoubanWorlds_pch */ 34 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Tool/BLRColorComponents.h: -------------------------------------------------------------------------------- 1 | // 2 | // BLRColorComponents.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 毛玻璃效果封装 8 | 9 | #import 10 | 11 | @interface BLRColorComponents : NSObject 12 | 13 | @property(nonatomic, assign) CGFloat radius; 14 | @property(nonatomic, strong) UIColor *tintColor; 15 | @property(nonatomic, assign) CGFloat saturationDeltaFactor; 16 | @property(nonatomic, strong) UIImage *maskImage; 17 | 18 | /** 19 | * Light color effect. 20 | */ 21 | + (BLRColorComponents *) lightEffect; 22 | 23 | /** 24 | * Dark color effect. 25 | */ 26 | + (BLRColorComponents *) darkEffect; 27 | 28 | /** 29 | * Coral color effect. 30 | */ 31 | + (BLRColorComponents *) coralEffect; 32 | 33 | /** 34 | * Neon color effect. 35 | */ 36 | + (BLRColorComponents *) neonEffect; 37 | 38 | /** 39 | * Sky color effect. 40 | */ 41 | + (BLRColorComponents *) skyEffect; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Tool/AppTools.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppTools.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppTools : NSObject 12 | /** 13 | * 字符串转换称颜色 14 | * 15 | * @param stringToConvert 需要填充的颜色 16 | * 17 | * @return RGB值 18 | */ 19 | + (UIColor *) colorWithHexString: (NSString *) stringToConvert; 20 | 21 | /** 22 | * 设置行间距为6的字符 23 | * 24 | * @param contentText 传入的字符串 25 | * 26 | * @return 返回属性化的字符 27 | */ 28 | + (NSMutableAttributedString *)setLineSpacingWith:(NSString *)contentText lineSpacing:(CGFloat)lineSpacing; 29 | /** 30 | * 格式化一个数量 31 | * 32 | * @param count 传入的数量 33 | * 34 | * @return 返回格式化的数量 35 | */ 36 | + (NSString *)formatCount:(NSString *)count; 37 | 38 | + (UIImage *)imageWithColor:(UIColor *)color; 39 | 40 | + (NSString *)formatRating:(NSString *)rating; 41 | 42 | + (NSString *)formatCountstr:(NSString *)countStr; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVRadialGradientLayer.m: -------------------------------------------------------------------------------- 1 | // 2 | // SVRadialGradientLayer.m 3 | // SVProgressHUD, https://github.com/TransitApp/SVProgressHUD 4 | // 5 | // Copyright (c) 2014 Tobias Tiemerding. All rights reserved. 6 | // 7 | 8 | #import "SVRadialGradientLayer.h" 9 | 10 | @implementation SVRadialGradientLayer 11 | 12 | - (void)drawInContext:(CGContextRef)context { 13 | size_t locationsCount = 2; 14 | CGFloat locations[2] = {0.0f, 1.0f}; 15 | CGFloat colors[8] = {0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.75f}; 16 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 17 | CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, locationsCount); 18 | CGColorSpaceRelease(colorSpace); 19 | 20 | float radius = MIN(self.bounds.size.width , self.bounds.size.height) ; 21 | CGContextDrawRadialGradient (context, gradient, self.gradientCenter, 0, self.gradientCenter, radius, kCGGradientDrawsAfterEndLocation); 22 | CGGradientRelease(gradient); 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/DeatailViews/ALActionSheetView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ALActionSheetView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 自定义actionsheet 8 | 9 | #import 10 | 11 | @class ALActionSheetView; 12 | 13 | typedef void (^ALActionSheetViewDidSelectButtonBlock)(ALActionSheetView *actionSheetView, NSInteger buttonIndex); 14 | 15 | @interface ALActionSheetView : UIView 16 | 17 | + (ALActionSheetView *)showActionSheetWithTitle:(NSString *)title cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSArray *)otherButtonTitles handler:(ALActionSheetViewDidSelectButtonBlock)block; 18 | 19 | - (instancetype)initWithTitle:(NSString *)title cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSArray *)otherButtonTitles handler:(ALActionSheetViewDidSelectButtonBlock)block; 20 | 21 | - (void)show; 22 | - (void)dismiss; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/ViewControllers/ZLNavigationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZLNavigationController.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 15/11/25. 6 | // Copyright © 2015年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLNavigationController.h" 10 | 11 | @interface ZLNavigationController () 12 | 13 | @end 14 | 15 | @implementation ZLNavigationController 16 | 17 | - (void)viewDidLoad { 18 | [super viewDidLoad]; 19 | // Do any additional setup after loading the view. 20 | } 21 | 22 | - (void)didReceiveMemoryWarning { 23 | [super didReceiveMemoryWarning]; 24 | // Dispose of any resources that can be recreated. 25 | } 26 | 27 | /* 28 | #pragma mark - Navigation 29 | 30 | // In a storyboard-based application, you will often want to do a little preparation before navigation 31 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 32 | // Get the new view controller using [segue destinationViewController]. 33 | // Pass the selected object to the new view controller. 34 | } 35 | */ 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/LDRefresh/UIScrollView+LDRefresh.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView+LDRefresh.h 3 | // LDRefresh 4 | // 5 | // Created by lidi on 10/6/15. 6 | // Copyright © 2015 lidi. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class LDRefreshHeaderView; 12 | @class LDRefreshFooterView; 13 | 14 | typedef void(^LDRefreshedHandler)(void); 15 | @interface UIScrollView (LDRefresh) 16 | 17 | //header 18 | @property (strong, nonatomic) LDRefreshHeaderView *refreshHeader; 19 | - (LDRefreshHeaderView *)addRefreshHeaderWithHandler:(LDRefreshedHandler)refreshHandler; 20 | //For header Extend 21 | - (LDRefreshHeaderView *)addRefreshHeader:(LDRefreshHeaderView *)refreshHeaderView handler:(LDRefreshedHandler)refreshHandler; 22 | 23 | //footer 24 | @property (strong, nonatomic) LDRefreshFooterView *refreshFooter; 25 | - (LDRefreshFooterView *)addRefreshFooterWithHandler:(LDRefreshedHandler)refreshHandler; 26 | //For footer Extend 27 | - (LDRefreshFooterView *)addRefreshFooter:(LDRefreshFooterView *)refreshFooterView handler:(LDRefreshedHandler)refreshHandler; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorldsTests/DoubanWorldsTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // DoubanWorldsTests.m 3 | // DoubanWorldsTests 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DoubanWorldsTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation DoubanWorldsTests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | // Put setup code here. This method is called before the invocation of each test method in the class. 20 | } 21 | 22 | - (void)tearDown { 23 | // Put teardown code here. This method is called after the invocation of each test method in the class. 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample { 28 | // This is an example of a functional test case. 29 | // Use XCTAssert and related functions to verify your tests produce the correct results. 30 | } 31 | 32 | - (void)testPerformanceExample { 33 | // This is an example of a performance test case. 34 | [self measureBlock:^{ 35 | // Put the code you want to measure the time of here. 36 | }]; 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/CastModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // CastModel.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "CastModel.h" 10 | #import "AvatarsModel.h" 11 | 12 | @implementation CastModel 13 | 14 | - (id)initWithDictionary:(NSDictionary *)dic 15 | { 16 | self = [super init]; 17 | if (self) { 18 | [self setValuesForKeysWithDictionary:dic]; 19 | 20 | self.ID = [NSString stringWithFormat:@"%@",dic[@"id"]]; 21 | self.alt = [NSString stringWithFormat:@"%@",dic[@"alt"]]; 22 | self.name = [NSString stringWithFormat:@"%@",dic[@"name"]]; 23 | 24 | if ([dic[@"avatars"] isKindOfClass:[NSDictionary class]]) { 25 | self.avatars = [[AvatarsModel alloc] initWithDictionary:dic[@"avatars"]]; 26 | } 27 | 28 | } 29 | return self; 30 | 31 | } 32 | 33 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key 34 | { 35 | 36 | } 37 | 38 | -(id)valueForKeyPath:(NSString *)keyPath 39 | { 40 | return nil; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SKTagView/SKTag.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Shaokang Zhao on 15/1/12. 3 | // Copyright (c) 2015 Shaokang Zhao. All rights reserved. 4 | // 5 | 6 | #import 7 | #import 8 | 9 | @interface SKTag : NSObject 10 | 11 | @property (nonatomic, copy) NSString *text; 12 | @property (nonatomic, copy) NSAttributedString *attributedText; 13 | @property (nonatomic, strong) UIColor *textColor; 14 | ///backgound color 15 | @property (nonatomic, strong) UIColor *bgColor; 16 | ///background image 17 | @property (nonatomic, strong) UIImage *bgImg; 18 | @property (nonatomic) CGFloat cornerRadius; 19 | @property (nonatomic, strong) UIColor *borderColor; 20 | @property (nonatomic) CGFloat borderWidth; 21 | ///like padding in css 22 | @property (nonatomic) UIEdgeInsets padding; 23 | @property (nonatomic, strong) UIFont *font; 24 | ///if no font is specified, system font with fontSize is used 25 | @property (nonatomic) CGFloat fontSize; 26 | ///default:YES 27 | @property (nonatomic) BOOL enable; 28 | 29 | - (instancetype)initWithText:(NSString *)text; 30 | + (instancetype)tagWithText:(NSString *)text; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/UIView+WebCacheOperation.h: -------------------------------------------------------------------------------- 1 | /* 2 | * This file is part of the SDWebImage package. 3 | * (c) Olivier Poitrey 4 | * 5 | * For the full copyright and license information, please view the LICENSE 6 | * file that was distributed with this source code. 7 | */ 8 | 9 | #import 10 | #import "SDWebImageManager.h" 11 | 12 | @interface UIView (WebCacheOperation) 13 | 14 | /** 15 | * Set the image load operation (storage in a UIView based dictionary) 16 | * 17 | * @param operation the operation 18 | * @param key key for storing the operation 19 | */ 20 | - (void)sd_setImageLoadOperation:(id)operation forKey:(NSString *)key; 21 | 22 | /** 23 | * Cancel all operations for the current UIView and key 24 | * 25 | * @param key key for identifying the operations 26 | */ 27 | - (void)sd_cancelImageLoadOperationWithKey:(NSString *)key; 28 | 29 | /** 30 | * Just remove the operations corresponding to the current UIView and key without cancelling them 31 | * 32 | * @param key key for identifying the operations 33 | */ 34 | - (void)sd_removeImageLoadOperationWithKey:(NSString *)key; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerFooterCollectionReusableView.m: -------------------------------------------------------------------------------- 1 | // 2 | // FooterCollectionReusableView.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-13. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerFooterCollectionReusableView.h" 10 | #import "UIView+ZLExtension.h" 11 | 12 | @interface ZLPhotoPickerFooterCollectionReusableView () 13 | @property (weak, nonatomic) UILabel *footerLabel; 14 | 15 | @end 16 | 17 | @implementation ZLPhotoPickerFooterCollectionReusableView 18 | 19 | - (UILabel *)footerLabel{ 20 | if (!_footerLabel) { 21 | UILabel *footerLabel = [[UILabel alloc] init]; 22 | footerLabel.frame = self.bounds; 23 | footerLabel.textAlignment = NSTextAlignmentCenter; 24 | [self addSubview:footerLabel]; 25 | self.footerLabel = footerLabel; 26 | } 27 | 28 | return _footerLabel; 29 | } 30 | 31 | - (void)setCount:(NSInteger)count{ 32 | _count = count; 33 | 34 | if (count > 0) { 35 | self.footerLabel.text = [NSString stringWithFormat:@"有 %ld 张图片", (NSInteger)count]; 36 | } 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Models/ZLPhotoPickerBrowserPhoto.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerPhoto.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-15. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZLPhotoAssets.h" 12 | 13 | @interface ZLPhotoPickerBrowserPhoto : NSObject 14 | 15 | @property (assign,nonatomic) BOOL isVideo; 16 | /** 17 | * 自动适配是不是以下几种数据 18 | */ 19 | @property (nonatomic , strong) id photoObj; 20 | /** 21 | * 传入对应的UIImageView,记录坐标 22 | */ 23 | @property (strong,nonatomic) UIImageView *toView; 24 | /** 25 | * 保存相册模型 26 | */ 27 | @property (nonatomic , strong) ZLPhotoAssets *asset; 28 | /** 29 | * URL地址 30 | */ 31 | @property (nonatomic , strong) NSURL *photoURL; 32 | /** 33 | * 原图 34 | */ 35 | @property (nonatomic , strong) UIImage *photoImage; 36 | @property (strong,nonatomic) UIImage *aspectRatioImage; 37 | /** 38 | * 缩略图 39 | */ 40 | @property (nonatomic , strong) UIImage *thumbImage; 41 | /** 42 | * 传入一个图片对象,可以是URL/UIImage/NSString,返回一个实例 43 | */ 44 | + (instancetype)photoAnyImageObjWith:(id)imageObj; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Models/ZLPhotoPickerDatas.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerDatas.h 3 | // 相册Demo 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ZLPhotoPickerGroup; 12 | 13 | //typedef NS_ENUM(NSUInteger, ZLPhotoPhotosMode) { 14 | // ZLPhotoPhotosMode 15 | //}; 16 | 17 | // 回调 18 | typedef void(^callBackBlock)(id obj); 19 | 20 | @interface ZLPhotoPickerDatas : NSObject 21 | 22 | /** 23 | * 获取所有组 24 | */ 25 | + (instancetype) defaultPicker; 26 | 27 | /** 28 | * 获取所有组对应的图片与视频 29 | */ 30 | - (void) getAllGroupWithPhotosAndVideos : (callBackBlock ) callBack; 31 | 32 | /** 33 | * 获取所有组对应的图片 34 | */ 35 | - (void) getAllGroupWithPhotos : (callBackBlock ) callBack; 36 | 37 | /** 38 | * 获取所有组对应的Videos 39 | */ 40 | - (void) getAllGroupWithVideos : (callBackBlock ) callBack; 41 | 42 | /** 43 | * 传入一个组获取组里面的Asset 44 | */ 45 | - (void) getGroupPhotosWithGroup : (ZLPhotoPickerGroup *) pickerGroup finished : (callBackBlock ) callBack; 46 | 47 | /** 48 | * 传入一个AssetsURL来获取UIImage 49 | */ 50 | - (void) getAssetsPhotoWithURLs:(NSURL *) url callBack:(callBackBlock ) callBack; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Me/Tool/MeHttpTool.m: -------------------------------------------------------------------------------- 1 | // 2 | // MeHttpTool.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "MeHttpTool.h" 10 | #import "UserInfos.h" 11 | #import "LYAccount.h" 12 | #import "AccountTool.h" 13 | 14 | @implementation MeHttpTool 15 | 16 | + (void)userInfoSuccess:(UserInfoSuccess)success{ 17 | NSString *userID = [AccountTool currenAccount].douban_user_id; 18 | NSString *url = [NSString stringWithFormat:@"%@%@",UserInfo_URL,userID]; 19 | [HttpTools getWithURL:url params:nil success:^(id json) { 20 | NSLog(@"resultDict = %@",json); 21 | if ([json isKindOfClass:[NSDictionary class]]) { 22 | NSDictionary *dict = json; 23 | UserInfos *user = [UserInfos sharedUserInfo]; 24 | user = [UserInfos userWithDictionary:dict]; 25 | [user saveData];//保存到本地 26 | if (success) { 27 | success(user); 28 | } 29 | } 30 | } failure:^(NSError *error) { 31 | NSLog(@"resultDicterror = %@",error); 32 | [SVProgressHUDManager showErrorWithStatus:@"网络错误"]; 33 | }]; 34 | } 35 | 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/NSString+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Extension.h 3 | // 4 | // 5 | // Created by apple on 14-5-30. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (Extension) 12 | 13 | /** 14 | * 计算文本占用的宽高 15 | * 16 | * @param font 显示的字体 17 | * @param maxSize 最大的显示范围 18 | * 19 | * @return 占用的宽高 20 | */ 21 | - (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize; 22 | /** 23 | * 计算属性字符文本占用的宽高 24 | * 25 | * @param font 显示的字体 26 | * @param maxSize 最大的显示范围 27 | * @param lineSpacing 行间距 28 | * 29 | * @return 占用的宽高 30 | */ 31 | - (CGSize)attrStrSizeWithFont:(UIFont *)font andmaxSize:(CGSize)maxSize lineSpacing:(CGFloat)lineSpacing; 32 | /** 33 | * 检测一个是否唯恐 34 | * 35 | * @param object 输入 36 | * 37 | * @return 为空YES,不为空NO 38 | */ 39 | + (BOOL)checkConvertNull:(NSString *)object; 40 | 41 | /** 42 | * 匹配所有网址 43 | * 44 | * @return 网址数组 45 | */ 46 | - (NSArray *)arrayOfAllMatches; 47 | 48 | /** 49 | * 含有URL的属性字符串 50 | * 51 | * @param LineSpacing 间距 52 | * 53 | * @return 含有URL的属性字符串 54 | */ 55 | -(NSMutableAttributedString *)linkAttriWithLineSpacing:(CGFloat)LineSpacing urlColor:(UIColor *)urlColor; 56 | 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/SectionHeaderView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SectionHeaderView.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | 10 | #import "SectionHeaderView.h" 11 | 12 | @interface SectionHeaderView () 13 | 14 | @property (nonatomic, strong) UILabel *headerLabel; 15 | 16 | @end 17 | 18 | @implementation SectionHeaderView 19 | 20 | - (id)initWithFrame:(CGRect)frame 21 | { 22 | self = [super initWithFrame:frame]; 23 | if (self) { 24 | 25 | self.frame = CGRectMake(0, 0, SCREEN_WIDTH, 25); 26 | self.backgroundColor = KColor(244, 244, 244); 27 | 28 | [self setupUI]; 29 | } 30 | return self; 31 | } 32 | 33 | -(void)setupUI{ 34 | _headerLabel = [[UILabel alloc] init]; 35 | _headerLabel.frame = CGRectMake(15, 0, 200, 25); 36 | _headerLabel.textColor = [UIColor grayColor]; 37 | _headerLabel.font = [UIFont systemFontOfSize:14.0]; 38 | [self addSubview:_headerLabel]; 39 | } 40 | 41 | 42 | -(void)setText:(NSString *)text{ 43 | _text = text; 44 | _headerLabel.text = text; 45 | } 46 | 47 | +(CGFloat)getSectionHeadHeight{ 48 | return 25; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "NSArray+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand array additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface NSArray (MASShorthandAdditions) 18 | 19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 22 | 23 | @end 24 | 25 | @implementation NSArray (MASShorthandAdditions) 26 | 27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 28 | return [self mas_makeConstraints:block]; 29 | } 30 | 31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 32 | return [self mas_updateConstraints:block]; 33 | } 34 | 35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 36 | return [self mas_remakeConstraints:block]; 37 | } 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Movie/Model/MovieModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // MovieModel.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/5. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 电影信息模型 8 | 9 | #import 10 | @class RatingModel,CastModel,AvatarsModel; 11 | 12 | @interface MovieModel : NSObject 13 | 14 | /** 电影评分 */ 15 | @property (nonatomic ,strong) RatingModel *rating; 16 | /** 评分人数 */ 17 | @property (nonatomic ,strong) NSString *collect_count; 18 | /** 电影类型 */ 19 | @property (nonatomic ,strong) NSMutableArray *genres; 20 | /** 演员 */ 21 | @property (nonatomic ,strong) NSMutableArray *casts; 22 | /** 名字 */ 23 | @property (nonatomic ,strong) NSString *title; 24 | /** 原始名字 */ 25 | @property (nonatomic ,strong) NSString *original_title; 26 | /** 类型 */ 27 | @property (nonatomic ,strong) NSString *subtype; 28 | /** 导演 */ 29 | @property (nonatomic ,strong) NSMutableArray *directors; 30 | /** 年份 */ 31 | @property (nonatomic ,strong) NSString *year; 32 | /** 图片 */ 33 | @property (nonatomic ,strong) AvatarsModel *images; 34 | /** 电影地址 */ 35 | @property (nonatomic ,strong) NSString *alt; 36 | /** 电影ID */ 37 | @property (nonatomic ,strong) NSString *ID; 38 | 39 | - (id)initWithDictionary:(NSDictionary *)dic; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Controller/MainNavgationController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MainNavgationController.m 3 | // AnecdotesDemo 4 | // 5 | // Created by LYoung on 15/10/13. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "MainNavgationController.h" 10 | 11 | @implementation MainNavgationController 12 | 13 | - (void)viewDidLoad 14 | { 15 | [super viewDidLoad]; 16 | 17 | // UIImage *bgImage = nil; 18 | // if (iOS7) { 19 | // bgImage = [AppTools imageWithColor:TheThemeColor]; 20 | // } else { 21 | // bgImage = [UIImage imageNamed:@"navBackgroundImg"]; 22 | // } 23 | // bgImage = [bgImage stretchableImageWithLeftCapWidth:0.5 topCapHeight:0.5]; 24 | // [self.navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault]; 25 | 26 | self.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor blackColor] forKey:NSForegroundColorAttributeName]; 27 | 28 | } 29 | 30 | 31 | #pragma mark 隐藏tabbar 32 | -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 33 | { 34 | 35 | if (self.viewControllers.count > 0) { 36 | viewController.hidesBottomBarWhenPushed = YES; 37 | } 38 | [super pushViewController:viewController animated:YES]; 39 | } 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/DACircularProgress/DALabeledCircularProgressView.m: -------------------------------------------------------------------------------- 1 | // 2 | // DALabeledCircularProgressView.m 3 | // DACircularProgressExample 4 | // 5 | // Created by Josh Sklar on 4/8/14. 6 | // Copyright (c) 2014 Shout Messenger. All rights reserved. 7 | // 8 | 9 | #import "DALabeledCircularProgressView.h" 10 | 11 | @implementation DALabeledCircularProgressView 12 | 13 | - (id)initWithFrame:(CGRect)frame 14 | { 15 | self = [super initWithFrame:frame]; 16 | if (self) { 17 | [self initializeLabel]; 18 | } 19 | return self; 20 | } 21 | 22 | - (id)initWithCoder:(NSCoder *)aDecoder 23 | { 24 | self = [super initWithCoder:aDecoder]; 25 | if (self) { 26 | [self initializeLabel]; 27 | } 28 | return self; 29 | } 30 | 31 | 32 | #pragma mark - Internal methods 33 | 34 | /** 35 | Creates and initializes 36 | -[DALabeledCircularProgressView progressLabel]. 37 | */ 38 | - (void)initializeLabel 39 | { 40 | self.progressLabel = [[UILabel alloc] initWithFrame:self.bounds]; 41 | self.progressLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; 42 | self.progressLabel.textAlignment = NSTextAlignmentCenter; 43 | self.progressLabel.backgroundColor = [UIColor clearColor]; 44 | [self addSubview:self.progressLabel]; 45 | } 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/Tool/RecommendHttpTool.h: -------------------------------------------------------------------------------- 1 | // 2 | // RecommendHttpTool.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 推荐网络请求封装 8 | 9 | #import 10 | @class RecommendModel; 11 | 12 | typedef void (^CityInfoBlock)(NSDictionary *resDict,NSArray *firstArray,NSArray *secondArray); 13 | typedef void (^ActivityBlock)(RecommendModel *activityModel); 14 | 15 | @interface RecommendHttpTool : NSObject 16 | 17 | /** 18 | * 获取活动列表(get请求 19 | * 20 | * @param startNum 请求页数 21 | * @param loc 地区信息 22 | */ 23 | +(void)getRecommendList:(NSInteger)startNum loc:(NSString *)loc type:(NSString *)type arrayBlock:(ArrayBlock)arrayBlock; 24 | 25 | 26 | /** 27 | * 获取中国城市信息 28 | * 29 | * @param cityInfoBlock 从本地获取的城市信息 30 | */ 31 | +(void)getChinaCityInfo:(CityInfoBlock)cityInfoBlock; 32 | 33 | 34 | /** 35 | * 获取国外城市信息 36 | * 37 | * @param cityInfoBlock 从本地获取的城市信息 38 | */ 39 | +(void)getOverseasCityInfo:(CityInfoBlock)cityInfoBlock; 40 | 41 | /** 42 | * 获取热门城市列表 43 | */ 44 | +(void)getHotCitiesInfo:(ArrayBlock)arrayBlock; 45 | 46 | /** 47 | * 获取活动详细信息 48 | */ 49 | +(void)getActivityInfo:(NSString *)activityID activityBlock:(ActivityBlock)activityBlock; 50 | 51 | /** 52 | * <#Description#> 53 | */ 54 | 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/NSString+PinYin4Cocoa.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+PinYin4Cocoa.h 3 | // PinYin4Cocoa 4 | // 5 | // Created by kimziv on 13-9-15. 6 | // Copyright (c) 2013年 kimziv. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (PinYin4Cocoa) 12 | 13 | - (NSInteger)indexOfString:(NSString *)s; 14 | - (NSInteger)indexOfString:(NSString *)s fromIndex:(int)index; 15 | - (NSInteger)indexOf:(int)ch; 16 | - (NSInteger)indexOf:(int)ch fromIndex:(int)index; 17 | + (NSString *)valueOfChar:(unichar)value; 18 | 19 | -(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement; 20 | -(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase; 21 | -(NSString *) stringByReplacingRegexPattern:(NSString *)regex withString:(NSString *) replacement caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine; 22 | -(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex; 23 | -(NSArray *) stringsByExtractingGroupsUsingRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine; 24 | -(BOOL) matchesPatternRegexPattern:(NSString *)regex; 25 | -(BOOL) matchesPatternRegexPattern:(NSString *)regex caseInsensitive:(BOOL) ignoreCase treatAsOneLine:(BOOL) assumeMultiLine; 26 | @end 27 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/SearchViews/YLYSearchBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // YLYSearchBar.m 3 | // VSina 4 | // 5 | // Created by 苑立永 on 14-9-20. 6 | // Copyright (c) 2014年 苑立永. All rights reserved. 7 | // 8 | 9 | #import "YLYSearchBar.h" 10 | //#import "UIImage+Extension.h" 11 | 12 | @implementation YLYSearchBar 13 | /** 14 | * init方法内部会调用这个方法 15 | */ 16 | - (id)initWithFrame:(CGRect)frame 17 | { 18 | self = [super initWithFrame:frame]; 19 | if (self) { 20 | 21 | self.backgroundColor = [UIColor whiteColor]; 22 | // self.background = [UIImage resizedImage:@"searchbar_textfield_background"]; 23 | self.textAlignment = NSTextAlignmentLeft; 24 | self.placeholder = @"输入城市名查询"; 25 | self.clearButtonMode = UITextFieldViewModeWhileEditing; 26 | self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; 27 | 28 | //设置放大镜图片 29 | //设置左边的图片永远显示 30 | self.leftViewMode = UITextFieldViewModeAlways; 31 | UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"searchbar_textfield_search_icon"]]; 32 | imageView.frame = CGRectMake(0, 0, 30, 30); 33 | imageView.contentMode = UIViewContentModeCenter; 34 | self.leftView = imageView; 35 | 36 | self.font = [UIFont systemFontOfSize:15.0f]; 37 | } 38 | return self; 39 | } 40 | 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SVProgressHUD/SVProgressHUDManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVProgressHUDManager.h 3 | // Finance 4 | // 5 | // Created by LYoung on 15/9/2. 6 | // Copyright (c) 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "SVProgressHUD.h" 11 | 12 | @interface SVProgressHUDManager : NSObject 13 | 14 | 15 | /** 单例 */ 16 | + (id)defaultManager; 17 | 18 | /** 19 | * 失败显示HUD 20 | * 21 | * @param status 失败描述 22 | */ 23 | + (void)showErrorWithStatus:(NSString *)status; 24 | /** 25 | * 成功显示HUD 26 | * 27 | * @param status 成功描述 28 | */ 29 | + (void)showSuccessWithStatus:(NSString *)status; 30 | 31 | /** 32 | * 提示显示HUD 33 | * 34 | * @param status 提示描述 35 | */ 36 | + (void)showInfoWithStatus:(NSString *)status; 37 | 38 | /** 39 | * 带提示的菊花显示 40 | * 41 | * @param status 提示 42 | */ 43 | + (void)showWithStatus:(NSString *)status; 44 | 45 | /** 46 | * 带提示的菊花显示(不可点击) 47 | * 48 | * @param status 提示 49 | */ 50 | + (void)showWithStatusClearType:(NSString *)status; 51 | 52 | 53 | /** 54 | * HUD视图出现(没有文字提示的菊花) 55 | */ 56 | + (void)show; 57 | 58 | /** 59 | * HUD视图出现(没有文字提示的菊花)不可点击 60 | */ 61 | + (void)showClearType; 62 | 63 | 64 | /** 65 | * 网络错误提示 66 | */ 67 | +(void)networkError; 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | /** 80 | * HUD视图消失 81 | */ 82 | + (void)dismiss; 83 | 84 | 85 | 86 | 87 | @end 88 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorldsUITests/DoubanWorldsUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // DoubanWorldsUITests.m 3 | // DoubanWorldsUITests 4 | // 5 | // Created by LYoung on 15/12/22. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DoubanWorldsUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation DoubanWorldsUITests 16 | 17 | - (void)setUp { 18 | [super setUp]; 19 | 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | 22 | // In UI tests it is usually best to stop immediately when a failure occurs. 23 | self.continueAfterFailure = NO; 24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 25 | [[[XCUIApplication alloc] init] launch]; 26 | 27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 28 | } 29 | 30 | - (void)tearDown { 31 | // Put teardown code here. This method is called after the invocation of each test method in the class. 32 | [super tearDown]; 33 | } 34 | 35 | - (void)testExample { 36 | // Use recording to get started writing UI tests. 37 | // Use XCTAssert and related functions to verify your tests produce the correct results. 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASViewAttribute.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | 11 | @implementation MASViewAttribute 12 | 13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { 14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; 15 | return self; 16 | } 17 | 18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { 19 | self = [super init]; 20 | if (!self) return nil; 21 | 22 | _view = view; 23 | _item = item; 24 | _layoutAttribute = layoutAttribute; 25 | 26 | return self; 27 | } 28 | 29 | - (BOOL)isSizeAttribute { 30 | return self.layoutAttribute == NSLayoutAttributeWidth 31 | || self.layoutAttribute == NSLayoutAttributeHeight; 32 | } 33 | 34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute { 35 | if ([viewAttribute isKindOfClass:self.class]) { 36 | return self.view == viewAttribute.view 37 | && self.layoutAttribute == viewAttribute.layoutAttribute; 38 | } 39 | return [super isEqual:viewAttribute]; 40 | } 41 | 42 | - (NSUInteger)hash { 43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/NSData+ImageContentType.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Fabrice Aneche on 06/01/14. 3 | // Copyright (c) 2014 Dailymotion. All rights reserved. 4 | // 5 | 6 | #import "NSData+ImageContentType.h" 7 | 8 | 9 | @implementation NSData (ImageContentType) 10 | 11 | + (NSString *)sd_contentTypeForImageData:(NSData *)data { 12 | uint8_t c; 13 | [data getBytes:&c length:1]; 14 | switch (c) { 15 | case 0xFF: 16 | return @"image/jpeg"; 17 | case 0x89: 18 | return @"image/png"; 19 | case 0x47: 20 | return @"image/gif"; 21 | case 0x49: 22 | case 0x4D: 23 | return @"image/tiff"; 24 | case 0x52: 25 | // R as RIFF for WEBP 26 | if ([data length] < 12) { 27 | return nil; 28 | } 29 | 30 | NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding]; 31 | if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) { 32 | return @"image/webp"; 33 | } 34 | 35 | return nil; 36 | } 37 | return nil; 38 | } 39 | 40 | @end 41 | 42 | 43 | @implementation NSData (ImageContentTypeDeprecated) 44 | 45 | + (NSString *)contentTypeForImageData:(NSData *)data { 46 | return [self sd_contentTypeForImageData:data]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerBrowserPhotoScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerBrowserPhotoScrollView.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-14. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "ZLPhotoPickerBrowserPhotoImageView.h" 12 | #import "ZLPhotoPickerBrowserPhotoView.h" 13 | #import "ZLPhotoPickerBrowserPhoto.h" 14 | #import "ZLPhoto.h" 15 | 16 | typedef void(^callBackBlock)(id obj); 17 | @class ZLPhotoPickerBrowserPhotoScrollView; 18 | 19 | @protocol ZLPhotoPickerPhotoScrollViewDelegate 20 | @optional 21 | // 单击调用 22 | - (void) pickerPhotoScrollViewDidSingleClick:(ZLPhotoPickerBrowserPhotoScrollView *)photoScrollView; 23 | @end 24 | 25 | @interface ZLPhotoPickerBrowserPhotoScrollView : UIScrollView 26 | 27 | @property (nonatomic,strong) ZLPhotoPickerBrowserPhoto *photo; 28 | @property (strong,nonatomic) ZLPhotoPickerBrowserPhotoImageView *photoImageView; 29 | @property (nonatomic, weak) id photoScrollViewDelegate; 30 | // 长按图片的操作,可以外面传入 31 | @property (strong,nonatomic) UIActionSheet *sheet; 32 | // 单击销毁的block 33 | @property (copy,nonatomic) callBackBlock callback; 34 | - (void)setMaxMinZoomScalesForCurrentBounds; 35 | @end 36 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SKTagView/SKTagButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Shaokang Zhao on 15/1/12. 3 | // Copyright (c) 2015 Shaokang Zhao. All rights reserved. 4 | // 5 | 6 | #import "SKTagButton.h" 7 | #import "SKTag.h" 8 | 9 | @implementation SKTagButton 10 | 11 | + (instancetype)buttonWithTag:(SKTag *)tag 12 | { 13 | SKTagButton *btn = [super buttonWithType:UIButtonTypeCustom]; 14 | 15 | if (tag.attributedText) { 16 | [btn setAttributedTitle:tag.attributedText forState:UIControlStateNormal]; 17 | } else { 18 | [btn setTitle:tag.text forState:UIControlStateNormal]; 19 | [btn setTitleColor:tag.textColor forState:UIControlStateNormal]; 20 | btn.titleLabel.font = tag.font ?: [UIFont systemFontOfSize:tag.fontSize]; 21 | } 22 | 23 | btn.backgroundColor = tag.bgColor; 24 | btn.contentEdgeInsets = tag.padding; 25 | btn.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; 26 | 27 | if (tag.bgImg) 28 | { 29 | [btn setBackgroundImage:tag.bgImg forState:UIControlStateNormal]; 30 | } 31 | 32 | if (tag.borderColor) 33 | { 34 | btn.layer.borderColor = tag.borderColor.CGColor; 35 | } 36 | 37 | if (tag.borderWidth) 38 | { 39 | btn.layer.borderWidth = tag.borderWidth; 40 | } 41 | 42 | btn.userInteractionEnabled = tag.enable; 43 | 44 | btn.layer.cornerRadius = tag.cornerRadius; 45 | btn.layer.masksToBounds = YES; 46 | 47 | return btn; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * An immutable tuple which stores the view and the related NSLayoutAttribute. 13 | * Describes part of either the left or right hand side of a constraint equation 14 | */ 15 | @interface MASViewAttribute : NSObject 16 | 17 | /** 18 | * The view which the reciever relates to. Can be nil if item is not a view. 19 | */ 20 | @property (nonatomic, weak, readonly) MAS_VIEW *view; 21 | 22 | /** 23 | * The item which the reciever relates to. 24 | */ 25 | @property (nonatomic, weak, readonly) id item; 26 | 27 | /** 28 | * The attribute which the reciever relates to 29 | */ 30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; 31 | 32 | /** 33 | * Convenience initializer. 34 | */ 35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; 36 | 37 | /** 38 | * The designated initializer. 39 | */ 40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; 41 | 42 | /** 43 | * Determine whether the layoutAttribute is a size attribute 44 | * 45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight 46 | */ 47 | - (BOOL)isSizeAttribute; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/OAuth/Model/LYAccount.m: -------------------------------------------------------------------------------- 1 | // 2 | // LYAccount.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "LYAccount.h" 10 | 11 | @implementation LYAccount 12 | /** 13 | * 从文件解析对象的时候调用 14 | */ 15 | - (id)initWithCoder:(NSCoder *)decoder 16 | { 17 | if(self = [super init]) 18 | { 19 | _access_token = [decoder decodeObjectForKey:@"_access_token"]; 20 | _expires_in = [decoder decodeObjectForKey:@"_expires_in"]; 21 | _refresh_token = [decoder decodeObjectForKey:@"_refresh_token"]; 22 | _douban_user_id = [decoder decodeObjectForKey:@"_douban_user_id"]; 23 | } 24 | return self; 25 | } 26 | /** 27 | * 将对象 写入 文件时调用 28 | */ 29 | - (void)encodeWithCoder:(NSCoder *)encoder 30 | { 31 | [encoder encodeObject:_access_token forKey:@"_access_token"]; 32 | [encoder encodeObject:_expires_in forKey:@"_expires_in"]; 33 | [encoder encodeObject:_refresh_token forKey:@"_refresh_token"]; 34 | [encoder encodeObject:_douban_user_id forKey:@"_douban_user_id"]; 35 | 36 | } 37 | 38 | - (id)initWithDict:(NSDictionary *)dic 39 | { 40 | if (self = [super init]) { 41 | self.access_token = dic[@"access_token"]; 42 | self.expires_in = dic[@"expires_in"]; 43 | self.refresh_token = dic[@"refresh_token"]; 44 | self.douban_user_id = dic[@"douban_user_id"]; 45 | } 46 | return self; 47 | } 48 | @end 49 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Me/Model/UserInfos.h: -------------------------------------------------------------------------------- 1 | // 2 | // UserInfos.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import 10 | typedef enum { 11 | LoginType = 0, 12 | LoginOutType 13 | } LoginStatusType; 14 | 15 | 16 | @interface UserInfos : NSObject 17 | 18 | +(UserInfos *)sharedUserInfo;//单例 19 | -(void)saveData;//用户信息保存本地 20 | +(instancetype)userWithDictionary:(NSDictionary *)dictionary; 21 | 22 | /** 登录状态 */ 23 | @property (nonatomic ,strong) NSString *logType; 24 | /** */ 25 | @property (nonatomic ,strong) NSString *alt; 26 | /** 头像小图 */ 27 | @property (nonatomic ,strong) NSString *avatar; 28 | /** 注册时间 */ 29 | @property (nonatomic ,strong) NSString *created; 30 | /** 描述 */ 31 | @property (nonatomic ,strong) NSString *desc; 32 | /** */ 33 | @property (nonatomic ,strong) NSString *is_banned; 34 | /** */ 35 | @property (nonatomic ,strong) NSString *is_suicide; 36 | /** 头像大图 */ 37 | @property (nonatomic ,strong) NSString *large_avatar; 38 | /** 所在城市ID */ 39 | @property (nonatomic ,strong) NSString *loc_id; 40 | /** 所在地全称 */ 41 | @property (nonatomic ,strong) NSString *loc_name; 42 | /** 昵称 */ 43 | @property (nonatomic ,strong) NSString *name; 44 | /** */ 45 | @property (nonatomic ,strong) NSString *signature; 46 | /** 用户类型 */ 47 | @property (nonatomic ,strong) NSString *type; 48 | /** 用户ID */ 49 | @property (nonatomic ,strong) NSString *uid; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/PickViews/YLYTableViewIndexView.h: -------------------------------------------------------------------------------- 1 | // 2 | // YLYTableViewIndexView.h 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/23. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 城市选择器头部视图 8 | 9 | 10 | #import 11 | 12 | @protocol YLYTableViewIndexDelegate; 13 | 14 | @interface YLYTableViewIndexView : UIView 15 | 16 | @property (nonatomic, strong) NSArray *indexes; 17 | @property (nonatomic, weak) id tableViewIndexDelegate; 18 | 19 | @end 20 | 21 | @protocol YLYTableViewIndexDelegate 22 | 23 | /** 24 | * 触摸到索引时触发 25 | * 26 | * @param tableViewIndex 触发didSelectSectionAtIndex对象 27 | * @param index 索引下标 28 | * @param title 索引文字 29 | */ 30 | - (void)tableViewIndex:(YLYTableViewIndexView *)tableViewIndex didSelectSectionAtIndex:(NSInteger)index withTitle:(NSString *)title; 31 | 32 | /** 33 | * 开始触摸索引 34 | * 35 | * @param tableViewIndex 触发tableViewIndexTouchesBegan对象 36 | */ 37 | - (void)tableViewIndexTouchesBegan:(YLYTableViewIndexView *)tableViewIndex; 38 | /** 39 | * 触摸索引结束 40 | * 41 | * @param tableViewIndex 42 | */ 43 | - (void)tableViewIndexTouchesEnd:(YLYTableViewIndexView *)tableViewIndex; 44 | 45 | /** 46 | * TableView中右边右边索引title 47 | * 48 | * @param tableViewIndex 触发tableViewIndexTitle对象 49 | * 50 | * @return 索引title数组 51 | */ 52 | - (NSArray *)tableViewIndexTitle:(YLYTableViewIndexView *)tableViewIndex; 53 | 54 | @end -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/DACircularProgress/DACircularProgressView.h: -------------------------------------------------------------------------------- 1 | // 2 | // DACircularProgressView.h 3 | // DACircularProgress 4 | // 5 | // Created by Daniel Amitay on 2/6/12. 6 | // Copyright (c) 2012 Daniel Amitay. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DACircularProgressView : UIView 12 | 13 | @property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR; 14 | @property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR; 15 | @property(nonatomic, strong) UIColor *innerTintColor UI_APPEARANCE_SELECTOR; 16 | @property(nonatomic) NSInteger roundedCorners UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( 17 | @property(nonatomic) CGFloat thicknessRatio UI_APPEARANCE_SELECTOR; 18 | @property(nonatomic) NSInteger clockwiseProgress UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( 19 | @property(nonatomic) CGFloat progress; 20 | 21 | @property(nonatomic) CGFloat indeterminateDuration UI_APPEARANCE_SELECTOR; 22 | @property(nonatomic) NSInteger indeterminate UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( 23 | 24 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated; 25 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay; 26 | - (void)setProgress:(CGFloat)progress animated:(BOOL)animated initialDelay:(CFTimeInterval)initialDelay withDuration:(CFTimeInterval)duration; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/ViewController+MASAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.m 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "ViewController+MASAdditions.h" 10 | 11 | #ifdef MAS_VIEW_CONTROLLER 12 | 13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions) 14 | 15 | - (MASViewAttribute *)mas_topLayoutGuide { 16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 17 | } 18 | - (MASViewAttribute *)mas_topLayoutGuideTop { 19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 20 | } 21 | - (MASViewAttribute *)mas_topLayoutGuideBottom { 22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 23 | } 24 | 25 | - (MASViewAttribute *)mas_bottomLayoutGuide { 26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 27 | } 28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop { 29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 30 | } 31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom { 32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 33 | } 34 | 35 | 36 | 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | #import "MASConstraint.h" 11 | #import "MASLayoutConstraint.h" 12 | #import "MASUtilities.h" 13 | 14 | /** 15 | * A single constraint. 16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view 17 | */ 18 | @interface MASViewConstraint : MASConstraint 19 | 20 | /** 21 | * First item/view and first attribute of the NSLayoutConstraint 22 | */ 23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; 24 | 25 | /** 26 | * Second item/view and second attribute of the NSLayoutConstraint 27 | */ 28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; 29 | 30 | /** 31 | * initialises the MASViewConstraint with the first part of the equation 32 | * 33 | * @param firstViewAttribute view.mas_left, view.mas_width etc. 34 | * 35 | * @return a new view constraint 36 | */ 37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; 38 | 39 | /** 40 | * Returns all MASViewConstraints installed with this view as a first item. 41 | * 42 | * @param view A view to retrieve constraints for. 43 | * 44 | * @return An array of MASViewConstraints. 45 | */ 46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | 活着 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSRequiresIPhoneOS 26 | 27 | NSAppTransportSecurity 28 | 29 | NSAllowsArbitraryLoads 30 | 31 | 32 | NSLocationAlwaysUsageDescription 33 | 34 | NSLocationWhenInUseUsageDescription 35 | YES 36 | UILaunchStoryboardName 37 | LaunchScreen 38 | UIRequiredDeviceCapabilities 39 | 40 | armv7 41 | 42 | UISupportedInterfaceOrientations 43 | 44 | UIInterfaceOrientationPortrait 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/ZLPhotoPickerCommon.h: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerCommon.h 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-19. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #ifndef ZLAssetsPickerDemo_PickerCommon_h 10 | #define ZLAssetsPickerDemo_PickerCommon_h 11 | 12 | // 点击销毁的block 13 | typedef void(^ZLPickerBrowserViewControllerTapDisMissBlock)(NSInteger); 14 | 15 | // 点击View执行的动画 16 | typedef NS_ENUM(NSUInteger, UIViewAnimationAnimationStatus) { 17 | UIViewAnimationAnimationStatusZoom = 0, // 放大缩小 18 | UIViewAnimationAnimationStatusFade , // 淡入淡出 19 | }; 20 | 21 | // 图片最多显示9张,超过9张取消单击事件 22 | static NSInteger const KPhotoShowMaxCount = 9; 23 | 24 | #define iOS7gt ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0) 25 | 26 | // ScrollView 滑动的间距 27 | static CGFloat const ZLPickerColletionViewPadding = 10; 28 | 29 | // ScrollView拉伸的比例 30 | static CGFloat const ZLPickerScrollViewMaxZoomScale = 3.0; 31 | static CGFloat const ZLPickerScrollViewMinZoomScale = 1.0; 32 | 33 | // 进度条的宽度/高度 34 | static NSInteger const ZLPickerProgressViewW = 50; 35 | static NSInteger const ZLPickerProgressViewH = 50; 36 | 37 | // 分页控制器的高度 38 | static NSInteger const ZLPickerPageCtrlH = 25; 39 | 40 | // NSNotification 41 | static NSString *PICKER_TAKE_DONE = @"PICKER_TAKE_DONE"; 42 | static NSString *PICKER_TAKE_PHOTO = @"PICKER_TAKE_PHOTO"; 43 | 44 | static NSString *PICKER_PowerBrowserPhotoLibirayText = @"您屏蔽了选择相册的权限,开启请去系统设置->隐私->我的App来打开权限"; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLCamera/ZLCameraImageView.m: -------------------------------------------------------------------------------- 1 | // 2 | // BQImageView.m 3 | // BQCommunity 4 | // 5 | // Created by TJQ on 14-8-5. 6 | // Copyright (c) 2014年 beiqing. All rights reserved. 7 | // 8 | 9 | #import "ZLCameraImageView.h" 10 | #import "UIView+ZLExtension.h" 11 | #import "UIImage+ZLPhotoLib.h" 12 | 13 | @interface ZLCameraImageView () 14 | @property (strong, nonatomic) UIImageView *deleBjView; 15 | @end 16 | 17 | @implementation ZLCameraImageView 18 | 19 | 20 | - (UIImageView *)deleBjView{ 21 | if (!_deleBjView) { 22 | _deleBjView = [[UIImageView alloc] init]; 23 | _deleBjView.image = [UIImage ml_imageFromBundleNamed:@"X"]; 24 | _deleBjView.zl_width = 25; 25 | _deleBjView.zl_height = 25; 26 | _deleBjView.hidden = YES; 27 | _deleBjView.zl_x = 50; 28 | _deleBjView.zl_y = 0; 29 | _deleBjView.userInteractionEnabled = YES; 30 | [_deleBjView addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(deleImage:)]]; 31 | [self addSubview:_deleBjView]; 32 | } 33 | return _deleBjView; 34 | } 35 | 36 | - (void)setEdit:(BOOL)edit{ 37 | self.deleBjView.hidden = NO; 38 | } 39 | 40 | - (id)initWithFrame:(CGRect)frame{ 41 | if (self = [super initWithFrame:frame]) { 42 | self.userInteractionEnabled = YES; 43 | } 44 | return self; 45 | } 46 | 47 | #pragma mark 删除图片 48 | - (void) deleImage : ( UITapGestureRecognizer *) tap{ 49 | if ([self.delegatge respondsToSelector:@selector(deleteImageView:)]) { 50 | [self.delegatge deleteImageView:self]; 51 | } 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/PinYinForObjc.m: -------------------------------------------------------------------------------- 1 | // 2 | // PinYinForObjc.m 3 | // Search 4 | // 5 | // Created by LYZ on 14-1-24. 6 | // Copyright (c) 2014年 LYZ. All rights reserved. 7 | // 8 | 9 | #import "PinYinForObjc.h" 10 | 11 | @implementation PinYinForObjc 12 | 13 | + (NSString*)chineseConvertToPinYin:(NSString*)chinese { 14 | NSString *sourceText = chinese; 15 | HanyuPinyinOutputFormat *outputFormat = [[HanyuPinyinOutputFormat alloc] init]; 16 | [outputFormat setToneType:ToneTypeWithoutTone]; 17 | [outputFormat setVCharType:VCharTypeWithV]; 18 | [outputFormat setCaseType:CaseTypeLowercase]; 19 | NSString *outputPinyin = [PinyinHelper toHanyuPinyinStringWithNSString:sourceText withHanyuPinyinOutputFormat:outputFormat withNSString:@""]; 20 | 21 | return outputPinyin; 22 | 23 | 24 | } 25 | 26 | + (NSString*)chineseConvertToPinYinHead:(NSString *)chinese { 27 | HanyuPinyinOutputFormat *outputFormat = [[HanyuPinyinOutputFormat alloc] init]; 28 | [outputFormat setToneType:ToneTypeWithoutTone]; 29 | [outputFormat setVCharType:VCharTypeWithV]; 30 | [outputFormat setCaseType:CaseTypeLowercase]; 31 | NSMutableString *outputPinyin = [[NSMutableString alloc] init]; 32 | for (int i=0;i 10 | // 回调 11 | typedef void(^callBackBlock)(id obj); 12 | @class ZLPhotoPickerViewController; 13 | // 状态组 14 | typedef NS_ENUM(NSInteger , PickerViewShowStatus) { 15 | PickerViewShowStatusGroup = 0, // default groups . 16 | PickerViewShowStatusCameraRoll , 17 | PickerViewShowStatusSavePhotos , 18 | PickerViewShowStatusPhotoStream , 19 | PickerViewShowStatusVideo, 20 | }; 21 | 22 | @protocol ZLPhotoPickerViewControllerDelegate 23 | /** 24 | * 返回所有的Asstes对象 25 | */ 26 | - (void)pickerViewControllerDoneAsstes:(NSArray *)assets; 27 | /** 28 | * 点击拍照 29 | */ 30 | @optional 31 | - (void)pickerCollectionViewSelectCamera:(ZLPhotoPickerViewController *)pickerVc withImage:(UIImage *)image; 32 | @end 33 | 34 | @interface ZLPhotoPickerViewController : UIViewController 35 | 36 | // @optional 37 | @property (nonatomic , weak) iddelegate; 38 | // 决定你是否需要push到内容控制器, 默认显示组 39 | @property (nonatomic , assign) PickerViewShowStatus status; 40 | // 可以用代理来返回值或者用block来返回值 41 | @property (nonatomic , copy) callBackBlock callBack; 42 | // 每次选择图片的最小数, 默认与最大数是9 43 | @property (nonatomic , assign) NSInteger maxCount; 44 | // 记录选中的值 45 | @property (strong,nonatomic) NSArray *selectPickers; 46 | // 置顶展示图片 47 | @property (assign,nonatomic) BOOL topShowPhotoPicker; 48 | 49 | // @function 50 | // 展示控制器 51 | - (void)showPickerVc:(UIViewController *)vc; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/PinYin/PinyinHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // 4 | // Created by kimziv on 13-9-14. 5 | // 6 | 7 | #ifndef _PinyinHelper_H_ 8 | #define _PinyinHelper_H_ 9 | 10 | @class HanyuPinyinOutputFormat; 11 | 12 | @interface PinyinHelper : NSObject { 13 | } 14 | 15 | + (NSArray *)toHanyuPinyinStringArrayWithChar:(unichar)ch; 16 | + (NSArray *)toHanyuPinyinStringArrayWithChar:(unichar)ch 17 | withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat; 18 | + (NSArray *)getFormattedHanyuPinyinStringArrayWithChar:(unichar)ch 19 | withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat; 20 | + (NSArray *)getUnformattedHanyuPinyinStringArrayWithChar:(unichar)ch; 21 | + (NSArray *)toTongyongPinyinStringArrayWithChar:(unichar)ch; 22 | + (NSArray *)toWadeGilesPinyinStringArrayWithChar:(unichar)ch; 23 | + (NSArray *)toMPS2PinyinStringArrayWithChar:(unichar)ch; 24 | + (NSArray *)toYalePinyinStringArrayWithChar:(unichar)ch; 25 | + (NSArray *)convertToTargetPinyinStringArrayWithChar:(unichar)ch 26 | withPinyinRomanizationType:(NSString *)targetPinyinSystem; 27 | + (NSArray *)toGwoyeuRomatzyhStringArrayWithChar:(unichar)ch; 28 | + (NSArray *)convertToGwoyeuRomatzyhStringArrayWithChar:(unichar)ch; 29 | + (NSString *)toHanyuPinyinStringWithNSString:(NSString *)str 30 | withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat 31 | withNSString:(NSString *)seperater; 32 | + (NSString *)getFirstHanyuPinyinStringWithChar:(unichar)ch 33 | withHanyuPinyinOutputFormat:(HanyuPinyinOutputFormat *)outputFormat; 34 | - (id)init; 35 | @end 36 | 37 | #endif // _PinyinHelper_H_ 38 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoPicker/Views/ZLPhotoPickerCollectionView.h: -------------------------------------------------------------------------------- 1 | // 2 | // PickerCollectionView.h 3 | // 相机 4 | // 5 | // Created by 张磊 on 14-11-11. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ZLPhotoAssets.h" 11 | 12 | // 展示状态 13 | typedef NS_ENUM(NSUInteger, ZLPickerCollectionViewShowOrderStatus){ 14 | ZLPickerCollectionViewShowOrderStatusTimeDesc = 0, // 升序 15 | ZLPickerCollectionViewShowOrderStatusTimeAsc // 降序 16 | }; 17 | 18 | @class ZLPhotoPickerCollectionView; 19 | @protocol ZLPhotoPickerCollectionViewDelegate 20 | // 选择相片就会调用 21 | - (void) pickerCollectionViewDidSelected:(ZLPhotoPickerCollectionView *) pickerCollectionView deleteAsset:(ZLPhotoAssets *)deleteAssets; 22 | 23 | // 点击拍照就会调用 24 | - (void)pickerCollectionViewDidCameraSelect:(ZLPhotoPickerCollectionView *) pickerCollectionView; 25 | @end 26 | 27 | @interface ZLPhotoPickerCollectionView : UICollectionView 28 | 29 | // scrollView滚动的升序降序 30 | @property (nonatomic , assign) ZLPickerCollectionViewShowOrderStatus status; 31 | // 保存所有的数据 32 | @property (nonatomic , strong) NSArray *dataArray; 33 | // 保存选中的图片 34 | @property (nonatomic , strong) NSMutableArray *selectAssets; 35 | // 最后保存的一次图片 36 | @property (strong,nonatomic) NSMutableArray *lastDataArray; 37 | // delegate 38 | @property (nonatomic , weak) id collectionViewDelegate; 39 | // 限制最大数 40 | @property (nonatomic , assign) NSInteger maxCount; 41 | // 置顶展示图片 42 | @property (assign,nonatomic) BOOL topShowPhotoPicker; 43 | // 选中的索引值,为了防止重用 44 | @property (nonatomic , strong) NSMutableArray *selectsIndexPath; 45 | // 记录选中的值 46 | @property (assign,nonatomic) BOOL isRecoderSelectPicker; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/SDWebImage/SDWebImageCompat.m: -------------------------------------------------------------------------------- 1 | // 2 | // SDWebImageCompat.m 3 | // SDWebImage 4 | // 5 | // Created by Olivier Poitrey on 11/12/12. 6 | // Copyright (c) 2012 Dailymotion. All rights reserved. 7 | // 8 | 9 | #import "SDWebImageCompat.h" 10 | 11 | #if !__has_feature(objc_arc) 12 | #error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag 13 | #endif 14 | 15 | inline UIImage *SDScaledImageForKey(NSString *key, UIImage *image) { 16 | if (!image) { 17 | return nil; 18 | } 19 | 20 | if ([image.images count] > 0) { 21 | NSMutableArray *scaledImages = [NSMutableArray array]; 22 | 23 | for (UIImage *tempImage in image.images) { 24 | [scaledImages addObject:SDScaledImageForKey(key, tempImage)]; 25 | } 26 | 27 | return [UIImage animatedImageWithImages:scaledImages duration:image.duration]; 28 | } 29 | else { 30 | if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 31 | CGFloat scale = 1; 32 | if (key.length >= 8) { 33 | NSRange range = [key rangeOfString:@"@2x."]; 34 | if (range.location != NSNotFound) { 35 | scale = 2.0; 36 | } 37 | 38 | range = [key rangeOfString:@"@3x."]; 39 | if (range.location != NSNotFound) { 40 | scale = 3.0; 41 | } 42 | } 43 | 44 | UIImage *scaledImage = [[UIImage alloc] initWithCGImage:image.CGImage scale:scale orientation:image.imageOrientation]; 45 | image = scaledImage; 46 | } 47 | return image; 48 | } 49 | } 50 | 51 | NSString *const SDWebImageErrorDomain = @"SDWebImageErrorDomain"; 52 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+ZLExtension.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Extension.m 3 | // 4 | // Created by 张磊 on 14-11-14. 5 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 6 | // 7 | 8 | #import "UIView+ZLExtension.h" 9 | 10 | @implementation UIView (Extension) 11 | 12 | - (void)setZl_x:(CGFloat)x{ 13 | CGRect frame = self.frame; 14 | frame.origin.x = x; 15 | self.frame = frame; 16 | } 17 | - (CGFloat)zl_x{ 18 | return self.frame.origin.x; 19 | } 20 | - (void)setZl_y:(CGFloat)y{ 21 | CGRect frame = self.frame; 22 | frame.origin.y = y; 23 | self.frame = frame; 24 | } 25 | - (CGFloat)zl_y{ 26 | return self.frame.origin.y; 27 | } 28 | - (void)setZl_centerX:(CGFloat)centerX{ 29 | CGPoint center = self.center; 30 | center.x = centerX; 31 | self.center = center; 32 | } 33 | - (CGFloat)zl_centerX{ 34 | return self.center.x; 35 | } 36 | 37 | - (void)setZl_centerY:(CGFloat)centerY{ 38 | CGPoint center = self.center; 39 | center.y = centerY; 40 | self.center = center; 41 | } 42 | - (CGFloat)zl_centerY{ 43 | return self.center.y; 44 | } 45 | 46 | - (void)setZl_width:(CGFloat)width{ 47 | CGRect frame = self.frame; 48 | frame.size.width = width; 49 | self.frame = frame; 50 | } 51 | - (CGFloat)zl_width{ 52 | return self.frame.size.width; 53 | } 54 | 55 | - (void)setZl_height:(CGFloat)height{ 56 | CGRect frame = self.frame; 57 | frame.size.height = height; 58 | self.frame = frame; 59 | } 60 | - (CGFloat)zl_height{ 61 | return self.frame.size.height; 62 | } 63 | 64 | - (void)setZl_size:(CGSize)size{ 65 | CGRect frame = self.frame; 66 | frame.size = size; 67 | self.frame = frame; 68 | } 69 | - (CGSize)zl_size{ 70 | return self.frame.size; 71 | } 72 | 73 | @end 74 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Lib/ZLPhotoBrowser/Views/ZLPhotoPickerBrowserPhotoView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ZLPhotoPickerBrowserPhotoView.m 3 | // ZLAssetsPickerDemo 4 | // 5 | // Created by 张磊 on 14-11-14. 6 | // Copyright (c) 2014年 com.zixue101.www. All rights reserved. 7 | // 8 | 9 | #import "ZLPhotoPickerBrowserPhotoView.h" 10 | 11 | @implementation ZLPhotoPickerBrowserPhotoView 12 | 13 | - (id)init { 14 | if ((self = [super init])) { 15 | self.userInteractionEnabled = YES; 16 | [self addGesture]; 17 | } 18 | return self; 19 | } 20 | 21 | - (id)initWithFrame:(CGRect)frame { 22 | if ((self = [super initWithFrame:frame])) { 23 | self.userInteractionEnabled = YES; 24 | [self addGesture]; 25 | } 26 | return self; 27 | } 28 | 29 | 30 | #pragma mark -监听手势 31 | - (void) addGesture{ 32 | 33 | // 双击放大 34 | UITapGestureRecognizer *scaleBigTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; 35 | scaleBigTap.numberOfTapsRequired = 2; 36 | scaleBigTap.numberOfTouchesRequired = 1; 37 | [self addGestureRecognizer:scaleBigTap]; 38 | 39 | // 单击缩小 40 | UITapGestureRecognizer *disMissTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 41 | disMissTap.numberOfTapsRequired = 1; 42 | disMissTap.numberOfTouchesRequired = 1; 43 | [self addGestureRecognizer:disMissTap]; 44 | // 只能有一个手势存在 45 | [disMissTap requireGestureRecognizerToFail:scaleBigTap]; 46 | } 47 | 48 | - (void)handleSingleTap:(UITouch *)touch { 49 | if ([_tapDelegate respondsToSelector:@selector(view:singleTapDetected:)]) 50 | [_tapDelegate view:self singleTapDetected:touch]; 51 | } 52 | 53 | - (void)handleDoubleTap:(UITouch *)touch { 54 | if ([_tapDelegate respondsToSelector:@selector(view:doubleTapDetected:)]) 55 | [_tapDelegate view:self doubleTapDetected:touch]; 56 | } 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Recommend/View/DeatailViews/DetailHeadView.m: -------------------------------------------------------------------------------- 1 | // 2 | // DetailHeadView.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/30. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "DetailHeadView.h" 10 | #import "RecommendModel.h" 11 | #import "ZLPhotoPickerBrowserViewController.h" 12 | 13 | @interface DetailHeadView () 14 | 15 | { 16 | UIImageView *_headImageView; 17 | } 18 | 19 | @end 20 | 21 | @implementation DetailHeadView 22 | 23 | -(instancetype)initWithFrame:(CGRect)frame{ 24 | self = [super initWithFrame:frame]; 25 | if (self) { 26 | self.backgroundColor = [UIColor clearColor]; 27 | 28 | _headImageView = [[UIImageView alloc] init]; 29 | _headImageView.userInteractionEnabled = YES; 30 | [self addSubview:_headImageView]; 31 | 32 | [_headImageView mas_makeConstraints:^(MASConstraintMaker *make) { 33 | make.size.mas_equalTo(CGSizeMake(160, 220)); 34 | make.center.equalTo(self); 35 | }]; 36 | 37 | 38 | UITapGestureRecognizer *tapG = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showHeadPortrait)]; 39 | [_headImageView addGestureRecognizer:tapG]; 40 | 41 | 42 | } 43 | return self; 44 | } 45 | 46 | 47 | -(void)setActivityModel:(RecommendModel *)activityModel{ 48 | _activityModel = activityModel; 49 | 50 | [_headImageView sd_setImageWithURL:[NSURL URLWithString:activityModel.image_hlarge] placeholderImage:[UIImage imageNamed:@"detail_defultImage.png"]]; 51 | } 52 | 53 | 54 | #pragma mark 传入imageView放大 55 | - (void)showHeadPortrait{ 56 | ZLPhotoPickerBrowserViewController *browserVc = [[ZLPhotoPickerBrowserViewController alloc] init]; 57 | [browserVc showHeadPortrait:_headImageView originUrl:_activityModel.image_hlarge]; 58 | } 59 | 60 | 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/OAuth/Tool/AccountTool.m: -------------------------------------------------------------------------------- 1 | // 2 | // AccountTool.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 16/1/4. 6 | // Copyright © 2016年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "AccountTool.h" 10 | #import "LYAccount.h" 11 | 12 | #define YLYAccountPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:@"account.data"] 13 | 14 | 15 | @implementation AccountTool 16 | 17 | /** 18 | * 全局变量至允许YLYAccountTool.m直接访问 19 | */ 20 | static LYAccount *_currenAccount; 21 | 22 | +(void)saveAccount:(LYAccount *)account 23 | { 24 | [NSKeyedArchiver archiveRootObject:account toFile:YLYAccountPath]; 25 | } 26 | +(LYAccount *)currenAccount 27 | { 28 | if (_currenAccount==nil) {//减少IO操作 29 | _currenAccount = [NSKeyedUnarchiver unarchiveObjectWithFile:YLYAccountPath]; 30 | } 31 | return _currenAccount; 32 | } 33 | 34 | +(void)getAccessTokenWithcode:(NSString *)code success:(AccessTokenSuccess)success filure:(HttpFailure)failure 35 | { 36 | //1.封装请求参数 37 | NSMutableDictionary *params = [NSMutableDictionary dictionary]; 38 | 39 | params[@"client_id"] = APIKey; 40 | params[@"client_secret"] = APISecret; 41 | params[@"grant_type"] = @"authorization_code"; 42 | params[@"code"] = code; 43 | params[@"redirect_uri"] = Redirect_uri; 44 | //2.发送请求 45 | [HttpTools postWithURL:Access_TokenUrl params:params success:^(id jsonDic){ 46 | 47 | NSLog(@"access_Token成功!返回= %@",jsonDic); 48 | 49 | //2.1存储access_Token 50 | LYAccount *account = [[LYAccount alloc] initWithDict:jsonDic]; 51 | 52 | //2.2存储账号模型对象 53 | [AccountTool saveAccount:account]; 54 | 55 | //2.3通知外界获取accessToken成功 56 | if (success) { 57 | success(); 58 | } 59 | 60 | } failure:failure]; 61 | 62 | } 63 | 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Main/Controller/BaseViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // BaseViewController.m 3 | // DoubanWorlds 4 | // 5 | // Created by LYoung on 15/12/28. 6 | // Copyright © 2015年 LYoung. All rights reserved. 7 | // 8 | 9 | #import "BaseViewController.h" 10 | #import "UIBarButtonItem+Extension.h" 11 | 12 | @interface BaseViewController () 13 | 14 | @end 15 | 16 | @implementation BaseViewController 17 | 18 | - (void)viewDidLoad 19 | { 20 | [super viewDidLoad]; 21 | 22 | //不设置此处会导致View上移 23 | if(iOS7) { 24 | self.edgesForExtendedLayout = UIRectEdgeNone; 25 | self.extendedLayoutIncludesOpaqueBars = NO; 26 | self.modalPresentationCapturesStatusBarAppearance = NO; 27 | } 28 | [self creatLeftBtn]; 29 | } 30 | -(void)creatLeftBtn{ 31 | self.navigationController.interactivePopGestureRecognizer.delegate = self; 32 | 33 | UIBarButtonItem *buttonItem = [UIBarButtonItem itemWithImage:@"nav_arrow" higlightedImage:@"nav_arrow" target:self action:@selector(superArrowButtonClick)]; 34 | 35 | UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 36 | negativeSpacer.width = -20; 37 | self.navigationItem.leftBarButtonItems = @[negativeSpacer, buttonItem]; 38 | 39 | 40 | // self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(superArrowButtonClick) normalImage:@"nav_arrow" highlightedImage:@"nav_arrow"]; 41 | } 42 | 43 | - (void)superArrowButtonClick{ 44 | 45 | if ([self.navigationController respondsToSelector:@selector(popViewControllerAnimated:)]){ 46 | [self.navigationController popViewControllerAnimated:YES]; 47 | } 48 | if([self respondsToSelector:@selector(dismissModalViewControllerAnimated:)]){ 49 | [self dismissViewControllerAnimated:YES completion:nil]; 50 | } 51 | } 52 | 53 | 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /DoubanWorlds/DoubanWorlds/Classes/Other/category/UIView+Extension/UIView+i7Rotate360.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+i7Rotate360.m 3 | // include7 AG 4 | // 5 | // Created by Jonas Schnelli on 01.12.10. 6 | // Copyright 2010 include7 AG. All rights reserved. 7 | // 8 | 9 | #import "UIView+i7Rotate360.h" 10 | #import 11 | 12 | @implementation UIView (i7Rotate360) 13 | 14 | - (void)rotate360WithDuration:(CGFloat)aDuration repeatCount:(CGFloat)aRepeatCount timingMode:(enum i7Rotate360TimingMode)aMode { 15 | CAKeyframeAnimation *theAnimation = [CAKeyframeAnimation animation]; 16 | theAnimation.values = [NSArray arrayWithObjects: 17 | [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0, 0,1,0)], 18 | [NSValue valueWithCATransform3D:CATransform3DMakeRotation(3.13, 0,1,0)], 19 | [NSValue valueWithCATransform3D:CATransform3DMakeRotation(3.13, 0,1,0)], 20 | [NSValue valueWithCATransform3D:CATransform3DMakeRotation(6.26, 0,1,0)], 21 | nil]; 22 | theAnimation.cumulative = YES; 23 | theAnimation.duration = aDuration; 24 | theAnimation.repeatCount = aRepeatCount; 25 | theAnimation.removedOnCompletion = YES; 26 | 27 | if(aMode == i7Rotate360TimingModeEaseInEaseOut) 28 | { 29 | theAnimation.timingFunctions = 30 | [NSArray arrayWithObjects:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn], 31 | 32 | [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut], 33 | nil 34 | ]; 35 | } 36 | [self.layer addAnimation:theAnimation forKey:@"transform"]; 37 | } 38 | 39 | - (void)rotate360WithDuration:(CGFloat)aDuration timingMode:(enum i7Rotate360TimingMode)aMode { 40 | [self rotate360WithDuration:aDuration repeatCount:1 timingMode:aMode]; 41 | } 42 | 43 | - (void)rotate360WithDuration:(CGFloat)aDuration { 44 | [self rotate360WithDuration:aDuration repeatCount:1 timingMode:i7Rotate360TimingModeEaseInEaseOut]; 45 | } 46 | 47 | @end 48 | --------------------------------------------------------------------------------