├── 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 | 
5 | ## 图二
6 | 
7 | ## 图三
8 | 
9 | ## 图四
10 | 
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 |
--------------------------------------------------------------------------------