├── Podfile ├── Podfile.lock ├── Pods ├── AFNetworking │ ├── AFNetworking │ │ ├── AFHTTPSessionManager.h │ │ ├── AFHTTPSessionManager.m │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworkReachabilityManager.m │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFSecurityPolicy.m │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLRequestSerialization.m │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLResponseSerialization.m │ │ ├── AFURLSessionManager.h │ │ └── AFURLSessionManager.m │ ├── LICENSE │ ├── README.md │ └── UIKit+AFNetworking │ │ ├── AFAutoPurgingImageCache.h │ │ ├── AFAutoPurgingImageCache.m │ │ ├── AFImageDownloader.h │ │ ├── AFImageDownloader.m │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkActivityIndicatorManager.m │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIActivityIndicatorView+AFNetworking.m │ │ ├── UIButton+AFNetworking.h │ │ ├── UIButton+AFNetworking.m │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIImageView+AFNetworking.m │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.m │ │ ├── UIRefreshControl+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.m │ │ ├── UIWebView+AFNetworking.h │ │ └── UIWebView+AFNetworking.m ├── FMDB │ ├── LICENSE.txt │ ├── README.markdown │ └── src │ │ └── fmdb │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabase.m │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabaseAdditions.m │ │ ├── FMDatabasePool.h │ │ ├── FMDatabasePool.m │ │ ├── FMDatabaseQueue.h │ │ ├── FMDatabaseQueue.m │ │ ├── FMResultSet.h │ │ └── FMResultSet.m ├── Headers │ ├── Private │ │ ├── AFNetworking │ │ │ ├── AFAutoPurgingImageCache.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFImageDownloader.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIImage+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ └── UIWebView+AFNetworking.h │ │ ├── FMDB │ │ │ ├── FMDB.h │ │ │ ├── FMDatabase.h │ │ │ ├── FMDatabaseAdditions.h │ │ │ ├── FMDatabasePool.h │ │ │ ├── FMDatabaseQueue.h │ │ │ └── FMResultSet.h │ │ ├── SCLAlertView-Objective-C │ │ │ ├── SCLAlertView.h │ │ │ ├── SCLAlertViewResponder.h │ │ │ ├── SCLAlertViewStyleKit.h │ │ │ ├── SCLButton.h │ │ │ ├── SCLMacros.h │ │ │ ├── SCLTextView.h │ │ │ ├── SCLTimerDisplay.h │ │ │ └── UIImage+ImageEffects.h │ │ └── YYModel │ │ │ ├── NSObject+YYModel.h │ │ │ ├── YYClassInfo.h │ │ │ └── YYModel.h │ └── Public │ │ ├── AFNetworking │ │ ├── AFAutoPurgingImageCache.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFImageDownloader.h │ │ ├── AFNetworkActivityIndicatorManager.h │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFURLRequestSerialization.h │ │ ├── AFURLResponseSerialization.h │ │ ├── AFURLSessionManager.h │ │ ├── UIActivityIndicatorView+AFNetworking.h │ │ ├── UIButton+AFNetworking.h │ │ ├── UIImage+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── UIKit+AFNetworking.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ └── UIWebView+AFNetworking.h │ │ ├── FMDB │ │ ├── FMDB.h │ │ ├── FMDatabase.h │ │ ├── FMDatabaseAdditions.h │ │ ├── FMDatabasePool.h │ │ ├── FMDatabaseQueue.h │ │ └── FMResultSet.h │ │ ├── SCLAlertView-Objective-C │ │ ├── SCLAlertView.h │ │ ├── SCLAlertViewResponder.h │ │ ├── SCLAlertViewStyleKit.h │ │ ├── SCLButton.h │ │ ├── SCLMacros.h │ │ ├── SCLTextView.h │ │ ├── SCLTimerDisplay.h │ │ └── UIImage+ImageEffects.h │ │ └── YYModel │ │ ├── NSObject+YYModel.h │ │ ├── YYClassInfo.h │ │ └── YYModel.h ├── Manifest.lock ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── chenjiannan.xcuserdatad │ │ └── xcschemes │ │ ├── AFNetworking.xcscheme │ │ ├── FMDB.xcscheme │ │ ├── Pods.xcscheme │ │ ├── SCLAlertView-Objective-C.xcscheme │ │ ├── YYModel.xcscheme │ │ └── xcschememanagement.plist ├── SCLAlertView-Objective-C │ ├── LICENSE │ ├── README.md │ └── SCLAlertView │ │ ├── SCLAlertView.h │ │ ├── SCLAlertView.m │ │ ├── SCLAlertViewResponder.h │ │ ├── SCLAlertViewResponder.m │ │ ├── SCLAlertViewStyleKit.h │ │ ├── SCLAlertViewStyleKit.m │ │ ├── SCLButton.h │ │ ├── SCLButton.m │ │ ├── SCLMacros.h │ │ ├── SCLTextView.h │ │ ├── SCLTextView.m │ │ ├── SCLTimerDisplay.h │ │ ├── SCLTimerDisplay.m │ │ ├── UIImage+ImageEffects.h │ │ └── UIImage+ImageEffects.m ├── Target Support Files │ ├── AFNetworking │ │ ├── AFNetworking-dummy.m │ │ ├── AFNetworking-prefix.pch │ │ └── AFNetworking.xcconfig │ ├── FMDB │ │ ├── FMDB-dummy.m │ │ ├── FMDB-prefix.pch │ │ └── FMDB.xcconfig │ ├── Pods │ │ ├── Pods-acknowledgements.markdown │ │ ├── Pods-acknowledgements.plist │ │ ├── Pods-dummy.m │ │ ├── Pods-frameworks.sh │ │ ├── Pods-resources.sh │ │ ├── Pods.debug.xcconfig │ │ └── Pods.release.xcconfig │ ├── SCLAlertView-Objective-C │ │ ├── SCLAlertView-Objective-C-dummy.m │ │ ├── SCLAlertView-Objective-C-prefix.pch │ │ └── SCLAlertView-Objective-C.xcconfig │ └── YYModel │ │ ├── YYModel-dummy.m │ │ ├── YYModel-prefix.pch │ │ └── YYModel.xcconfig └── YYModel │ ├── LICENSE │ ├── README.md │ └── YYModel │ ├── NSObject+YYModel.h │ ├── NSObject+YYModel.m │ ├── YYClassInfo.h │ ├── YYClassInfo.m │ └── YYModel.h ├── README.md ├── SimpleWeather.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── chenjiannan.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── chenjiannan.xcuserdatad │ └── xcschemes │ ├── SimpleWeather.xcscheme │ └── xcschememanagement.plist ├── SimpleWeather.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── SimpleWeather.xcscmblueprint └── xcuserdata │ └── chenjiannan.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── SimpleWeather ├── App │ ├── AppDelegate.h │ └── AppDelegate.m ├── Controller │ ├── AddCityViewController.h │ ├── AddCityViewController.m │ ├── MenuViewController.h │ ├── MenuViewController.m │ ├── SettingViewController.h │ ├── SettingViewController.m │ ├── Transitioning Animation │ │ ├── ModalDismissAnimation.h │ │ ├── ModalDismissAnimation.m │ │ ├── ModalPresentAnimation.h │ │ ├── ModalPresentAnimation.m │ │ ├── PanInteractiveTransition.h │ │ └── PanInteractiveTransition.m │ ├── ViewController.h │ └── ViewController.m ├── General │ ├── Category │ │ ├── NJMarco.h │ │ ├── NSDate+Extenion.h │ │ ├── NSDate+Extenion.m │ │ ├── NSString+Extension.h │ │ ├── NSString+Extension.m │ │ ├── UIButton+Extension.h │ │ ├── UIButton+Extension.m │ │ ├── UIColor+Extension.h │ │ ├── UIColor+Extension.m │ │ ├── UIImage+Extension.h │ │ ├── UIImage+Extension.m │ │ ├── UIView+Extension.h │ │ └── UIView+Extension.m │ ├── NJGlobalConstData.h │ ├── NJGlobalConstData.m │ └── Views │ │ ├── CitySearchBar │ │ ├── CitySearchBar.h │ │ ├── CitySearchBar.m │ │ ├── CitySearchBarController.h │ │ └── CitySearchBarController.m │ │ ├── MenuView.h │ │ └── MenuView.m ├── Helper │ ├── SettingDataHelper.h │ ├── SettingDataHelper.m │ ├── WeatherDataHelper.h │ ├── WeatherDataHelper.m │ ├── WeatherLocationHelper.h │ └── WeatherLocationHelper.m ├── Model │ ├── SettingDataModel.h │ ├── SettingDataModel.m │ ├── WeatherDataModel.h │ └── WeatherDataModel.m ├── Other │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── SimpleWeather.pch │ └── main.m ├── Resource │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-29@2x.png │ │ │ ├── Icon-29@3x.png │ │ │ ├── Icon-40@2x.png │ │ │ ├── Icon-40@3x.png │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ └── Icon-76@2x.png │ │ ├── Contents.json │ │ ├── LaunchImage.launchimage │ │ │ └── Contents.json │ │ ├── bigpole.imageset │ │ │ ├── Contents.json │ │ │ ├── bigpole@2x.png │ │ │ └── bigpole@3x.png │ │ ├── blade_s.imageset │ │ │ ├── Contents.json │ │ │ ├── blade_s@2x.png │ │ │ └── blade_s@3x.png │ │ ├── clear_day.imageset │ │ │ ├── Contents.json │ │ │ ├── clear_day@2x.png │ │ │ └── clear_day@3x.png │ │ ├── clear_night.imageset │ │ │ ├── Contents.json │ │ │ ├── clear_night@2x.png │ │ │ └── clear_night@3x.png │ │ ├── cloudy_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── cloudy_day_night@2x.png │ │ │ └── cloudy_day_night@3x.png │ │ ├── dust_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── dust_day_night@2x.png │ │ │ └── dust_day_night@3x.png │ │ ├── fair_day.imageset │ │ │ ├── Contents.json │ │ │ ├── fair_day@2x.png │ │ │ └── fair_day@3x.png │ │ ├── fair_night.imageset │ │ │ ├── Contents.json │ │ │ ├── fair_night@2x.png │ │ │ └── fair_night@3x.png │ │ ├── flash_flood_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── flash_flood_day_night@2x.png │ │ │ └── flash_flood_day_night@3x.png │ │ ├── flurries_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── flurries_day_night@2x.png │ │ │ └── flurries_day_night@3x.png │ │ ├── fog_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── fog_day_night@2x.png │ │ │ └── fog_day_night@3x.png │ │ ├── fog_moon_night.imageset │ │ │ ├── Contents.json │ │ │ ├── fog_moon_night@2x.png │ │ │ └── fog_moon_night@3x.png │ │ ├── fog_sun_day.imageset │ │ │ ├── Contents.json │ │ │ ├── fog_sun_day@2x.png │ │ │ └── fog_sun_day@3x.png │ │ ├── forecast_card_icon_warning_wind.imageset │ │ │ ├── Contents.json │ │ │ ├── forecast_card_icon_warning_wind@2x.png │ │ │ └── forecast_card_icon_warning_wind@3x.png │ │ ├── freezing_rain_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── freezing_rain_day_night@2x.png │ │ │ └── freezing_rain_day_night@3x.png │ │ ├── hail_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── hail_day_night@2x.png │ │ │ └── hail_day_night@3x.png │ │ ├── haze_day_night.imageset │ │ │ ├── Contents.json │ │ │ └── haze_day_night@3x.png │ │ ├── heavy_snow_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── heavy_snow_day_night@2x.png │ │ │ └── heavy_snow_day_night@3x.png │ │ ├── humlity.imageset │ │ │ ├── Contents.json │ │ │ ├── humlity@2x.png │ │ │ └── humlity@3x.png │ │ ├── hurricane_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── hurricane_day_night@2x.png │ │ │ └── hurricane_day_night@3x.png │ │ ├── left_drawer_add_city_normal.imageset │ │ │ ├── Contents.json │ │ │ └── left_drawer_add_city_normal.png │ │ ├── light_rain_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── light_rain_day_night@2x.png │ │ │ └── light_rain_day_night@3x.png │ │ ├── mostly_cloudy_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── mostly_cloudy_day_night@2x.png │ │ │ └── mostly_cloudy_day_night@3x.png │ │ ├── na.imageset │ │ │ ├── Contents.json │ │ │ ├── na@2x.png │ │ │ └── na@3x.png │ │ ├── partly_cloudy_day.imageset │ │ │ ├── Contents.json │ │ │ ├── partly_cloudy_day@2x.png │ │ │ └── partly_cloudy_day@3x.png │ │ ├── partly_cloudy_night.imageset │ │ │ ├── Contents.json │ │ │ ├── partly_cloudy_night@2x.png │ │ │ └── partly_cloudy_night@3x.png │ │ ├── rain_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── rain_day_night@2x.png │ │ │ └── rain_day_night@3x.png │ │ ├── raindrop.imageset │ │ │ ├── Contents.json │ │ │ ├── raindrop.png │ │ │ ├── raindrop@2x.png │ │ │ └── raindrop@3x.png │ │ ├── scattered_showers_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── scattered_showers_day_night@2x.png │ │ │ └── scattered_showers_day_night@3x.png │ │ ├── scattered_thundershowers_day.imageset │ │ │ ├── Contents.json │ │ │ ├── scattered_thundershowers_day@2x.png │ │ │ └── scattered_thundershowers_day@3x.png │ │ ├── scattered_thundershowers_night.imageset │ │ │ ├── Contents.json │ │ │ ├── scattered_thundershowers_night@2x.png │ │ │ └── scattered_thundershowers_night@3x.png │ │ ├── sleet_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── sleet_day_night@2x.png │ │ │ └── sleet_day_night@3x.png │ │ ├── sleet_mix_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── sleet_mix_day_night@2x.png │ │ │ └── sleet_mix_day_night@3x.png │ │ ├── smallpole.imageset │ │ │ ├── Contents.json │ │ │ ├── smallpole@2x.png │ │ │ └── smallpole~ipad.png │ │ ├── smoky_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── smoky_day_night@2x.png │ │ │ └── smoky_day_night@3x.png │ │ ├── snow_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── snow_day_night@2x.png │ │ │ └── snow_day_night@3x.png │ │ ├── snow_rain_mix_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── snow_rain_mix_day_night@2x.png │ │ │ └── snow_rain_mix_day_night@3x.png │ │ ├── thundershowers_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── thundershowers_day_night@2x.png │ │ │ └── thundershowers_day_night@3x.png │ │ ├── thunderstorm_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── thunderstorm_day_night@2x.png │ │ │ └── thunderstorm_day_night@3x.png │ │ ├── tmp.imageset │ │ │ ├── Contents.json │ │ │ ├── tmp@2x.png │ │ │ └── tmp@3x.png │ │ ├── tornado_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── tornado_day_night@2x.png │ │ │ └── tornado_day_night@3x.png │ │ ├── weather_sunrise.imageset │ │ │ ├── Contents.json │ │ │ ├── weather_sunrise.png │ │ │ └── weather_sunrise@2x.png │ │ ├── weather_sunset.imageset │ │ │ ├── Contents.json │ │ │ ├── weather_sunset.png │ │ │ └── weather_sunset@2x.png │ │ ├── wg_humidity.imageset │ │ │ ├── Contents.json │ │ │ └── wg_humidity.png │ │ └── windy_day_night.imageset │ │ │ ├── Contents.json │ │ │ ├── windy_day_night@2x.png │ │ │ └── windy_day_night@3x.png │ └── citysDB.sqlite ├── SimpleWeather.entitlements ├── Ulti │ ├── DataBaseUlti │ │ ├── CityDatabaseManager.h │ │ ├── CityDatabaseManager.m │ │ ├── CityFMDatabaseQueue.h │ │ ├── CityFMDatabaseQueue.m │ │ ├── Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata │ │ │ ├── AppData │ │ │ │ └── Library │ │ │ │ │ ├── Caches │ │ │ │ │ ├── Jimmy-Chen.SimpleWeather │ │ │ │ │ │ ├── Cache.db │ │ │ │ │ │ ├── Cache.db-shm │ │ │ │ │ │ └── Cache.db-wal │ │ │ │ │ └── Snapshots │ │ │ │ │ │ └── Jimmy-Chen.SimpleWeather │ │ │ │ │ │ ├── 39F49021-BC7E-4CF0-A113-4DC690CC2F0B@2x.png │ │ │ │ │ │ ├── 8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png │ │ │ │ │ │ ├── A0147B47-2990-492C-8008-101F3C11E25F@2x.png │ │ │ │ │ │ └── downscaled │ │ │ │ │ │ └── 947A3376-E055-4626-858B-7E1032D19601@2x.png │ │ │ │ │ └── Preferences │ │ │ │ │ └── Jimmy-Chen.SimpleWeather.plist │ │ │ └── AppDataInfo.plist │ │ ├── Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata │ │ │ ├── AppData │ │ │ │ ├── Documents │ │ │ │ │ └── weatherDB │ │ │ │ └── Library │ │ │ │ │ ├── Caches │ │ │ │ │ ├── Jimmy-Chen.SimpleWeather │ │ │ │ │ │ ├── Cache.db │ │ │ │ │ │ ├── Cache.db-shm │ │ │ │ │ │ └── Cache.db-wal │ │ │ │ │ └── Snapshots │ │ │ │ │ │ └── Jimmy-Chen.SimpleWeather │ │ │ │ │ │ ├── 576917AE-B474-476F-BA2D-05E33CBAA91E@2x.png │ │ │ │ │ │ ├── 6800F285-A69F-4FA5-985D-AB9BE5DA8C20@2x.png │ │ │ │ │ │ ├── 8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png │ │ │ │ │ │ └── downscaled │ │ │ │ │ │ └── 947A3376-E055-4626-858B-7E1032D19601@2x.png │ │ │ │ │ └── Preferences │ │ │ │ │ └── Jimmy-Chen.SimpleWeather.plist │ │ │ └── AppDataInfo.plist │ │ ├── WeatherDatabaseManager.h │ │ ├── WeatherDatabaseManager.m │ │ ├── WeatherFMDatabaseQueue.h │ │ └── WeatherFMDatabaseQueue.m │ └── NetUlti │ │ ├── HttpManager.h │ │ └── HttpManager.m ├── Vender │ ├── DGElasticPullToRefresh │ │ ├── DGElasticPullToRefreshConstants.swift │ │ ├── DGElasticPullToRefreshExtensions.swift │ │ ├── DGElasticPullToRefreshLoadingView.swift │ │ ├── DGElasticPullToRefreshLoadingViewCircle.swift │ │ └── DGElasticPullToRefreshView.swift │ ├── SWRevealViewController │ │ ├── SWRevealViewController.h │ │ └── SWRevealViewController.m │ └── SwipeView │ │ ├── SwipeView.h │ │ └── SwipeView.m └── View │ ├── SettingCell.h │ ├── SettingCell.m │ ├── WeatherBasicInfoView.h │ ├── WeatherBasicInfoView.m │ ├── WeatherBounceView.h │ ├── WeatherBounceView.m │ ├── WeatherCityCell.h │ ├── WeatherCityCell.m │ ├── WeatherDailyForcastView.h │ ├── WeatherDailyForcastView.m │ ├── WeatherForcastCell.h │ ├── WeatherForcastCell.m │ ├── WeatherLineView.h │ ├── WeatherLineView.m │ ├── WeatherView.h │ └── WeatherView.m ├── SimpleWeatherTests ├── Info.plist └── SimpleWeatherTests.m ├── SimpleWeatherUITests ├── Info.plist └── SimpleWeatherUITests.m ├── icondesign └── SimpleWeatherIcon.sketch └── screenshoot └── screenshoot.gif /Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | platform :ios, '8.0' 3 | 4 | pod 'AFNetworking', '~> 3.0' 5 | 6 | pod 'YYModel' 7 | 8 | pod 'FMDB' 9 | 10 | pod 'SCLAlertView-Objective-C' -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (3.0.4): 3 | - AFNetworking/NSURLSession (= 3.0.4) 4 | - AFNetworking/Reachability (= 3.0.4) 5 | - AFNetworking/Security (= 3.0.4) 6 | - AFNetworking/Serialization (= 3.0.4) 7 | - AFNetworking/UIKit (= 3.0.4) 8 | - AFNetworking/NSURLSession (3.0.4): 9 | - AFNetworking/Reachability 10 | - AFNetworking/Security 11 | - AFNetworking/Serialization 12 | - AFNetworking/Reachability (3.0.4) 13 | - AFNetworking/Security (3.0.4) 14 | - AFNetworking/Serialization (3.0.4) 15 | - AFNetworking/UIKit (3.0.4): 16 | - AFNetworking/NSURLSession 17 | - FMDB (2.6): 18 | - FMDB/standard (= 2.6) 19 | - FMDB/standard (2.6) 20 | - SCLAlertView-Objective-C (0.8.0) 21 | - YYModel (0.9.10) 22 | 23 | DEPENDENCIES: 24 | - AFNetworking (~> 3.0) 25 | - FMDB 26 | - SCLAlertView-Objective-C 27 | - YYModel 28 | 29 | SPEC CHECKSUMS: 30 | AFNetworking: a0075feb321559dc78d9d85b55d11caa19eabb93 31 | FMDB: c1968bab3ab0aed38f66cb778ae1e7fa9a652b6e 32 | SCLAlertView-Objective-C: bf3590d5c8cf0fcf49f63f82fb3e4a78b545f7bb 33 | YYModel: fea50373bd53cd04c9a90e580c0ac561c5d1009e 34 | 35 | COCOAPODS: 0.39.0 36 | -------------------------------------------------------------------------------- /Pods/AFNetworking/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | // AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import 25 | #import 26 | 27 | #ifndef _AFNETWORKING_ 28 | #define _AFNETWORKING_ 29 | 30 | #import "AFURLRequestSerialization.h" 31 | #import "AFURLResponseSerialization.h" 32 | #import "AFSecurityPolicy.h" 33 | 34 | #if !TARGET_OS_WATCH 35 | #import "AFNetworkReachabilityManager.h" 36 | #endif 37 | 38 | #import "AFURLSessionManager.h" 39 | #import "AFHTTPSessionManager.h" 40 | 41 | #endif /* _AFNETWORKING_ */ 42 | -------------------------------------------------------------------------------- /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIActivityIndicatorView+AFNetworking.h 2 | // Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | 22 | #import 23 | 24 | #import 25 | 26 | #if TARGET_OS_IOS || TARGET_OS_TV 27 | 28 | #import 29 | 30 | /** 31 | This category adds methods to the UIKit framework's `UIActivityIndicatorView` class. The methods in this category provide support for automatically starting and stopping animation depending on the loading state of a session task. 32 | */ 33 | @interface UIActivityIndicatorView (AFNetworking) 34 | 35 | ///---------------------------------- 36 | /// @name Animating for Session Tasks 37 | ///---------------------------------- 38 | 39 | /** 40 | Binds the animating state to the state of the specified task. 41 | 42 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 43 | */ 44 | - (void)setAnimatingWithStateOfTask:(nullable NSURLSessionTask *)task; 45 | 46 | @end 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+AFNetworking.h 3 | // 4 | // 5 | // Created by Paulo Ferreira on 08/07/15. 6 | // 7 | // Permission is hereby granted, free of charge, to any person obtaining a copy 8 | // of this software and associated documentation files (the "Software"), to deal 9 | // in the Software without restriction, including without limitation the rights 10 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | // copies of the Software, and to permit persons to whom the Software is 12 | // furnished to do so, subject to the following conditions: 13 | // 14 | // The above copyright notice and this permission notice shall be included in 15 | // all copies or substantial portions of the Software. 16 | // 17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | // THE SOFTWARE. 24 | 25 | #if TARGET_OS_IOS || TARGET_OS_TV 26 | 27 | #import 28 | 29 | @interface UIImage (AFNetworking) 30 | 31 | + (UIImage*) safeImageWithData:(NSData*)data; 32 | 33 | @end 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIKit+AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #if TARGET_OS_IOS || TARGET_OS_TV 24 | #import 25 | 26 | #ifndef _UIKIT_AFNETWORKING_ 27 | #define _UIKIT_AFNETWORKING_ 28 | 29 | #if TARGET_OS_IOS 30 | #import "AFAutoPurgingImageCache.h" 31 | #import "AFImageDownloader.h" 32 | #import "AFNetworkActivityIndicatorManager.h" 33 | #import "UIRefreshControl+AFNetworking.h" 34 | #import "UIWebView+AFNetworking.h" 35 | #endif 36 | 37 | #import "UIActivityIndicatorView+AFNetworking.h" 38 | #import "UIButton+AFNetworking.h" 39 | #import "UIImageView+AFNetworking.h" 40 | #import "UIProgressView+AFNetworking.h" 41 | #endif /* _UIKIT_AFNETWORKING_ */ 42 | #endif 43 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIProgressView+AFNetworking.h 2 | // Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | 22 | #import 23 | 24 | #import 25 | 26 | #if TARGET_OS_IOS || TARGET_OS_TV 27 | 28 | #import 29 | 30 | NS_ASSUME_NONNULL_BEGIN 31 | 32 | 33 | /** 34 | This category adds methods to the UIKit framework's `UIProgressView` class. The methods in this category provide support for binding the progress to the upload and download progress of a session task. 35 | */ 36 | @interface UIProgressView (AFNetworking) 37 | 38 | ///------------------------------------ 39 | /// @name Setting Session Task Progress 40 | ///------------------------------------ 41 | 42 | /** 43 | Binds the progress to the upload progress of the specified session task. 44 | 45 | @param task The session task. 46 | @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. 47 | */ 48 | - (void)setProgressWithUploadProgressOfTask:(NSURLSessionUploadTask *)task 49 | animated:(BOOL)animated; 50 | 51 | /** 52 | Binds the progress to the download progress of the specified session task. 53 | 54 | @param task The session task. 55 | @param animated `YES` if the change should be animated, `NO` if the change should happen immediately. 56 | */ 57 | - (void)setProgressWithDownloadProgressOfTask:(NSURLSessionDownloadTask *)task 58 | animated:(BOOL)animated; 59 | 60 | @end 61 | 62 | NS_ASSUME_NONNULL_END 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIRefreshControl+AFNetworking.m 2 | // 3 | // Copyright (c) 2014 AFNetworking (http://afnetworking.com) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #import 26 | 27 | #if TARGET_OS_IOS 28 | 29 | #import 30 | 31 | NS_ASSUME_NONNULL_BEGIN 32 | 33 | /** 34 | This category adds methods to the UIKit framework's `UIRefreshControl` class. The methods in this category provide support for automatically beginning and ending refreshing depending on the loading state of a session task. 35 | */ 36 | @interface UIRefreshControl (AFNetworking) 37 | 38 | ///----------------------------------- 39 | /// @name Refreshing for Session Tasks 40 | ///----------------------------------- 41 | 42 | /** 43 | Binds the refreshing state to the state of the specified task. 44 | 45 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 46 | */ 47 | - (void)setRefreshingWithStateOfTask:(NSURLSessionTask *)task; 48 | 49 | @end 50 | 51 | NS_ASSUME_NONNULL_END 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /Pods/FMDB/LICENSE.txt: -------------------------------------------------------------------------------- 1 | If you are using FMDB in your project, I'd love to hear about it. Let Gus know 2 | by sending an email to gus@flyingmeat.com. 3 | 4 | And if you happen to come across either Gus Mueller or Rob Ryan in a bar, you 5 | might consider purchasing a drink of their choosing if FMDB has been useful to 6 | you. 7 | 8 | Finally, and shortly, this is the MIT License. 9 | 10 | Copyright (c) 2008-2014 Flying Meat Inc. 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining a copy 13 | of this software and associated documentation files (the "Software"), to deal 14 | in the Software without restriction, including without limitation the rights 15 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 16 | copies of the Software, and to permit persons to whom the Software is 17 | furnished to do so, subject to the following conditions: 18 | 19 | The above copyright notice and this permission notice shall be included in 20 | all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 27 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 28 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/FMDB/src/fmdb/FMDB.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | FOUNDATION_EXPORT double FMDBVersionNumber; 4 | FOUNDATION_EXPORT const unsigned char FMDBVersionString[]; 5 | 6 | #import "FMDatabase.h" 7 | #import "FMResultSet.h" 8 | #import "FMDatabaseAdditions.h" 9 | #import "FMDatabaseQueue.h" 10 | #import "FMDatabasePool.h" 11 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFAutoPurgingImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Private/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLAlertView.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLAlertViewResponder.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewResponder.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLAlertViewStyleKit.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewStyleKit.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLButton.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLButton.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLMacros.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLMacros.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLTextView.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/SCLTimerDisplay.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLTimerDisplay.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SCLAlertView-Objective-C/UIImage+ImageEffects.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/UIImage+ImageEffects.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYModel/NSObject+YYModel.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/NSObject+YYModel.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYModel/YYClassInfo.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/YYClassInfo.h -------------------------------------------------------------------------------- /Pods/Headers/Private/YYModel/YYModel.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/YYModel.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFAutoPurgingImageCache.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFAutoPurgingImageCache.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFImageDownloader.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFImageDownloader.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImage+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImage+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDB.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDB.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabase.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabasePool.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabasePool.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMDatabaseQueue.h -------------------------------------------------------------------------------- /Pods/Headers/Public/FMDB/FMResultSet.h: -------------------------------------------------------------------------------- 1 | ../../../FMDB/src/fmdb/FMResultSet.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLAlertView.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLAlertViewResponder.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewResponder.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLAlertViewStyleKit.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewStyleKit.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLButton.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLButton.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLMacros.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLMacros.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLTextView.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/SCLTimerDisplay.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/SCLTimerDisplay.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SCLAlertView-Objective-C/UIImage+ImageEffects.h: -------------------------------------------------------------------------------- 1 | ../../../SCLAlertView-Objective-C/SCLAlertView/UIImage+ImageEffects.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYModel/NSObject+YYModel.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/NSObject+YYModel.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYModel/YYClassInfo.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/YYClassInfo.h -------------------------------------------------------------------------------- /Pods/Headers/Public/YYModel/YYModel.h: -------------------------------------------------------------------------------- 1 | ../../../YYModel/YYModel/YYModel.h -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (3.0.4): 3 | - AFNetworking/NSURLSession (= 3.0.4) 4 | - AFNetworking/Reachability (= 3.0.4) 5 | - AFNetworking/Security (= 3.0.4) 6 | - AFNetworking/Serialization (= 3.0.4) 7 | - AFNetworking/UIKit (= 3.0.4) 8 | - AFNetworking/NSURLSession (3.0.4): 9 | - AFNetworking/Reachability 10 | - AFNetworking/Security 11 | - AFNetworking/Serialization 12 | - AFNetworking/Reachability (3.0.4) 13 | - AFNetworking/Security (3.0.4) 14 | - AFNetworking/Serialization (3.0.4) 15 | - AFNetworking/UIKit (3.0.4): 16 | - AFNetworking/NSURLSession 17 | - FMDB (2.6): 18 | - FMDB/standard (= 2.6) 19 | - FMDB/standard (2.6) 20 | - SCLAlertView-Objective-C (0.8.0) 21 | - YYModel (0.9.10) 22 | 23 | DEPENDENCIES: 24 | - AFNetworking (~> 3.0) 25 | - FMDB 26 | - SCLAlertView-Objective-C 27 | - YYModel 28 | 29 | SPEC CHECKSUMS: 30 | AFNetworking: a0075feb321559dc78d9d85b55d11caa19eabb93 31 | FMDB: c1968bab3ab0aed38f66cb778ae1e7fa9a652b6e 32 | SCLAlertView-Objective-C: bf3590d5c8cf0fcf49f63f82fb3e4a78b545f7bb 33 | YYModel: fea50373bd53cd04c9a90e580c0ac561c5d1009e 34 | 35 | COCOAPODS: 0.39.0 36 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/AFNetworking.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/FMDB.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/Pods.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/SCLAlertView-Objective-C.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/YYModel.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AFNetworking.xcscheme 8 | 9 | isShown 10 | 11 | 12 | FMDB.xcscheme 13 | 14 | isShown 15 | 16 | 17 | Pods.xcscheme 18 | 19 | isShown 20 | 21 | 22 | SCLAlertView-Objective-C.xcscheme 23 | 24 | isShown 25 | 26 | 27 | YYModel.xcscheme 28 | 29 | isShown 30 | 31 | 32 | 33 | SuppressBuildableAutocreation 34 | 35 | 107D8DA407A491AE7CD84AA310A14927 36 | 37 | primary 38 | 39 | 40 | 6E0F69702513A377C3546CA796B03521 41 | 42 | primary 43 | 44 | 45 | 928353533005A4198EBDA5B700D37B64 46 | 47 | primary 48 | 49 | 50 | 9F12FB4A63E20F601CFB2E64A65B57C1 51 | 52 | primary 53 | 54 | 55 | C4915DD08B608AF21A5C6C9BC5BE5849 56 | 57 | primary 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2014 SCLAlertView-Objective-C by Diogo Autilio 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewResponder.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLAlertViewResponder.h 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 9/26/14. 6 | // Copyright (c) 2014 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #if defined(__has_feature) && __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | #import "SCLAlertView.h" 15 | 16 | @interface SCLAlertViewResponder : NSObject 17 | 18 | /** TODO 19 | * 20 | * TODO 21 | */ 22 | - (instancetype)init:(SCLAlertView *)alertview; 23 | 24 | /** TODO 25 | * 26 | * TODO 27 | */ 28 | - (void)close; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewResponder.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCLAlertViewResponder.m 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 9/26/14. 6 | // Copyright (c) 2014 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #import "SCLAlertViewResponder.h" 10 | 11 | @interface SCLAlertViewResponder () 12 | 13 | @property SCLAlertView *alertview; 14 | 15 | @end 16 | 17 | @implementation SCLAlertViewResponder 18 | 19 | // 20 | //// Allow alerts to be closed/renamed in a chainable manner 21 | //// Example: SCLAlertView().showSuccess(self, title: "Test", subTitle: "Value").close() 22 | 23 | // Initialisation and Title/Subtitle/Close functions 24 | - (instancetype)init:(SCLAlertView *)alertview 25 | { 26 | self.alertview = alertview; 27 | return self; 28 | } 29 | 30 | - (void)setTitletitle:(NSString *)title 31 | { 32 | self.alertview.labelTitle.text = title; 33 | } 34 | 35 | - (void)setSubTitle:(NSString *)subTitle 36 | { 37 | self.alertview.viewText.text = subTitle; 38 | } 39 | 40 | - (void)close 41 | { 42 | [self.alertview hideView]; 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLAlertViewStyleKit.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLAlertViewStyleKit.h 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 9/26/14. 6 | // Copyright (c) 2014 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #if defined(__has_feature) && __has_feature(modules) 10 | @import Foundation; 11 | @import UIKit; 12 | #else 13 | #import 14 | #import 15 | #endif 16 | #import "SCLButton.h" 17 | 18 | @interface SCLAlertViewStyleKit : NSObject 19 | 20 | // Images 21 | /** TODO 22 | * 23 | * TODO 24 | */ 25 | + (UIImage*)imageOfCheckmark; 26 | 27 | /** TODO 28 | * 29 | * TODO 30 | */ 31 | + (UIImage*)imageOfCross; 32 | 33 | /** TODO 34 | * 35 | * TODO 36 | */ 37 | + (UIImage*)imageOfNotice; 38 | 39 | /** TODO 40 | * 41 | * TODO 42 | */ 43 | + (UIImage*)imageOfWarning; 44 | 45 | /** TODO 46 | * 47 | * TODO 48 | */ 49 | + (UIImage*)imageOfInfo; 50 | 51 | /** TODO 52 | * 53 | * TODO 54 | */ 55 | + (UIImage*)imageOfEdit; 56 | 57 | /** TODO 58 | * 59 | * TODO 60 | */ 61 | + (UIImage*)imageOfQuestion; 62 | 63 | /** TODO 64 | * 65 | * TODO 66 | */ 67 | + (void)drawCheckmark; 68 | 69 | /** TODO 70 | * 71 | * TODO 72 | */ 73 | + (void)drawCross; 74 | 75 | /** TODO 76 | * 77 | * TODO 78 | */ 79 | + (void)drawNotice; 80 | 81 | /** TODO 82 | * 83 | * TODO 84 | */ 85 | + (void)drawWarning; 86 | 87 | /** TODO 88 | * 89 | * TODO 90 | */ 91 | + (void)drawInfo; 92 | 93 | /** TODO 94 | * 95 | * TODO 96 | */ 97 | + (void)drawEdit; 98 | 99 | /** TODO 100 | * 101 | * TODO 102 | */ 103 | + (void)drawQuestion; 104 | 105 | @end 106 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLMacros.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLMacros.h 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 10/03/15. 6 | // Copyright (c) 2015 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #ifndef SCL_MACROS_H 10 | #define SCL_MACROS_H 11 | 12 | #define UIColorFromHEX(rgbValue) [UIColor \ 13 | colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ 14 | green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ 15 | blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 16 | 17 | #define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame) 18 | #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending) 19 | #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 20 | #define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) 21 | #define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending) 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLTextView.h 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 9/18/15. 6 | // Copyright © 2015 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #if defined(__has_feature) && __has_feature(modules) 10 | @import UIKit; 11 | #else 12 | #import 13 | #endif 14 | 15 | @interface SCLTextView : UITextField 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLTextView.m: -------------------------------------------------------------------------------- 1 | // 2 | // SCLTextView.m 3 | // SCLAlertView 4 | // 5 | // Created by Diogo Autilio on 9/18/15. 6 | // Copyright © 2015 AnyKey Entertainment. All rights reserved. 7 | // 8 | 9 | #import "SCLTextView.h" 10 | 11 | #define MIN_HEIGHT 30.0f 12 | 13 | @implementation SCLTextView 14 | 15 | - (instancetype)init 16 | { 17 | self = [super init]; 18 | if (self) 19 | { 20 | [self setup]; 21 | } 22 | return self; 23 | } 24 | 25 | - (instancetype)initWithCoder:(NSCoder *)aDecoder 26 | { 27 | self = [super initWithCoder:aDecoder]; 28 | if(self) 29 | { 30 | [self setup]; 31 | } 32 | return self; 33 | } 34 | 35 | - (instancetype)initWithFrame:(CGRect)frame 36 | { 37 | self = [super initWithFrame:frame]; 38 | if (self) 39 | { 40 | [self setup]; 41 | } 42 | return self; 43 | } 44 | 45 | - (void)setup 46 | { 47 | self.frame = CGRectMake(0.0f, 0.0f, 0.0f, MIN_HEIGHT); 48 | self.returnKeyType = UIReturnKeyDone; 49 | self.borderStyle = UITextBorderStyleRoundedRect; 50 | self.autocapitalizationType = UITextAutocapitalizationTypeWords; 51 | self.clearButtonMode = UITextFieldViewModeWhileEditing; 52 | self.layer.masksToBounds = YES; 53 | self.layer.borderWidth = 1.0f; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /Pods/SCLAlertView-Objective-C/SCLAlertView/SCLTimerDisplay.h: -------------------------------------------------------------------------------- 1 | // 2 | // SCLTimerDisplay.h 3 | // SCLAlertView 4 | // 5 | // Created by Taylor Ryan on 8/18/15. 6 | // Copyright (c) 2015 AnyKey Entertainment. All rights reserved. 7 | // 8 | // Taken from https://stackoverflow.com/questions/11783439/uibutton-with-timer 9 | 10 | #import 11 | #import "SCLButton.h" 12 | 13 | @interface SCLTimerDisplay : UIView{ 14 | CGFloat currentAngle; 15 | CGFloat currentTime; 16 | CGFloat timerLimit; 17 | CGFloat radius; 18 | CGFloat lineWidth; 19 | NSTimer *timer; 20 | SCLActionBlock completedBlock; 21 | } 22 | 23 | @property CGFloat currentAngle; 24 | @property NSInteger buttonIndex; 25 | @property (nonatomic) UIColor *color; 26 | @property (nonatomic) BOOL reverse; 27 | 28 | - (instancetype)initWithOrigin:(CGPoint)origin radius:(CGFloat)r; 29 | - (instancetype)initWithOrigin:(CGPoint)origin radius:(CGFloat)r lineWidth:(CGFloat)width; 30 | - (void)updateFrame:(CGSize)size; 31 | - (void)cancelTimer; 32 | - (void)stopTimer; 33 | - (void)startTimerWithTimeLimit:(int)tl completed:(SCLActionBlock)completed; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #ifndef TARGET_OS_IOS 6 | #define TARGET_OS_IOS TARGET_OS_IPHONE 7 | #endif 8 | 9 | #ifndef TARGET_OS_WATCH 10 | #define TARGET_OS_WATCH 0 11 | #endif 12 | 13 | #ifndef TARGET_OS_TV 14 | #define TARGET_OS_TV 0 15 | #endif 16 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_FMDB : NSObject 3 | @end 4 | @implementation PodsDummy_FMDB 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/FMDB/FMDB.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FMDB" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | OTHER_LDFLAGS = -l"sqlite3" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods : NSObject 3 | @end 4 | @implementation PodsDummy_Pods 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/FMDB" -isystem "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" -isystem "${PODS_ROOT}/Headers/Public/YYModel" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"FMDB" -l"SCLAlertView-Objective-C" -l"YYModel" -l"sqlite3" -framework "CoreFoundation" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods/Pods.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/FMDB" -isystem "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" -isystem "${PODS_ROOT}/Headers/Public/YYModel" 4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"FMDB" -l"SCLAlertView-Objective-C" -l"YYModel" -l"sqlite3" -framework "CoreFoundation" -framework "CoreGraphics" -framework "Foundation" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/SCLAlertView-Objective-C/SCLAlertView-Objective-C-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SCLAlertView_Objective_C : NSObject 3 | @end 4 | @implementation PodsDummy_SCLAlertView_Objective_C 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SCLAlertView-Objective-C/SCLAlertView-Objective-C-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SCLAlertView-Objective-C/SCLAlertView-Objective-C.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | PODS_ROOT = ${SRCROOT} 4 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/YYModel/YYModel-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYModel : NSObject 3 | @end 4 | @implementation PodsDummy_YYModel 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYModel/YYModel-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/YYModel/YYModel.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YYModel" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/FMDB" "${PODS_ROOT}/Headers/Public/SCLAlertView-Objective-C" "${PODS_ROOT}/Headers/Public/YYModel" 3 | OTHER_LDFLAGS = -framework "CoreFoundation" -framework "Foundation" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/YYModel/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Pods/YYModel/YYModel/YYModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYModel.h 3 | // YYModel 4 | // 5 | // Created by ibireme on 15/5/10. 6 | // Copyright (c) 2015 ibireme. 7 | // 8 | // This source code is licensed under the MIT-style license found in the 9 | // LICENSE file in the root directory of this source tree. 10 | // 11 | 12 | #import 13 | 14 | #if __has_include() 15 | FOUNDATION_EXPORT double YYModelVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char YYModelVersionString[]; 17 | #import 18 | #import 19 | #else 20 | #import "NSObject+YYModel.h" 21 | #import "YYClassInfo.h" 22 | #endif 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SimpleWeather 2 | ## 开源一个简单的带动画的天气App,AppStore[地址](https://itunes.apple.com/us/app/zui-jian-tian-qi/id1075823384?l=zh&ls=1&mt=8) 3 | 4 | ![image](https://github.com/cjnwan/SimpleWeather/blob/master/screenshoot/screenshoot.gif) 5 | -------------------------------------------------------------------------------- /SimpleWeather.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SimpleWeather.xcodeproj/project.xcworkspace/xcuserdata/chenjiannan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather.xcodeproj/project.xcworkspace/xcuserdata/chenjiannan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SimpleWeather.xcodeproj/xcuserdata/chenjiannan.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | SimpleWeather.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | A5F0AFBB1C0C4CF00048957C 16 | 17 | primary 18 | 19 | 20 | A5F0AFD41C0C4CF00048957C 21 | 22 | primary 23 | 24 | 25 | A5F0AFDF1C0C4CF00048957C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /SimpleWeather.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /SimpleWeather.xcworkspace/xcshareddata/SimpleWeather.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "DEA978484ADFCBDDA342830250A410B15B179860", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "AD0AE16936DA6A06E9E89740BFA444D38DA6FE08" : 0, 8 | "DEA978484ADFCBDDA342830250A410B15B179860" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "333560B7-ABFF-41DA-BAD9-6C9C3231B890", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "AD0AE16936DA6A06E9E89740BFA444D38DA6FE08" : "", 13 | "DEA978484ADFCBDDA342830250A410B15B179860" : "SimpleWeather\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "SimpleWeather", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "SimpleWeather.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "gitlab.com:cjnwan\/SimpleWeather.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "AD0AE16936DA6A06E9E89740BFA444D38DA6FE08" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "http:\/\/git.mtsports.cn\/cjn\/SimpleWeather.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "DEA978484ADFCBDDA342830250A410B15B179860" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /SimpleWeather.xcworkspace/xcuserdata/chenjiannan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather.xcworkspace/xcuserdata/chenjiannan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /SimpleWeather.xcworkspace/xcuserdata/chenjiannan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /SimpleWeather/App/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 11/30/15. 6 | // Copyright © 2015 Jimmy Chen. 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 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/AddCityViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // AddCityViewController.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol AddCityDelegate 12 | 13 | - (void)didSelectCity:(NSString *)city; 14 | 15 | @end 16 | 17 | @interface AddCityViewController : UIViewController 18 | 19 | @property(nonatomic, weak)iddelegate; 20 | 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/MenuViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MenuViewController.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class MenuViewController; 12 | @protocol WeatherOperationDeleaget 13 | 14 | - (void)viewConroller:(MenuViewController *)viewController weatherAddOperation:(NSString *)cityName; 15 | 16 | - (void)viewConroller:(MenuViewController *)viewController weatherRemoveOperation:(NSInteger)index; 17 | 18 | - (void)viewConroller:(MenuViewController *)viewController weatherSelectOperation:(NSInteger)index; 19 | @end 20 | 21 | @interface MenuViewController : UIViewController 22 | @property(nonatomic, weak)iddelegate; 23 | @end 24 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/SettingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingViewController.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SettingViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/ModalDismissAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ModalDIsmissAnimation.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/10/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ModalDismissAnimation : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/ModalDismissAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // ModalDIsmissAnimation.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/10/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "ModalDismissAnimation.h" 10 | 11 | @implementation ModalDismissAnimation 12 | 13 | - (NSTimeInterval)transitionDuration:(id)transitionContext{ 14 | return 1.f; 15 | } 16 | 17 | - (void)animateTransition:(id)transitionContext{ 18 | UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; 19 | UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; 20 | 21 | CGRect initRect = [transitionContext initialFrameForViewController:fromVC]; 22 | CGRect finalRect = CGRectOffset(initRect, 0, [[UIScreen mainScreen]bounds].size.height); 23 | 24 | UIView *containerView = [transitionContext containerView]; 25 | [containerView addSubview:toVC.view]; 26 | [containerView sendSubviewToBack:toVC.view]; 27 | 28 | [UIView animateWithDuration:[self transitionDuration:transitionContext] delay:0.0f usingSpringWithDamping:0.4f initialSpringVelocity:0.0f options:UIViewAnimationOptionCurveLinear animations:^{ 29 | fromVC.view.frame = finalRect; 30 | } completion:^(BOOL finished) { 31 | [transitionContext completeTransition:YES]; 32 | }]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/ModalPresentAnimation.h: -------------------------------------------------------------------------------- 1 | // 2 | // ModalPresentAnimation.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/8/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ModalPresentAnimation : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/ModalPresentAnimation.m: -------------------------------------------------------------------------------- 1 | // 2 | // ModalPresentAnimation.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/8/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "ModalPresentAnimation.h" 10 | 11 | @implementation ModalPresentAnimation 12 | 13 | - (NSTimeInterval)transitionDuration:(id)transitionContext{ 14 | 15 | return 0.5; 16 | } 17 | 18 | - (void)animateTransition:(id)transitionContext{ 19 | 20 | UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; 21 | 22 | CGRect finalRect = [transitionContext finalFrameForViewController:toVC]; 23 | 24 | toVC.view.frame = CGRectOffset(finalRect, 0, [[UIScreen mainScreen]bounds].size.height); 25 | 26 | [[transitionContext containerView] addSubview:toVC.view]; 27 | 28 | [UIView animateWithDuration:[self transitionDuration:transitionContext] delay:0.0 usingSpringWithDamping:0.6 initialSpringVelocity:0.0 options:UIViewAnimationOptionCurveLinear animations:^{ 29 | toVC.view.frame = finalRect; 30 | } completion:^(BOOL finished) { 31 | [transitionContext completeTransition:YES]; 32 | }]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/PanInteractiveTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // ModalDismissAnimation.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/10/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PanInteractiveTransition : UIPercentDrivenInteractiveTransition 12 | 13 | @property (nonatomic, assign) BOOL interacting; 14 | 15 | - (void)panToDismis:(UIViewController *)viewController; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/Transitioning Animation/PanInteractiveTransition.m: -------------------------------------------------------------------------------- 1 | // 2 | // ModalDismissAnimation.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/10/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "PanInteractiveTransition.h" 10 | 11 | @interface PanInteractiveTransition() 12 | 13 | @property(nonatomic, strong)UIViewController *presentedVC; 14 | 15 | @end 16 | 17 | @implementation PanInteractiveTransition 18 | 19 | 20 | - (void)panToDismis:(UIViewController *)viewController{ 21 | self.presentedVC = viewController; 22 | UIPanGestureRecognizer *panGstR = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGestureAction:)]; 23 | [self.presentedVC.view addGestureRecognizer:panGstR]; 24 | } 25 | 26 | -(void)panGestureAction:(UIPanGestureRecognizer *)gesture{ 27 | CGPoint translation = [gesture translationInView:self.presentedVC.view]; 28 | switch (gesture.state) { 29 | case UIGestureRecognizerStateBegan: 30 | self.interacting = YES; 31 | [self.presentedVC dismissViewControllerAnimated:YES completion:nil]; 32 | break; 33 | case UIGestureRecognizerStateChanged:{ 34 | //1 35 | CGFloat percent = (translation.y/GlobalScreenHeight/2) <= 1 ? (translation.y/GlobalScreenHeight/2):1; 36 | [self updateInteractiveTransition:percent]; 37 | break; 38 | } 39 | case UIGestureRecognizerStateCancelled: 40 | case UIGestureRecognizerStateEnded:{ 41 | //2 42 | self.interacting = NO; 43 | if (gesture.state == UIGestureRecognizerStateCancelled) { 44 | [self cancelInteractiveTransition]; 45 | }else{ 46 | [self finishInteractiveTransition]; 47 | } 48 | break; 49 | } 50 | 51 | default: 52 | break; 53 | } 54 | } 55 | @end 56 | -------------------------------------------------------------------------------- /SimpleWeather/Controller/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 11/30/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class ViewController; 12 | 13 | 14 | 15 | @interface ViewController : UIViewController 16 | 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/NJMarco.h: -------------------------------------------------------------------------------- 1 | // 2 | // NJMarco.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/15/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | 10 | #ifndef NJMarco_h 11 | #define NJMarco_h 12 | 13 | 14 | #endif /* NJMarco_h */ 15 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/NSDate+Extenion.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+Extenion.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSDate (Extenion) 12 | 13 | @property (nonatomic, readonly) NSInteger weekday; 14 | 15 | - (NSString *)stringWithFormat:(NSString *)format; 16 | - (NSDate *)dateByAddingDays:(NSInteger)days; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/NSDate+Extenion.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSDate+Extenion.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "NSDate+Extenion.h" 10 | 11 | @implementation NSDate (Extenion) 12 | 13 | - (NSInteger)weekday { 14 | return [[[NSCalendar currentCalendar] components:NSCalendarUnitWeekday fromDate:self] weekday]; 15 | } 16 | 17 | - (NSString *)stringWithFormat:(NSString *)format { 18 | NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 19 | [formatter setDateFormat:format]; 20 | [formatter setLocale:[NSLocale currentLocale]]; 21 | return [formatter stringFromDate:self]; 22 | } 23 | 24 | - (NSDate *)dateByAddingDays:(NSInteger)days { 25 | NSTimeInterval aTimeInterval = [self timeIntervalSinceReferenceDate] + 86400 * days; 26 | NSDate *newDate = [NSDate dateWithTimeIntervalSinceReferenceDate:aTimeInterval]; 27 | return newDate; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/NSString+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Extension.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/2/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSString (Extension) 12 | 13 | - (CGSize)sizeForFont:(UIFont *)font size:(CGSize)size mode:(NSLineBreakMode)lineBreakMode; 14 | 15 | - (CGFloat)widthForFont:(UIFont *)font; 16 | 17 | 18 | - (CGFloat)heightForFont:(UIFont *)font width:(CGFloat)width; 19 | 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/NSString+Extension.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+Extension.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/2/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "NSString+Extension.h" 10 | 11 | @implementation NSString (Extension) 12 | 13 | - (CGSize)sizeForFont:(UIFont *)font size:(CGSize)size mode:(NSLineBreakMode)lineBreakMode { 14 | CGSize result; 15 | if (!font) font = [UIFont systemFontOfSize:12]; 16 | if ([self respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { 17 | NSMutableDictionary *attr = [NSMutableDictionary new]; 18 | attr[NSFontAttributeName] = font; 19 | if (lineBreakMode != NSLineBreakByWordWrapping) { 20 | NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; 21 | paragraphStyle.lineBreakMode = lineBreakMode; 22 | attr[NSParagraphStyleAttributeName] = paragraphStyle; 23 | } 24 | CGRect rect = [self boundingRectWithSize:size 25 | options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading 26 | attributes:attr context:nil]; 27 | result = rect.size; 28 | } else { 29 | #pragma clang diagnostic push 30 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 31 | result = [self sizeWithFont:font constrainedToSize:size lineBreakMode:lineBreakMode]; 32 | #pragma clang diagnostic pop 33 | } 34 | return result; 35 | } 36 | 37 | - (CGFloat)widthForFont:(UIFont *)font { 38 | CGSize size = [self sizeForFont:font size:CGSizeMake(HUGE, HUGE) mode:NSLineBreakByWordWrapping]; 39 | return size.width; 40 | } 41 | 42 | - (CGFloat)heightForFont:(UIFont *)font width:(CGFloat)width { 43 | CGSize size = [self sizeForFont:font size:CGSizeMake(width, HUGE) mode:NSLineBreakByWordWrapping]; 44 | return size.height; 45 | } 46 | 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIButton+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+Extension.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/4/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIButton (Extension) 12 | 13 | /** 14 | * 设置按钮的字体和图片的间距 15 | * 16 | * @param spaceing 间距 17 | */ 18 | - (void)horizontalCenterTitlesAndImages:(CGFloat)spaceing; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIButton+Extension.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+Extension.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/4/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "UIButton+Extension.h" 10 | 11 | @implementation UIButton (Extension) 12 | 13 | - (void)horizontalCenterTitlesAndImages:(CGFloat)spacing{ 14 | self.titleEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, - spacing/2); 15 | self.imageEdgeInsets = UIEdgeInsetsMake(0.0, - spacing/2, 0.0, 0.0); 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIColor+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Extension.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/6/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIColor (Extension) 12 | 13 | + (UIColor *)colorWithRGB:(NSString *)color; 14 | 15 | + (UIColor *)colorWithRGB:(NSString *)color withAlpha:(CGFloat)alpha; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIColor+Extension.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Extension.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/6/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "UIColor+Extension.h" 10 | 11 | @implementation UIColor (Extension) 12 | 13 | + (UIColor *)colorWithRGB:(NSString *)color{ 14 | return [UIColor colorWithRGB:color withAlpha:1]; 15 | } 16 | 17 | + (UIColor *)colorWithRGB:(NSString *)color withAlpha:(CGFloat)alpha{ 18 | NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; 19 | 20 | if ([cString length] < 6){ 21 | return [UIColor clearColor]; 22 | } 23 | if ([cString hasPrefix:@"0X"]){ 24 | cString = [cString substringFromIndex:2]; 25 | } 26 | if ([cString hasPrefix:@"#"]){ 27 | cString = [cString substringFromIndex:1]; 28 | } 29 | if ([cString length] != 6){ 30 | return [UIColor clearColor]; 31 | } 32 | 33 | NSRange range; 34 | range.location = 0; 35 | range.length = 2; 36 | NSString *rString = [cString substringWithRange:range]; 37 | range.location = 2; 38 | NSString *gString = [cString substringWithRange:range]; 39 | range.location = 4; 40 | NSString *bString = [cString substringWithRange:range]; 41 | 42 | unsigned int r, g, b; 43 | [[NSScanner scannerWithString:rString] scanHexInt:&r]; 44 | [[NSScanner scannerWithString:gString] scanHexInt:&g]; 45 | [[NSScanner scannerWithString:bString] scanHexInt:&b]; 46 | return [UIColor colorWithRed:((float)r / 255.0f) green:((float)g / 255.0f) blue:((float)b / 255.0f) alpha:alpha]; 47 | } 48 | @end 49 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIImage+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Extension.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/12/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (Extension) 12 | 13 | + (UIImage *)imageWithColor:(UIColor *)color; 14 | 15 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; 16 | @end 17 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIImage+Extension.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Extension.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/12/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "UIImage+Extension.h" 10 | 11 | @implementation UIImage (Extension) 12 | 13 | + (UIImage *)imageWithColor:(UIColor *)color { 14 | return [self imageWithColor:color size:CGSizeMake(1, 1)]; 15 | } 16 | 17 | + (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size { 18 | if (!color || size.width <= 0 || size.height <= 0) return nil; 19 | CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height); 20 | UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0); 21 | CGContextRef context = UIGraphicsGetCurrentContext(); 22 | CGContextSetFillColorWithColor(context, color.CGColor); 23 | CGContextFillRect(context, rect); 24 | UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 25 | UIGraphicsEndImageContext(); 26 | return image; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /SimpleWeather/General/Category/UIView+Extension.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Extension.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/1/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (Extension) 12 | 13 | #pragma mark - UIView Property 14 | 15 | @property (nonatomic, assign) CGFloat x; 16 | @property (nonatomic, assign) CGFloat y; 17 | @property (nonatomic, assign) CGFloat centerX; 18 | @property (nonatomic, assign) CGFloat centerY; 19 | @property (nonatomic, assign) CGFloat width; 20 | @property (nonatomic, assign) CGFloat height; 21 | @property (nonatomic, assign) CGSize size; 22 | @property (nonatomic, assign) CGPoint origin; 23 | 24 | @property (nonatomic, readonly)UIViewController *viewController; //获取当前视图的Controller 25 | 26 | - (void)applyBasicAnimation:(CABasicAnimation *)animation toLayer:(CALayer *)layer; 27 | 28 | - (void)applyAnimationGroup:(CAAnimationGroup *)groupAnimation toLayer:(CALayer *)layer; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /SimpleWeather/General/NJGlobalConstData.h: -------------------------------------------------------------------------------- 1 | // 2 | // NJGlobalConstData.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/31/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | #define kApiKeyName @"apikey" 13 | 14 | #define kApiKey @"fd235aacd393e4b2e77254dcbd9b66c2" 15 | 16 | #define kAppDataApiPatameterKeyName @"city" 17 | 18 | #define kAppDataApi @"http://apis.baidu.com/heweather/pro/weather" 19 | 20 | #define GlobalScreenHeight [UIScreen mainScreen].bounds.size.height 21 | 22 | #define GlobalScreenWidth [UIScreen mainScreen].bounds.size.width 23 | 24 | #define kThemeColor [UIColor colorWithRed:.29 green:.77 blue:.97 alpha:1] 25 | 26 | #define iPhone5s (GlobalScreenWidth == 320.f && GlobalScreenHeight == 568.f ? YES : NO) 27 | #define iPhone6s (GlobalScreenWidth >= 375.f && GlobalScreenHeight >= 667.f ? YES : NO) 28 | 29 | #define isAnimationOn @"isAnimationOn" 30 | #define isPushOn @"isPushOn" 31 | #define locationCity @"locationCity" 32 | 33 | 34 | -------------------------------------------------------------------------------- /SimpleWeather/General/NJGlobalConstData.m: -------------------------------------------------------------------------------- 1 | // 2 | // NJGlobalConstData.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/31/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "NJGlobalConstData.h" 10 | 11 | -------------------------------------------------------------------------------- /SimpleWeather/General/Views/CitySearchBar/CitySearchBar.h: -------------------------------------------------------------------------------- 1 | // 2 | // CitySearchBar.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/12/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CitySearchBar : UISearchBar 12 | 13 | - (instancetype)initWithFrame:(CGRect)frame font:(UIFont *)font textColor:(UIColor *)textColor; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /SimpleWeather/General/Views/CitySearchBar/CitySearchBar.m: -------------------------------------------------------------------------------- 1 | // 2 | // CitySearchBar.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/12/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "CitySearchBar.h" 10 | 11 | @interface CitySearchBar() 12 | 13 | @property(nonatomic, strong)UIFont *preferredFont; 14 | @property(nonatomic, strong)UIColor *preferredTextColor; 15 | 16 | @end 17 | 18 | @implementation CitySearchBar 19 | 20 | #pragma mark - LifeCycle 21 | - (instancetype)initWithFrame:(CGRect)frame font:(UIFont *)font textColor:(UIColor *)textColor{ 22 | if(self = [super initWithFrame:frame]){ 23 | self.preferredFont = font; 24 | self.preferredTextColor = textColor; 25 | } 26 | return self; 27 | } 28 | 29 | #pragma mark - Override drawRect 30 | 31 | - (void)drawRect:(CGRect)rect{ 32 | NSInteger index = [self indexOfAccessibilityElement:self]; 33 | UITextField *searchField = self.subviews[0].subviews[index]; 34 | [searchField resignFirstResponder]; 35 | searchField.frame = CGRectMake(5.0, 5.0, self.width - 10.0, self.height - 10.0); 36 | searchField.font = self.preferredFont; 37 | searchField.textColor = self.preferredTextColor; 38 | searchField.backgroundColor = self.barTintColor; 39 | 40 | CGPoint startPoint = CGPointMake(0, self.height); 41 | CGPoint endPoint = CGPointMake(self.width, self.height); 42 | UIBezierPath *path = [UIBezierPath bezierPath]; 43 | [path moveToPoint:startPoint]; 44 | [path addLineToPoint:endPoint]; 45 | 46 | CAShapeLayer *shapeLayer = [CAShapeLayer layer]; 47 | shapeLayer.path = path.CGPath; 48 | shapeLayer.strokeColor = self.preferredTextColor.CGColor; 49 | shapeLayer.lineWidth = 2.5; 50 | [self.layer addSublayer:shapeLayer]; 51 | } 52 | 53 | - (NSInteger)indexOfAccessibilityElement:(id)element{ 54 | NSInteger index; 55 | UIView *searchBarView = self.subviews[0]; 56 | 57 | for (int i=0; i 10 | #import "CitySearchBar.h" 11 | 12 | @protocol CitySearchBarControllerDelegate 13 | 14 | - (void)didStartSearching; 15 | - (void)didTapOnSearchButton; 16 | - (void)didTapOnCancelButton; 17 | - (void)didChangeSearchText:(NSString *)searchText; 18 | 19 | 20 | @end 21 | 22 | @interface CitySearchBarController : UISearchController 23 | 24 | @property(nonatomic, strong)CitySearchBar *citySearchBar; 25 | 26 | @property(nonatomic, weak)iddelegate; 27 | 28 | - (instancetype)initWithSearchVC:(UIViewController *)VC searchBarFrame:(CGRect)searchBarFrame Font:(UIFont *)font textColor:(UIColor *)textColor tintColor:(UIColor *)tintColor; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /SimpleWeather/General/Views/CitySearchBar/CitySearchBarController.m: -------------------------------------------------------------------------------- 1 | // 2 | // CitySearchBarController.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/12/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "CitySearchBarController.h" 10 | 11 | 12 | @interface CitySearchBarController() 13 | 14 | 15 | 16 | @end 17 | 18 | @implementation CitySearchBarController 19 | 20 | #pragma mark - LifeCycle 21 | 22 | - (void)viewDidLoad{ 23 | [super viewDidLoad]; 24 | } 25 | 26 | - (void)didReceiveMemoryWarning{ 27 | [super didReceiveMemoryWarning]; 28 | } 29 | 30 | - (instancetype)initWithSearchVC:(UIViewController *)VC searchBarFrame:(CGRect)searchBarFrame Font:(UIFont *)font textColor:(UIColor *)textColor tintColor:(UIColor *)tintColor{ 31 | if(self = [super initWithSearchResultsController:VC]){ 32 | self.citySearchBar = [[CitySearchBar alloc]initWithFrame:searchBarFrame font:font textColor:textColor]; 33 | self.citySearchBar.barTintColor = tintColor; 34 | self.citySearchBar.tintColor = textColor; 35 | self.citySearchBar.showsBookmarkButton = NO; 36 | self.citySearchBar.showsCancelButton = YES; 37 | self.citySearchBar.delegate = self; 38 | 39 | } 40 | return self; 41 | } 42 | 43 | #pragma mark - UISearchBarDelegate 44 | 45 | - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{ 46 | if(self.delegate && [self.delegate respondsToSelector:@selector(didStartSearching)]){ 47 | [self.delegate didStartSearching]; 48 | } 49 | } 50 | 51 | - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ 52 | if(self.delegate && [self.delegate respondsToSelector:@selector(didTapOnSearchButton)]){ 53 | [self.delegate didTapOnSearchButton]; 54 | } 55 | } 56 | 57 | - (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ 58 | if(self.delegate && [self.delegate respondsToSelector:@selector(didTapOnCancelButton)]){ 59 | [self.delegate didTapOnCancelButton]; 60 | } 61 | } 62 | 63 | - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ 64 | if(self.delegate && [self.delegate respondsToSelector:@selector(didChangeSearchText:)]){ 65 | [self.delegate didChangeSearchText:searchText]; 66 | } 67 | } 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /SimpleWeather/General/Views/MenuView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MenuView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/1/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MenuView : UIView 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /SimpleWeather/General/Views/MenuView.m: -------------------------------------------------------------------------------- 1 | // 2 | // MenuView.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/1/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "MenuView.h" 10 | 11 | 12 | @implementation MenuView 13 | 14 | - (instancetype)initWithFrame:(CGRect)frame{ 15 | if(self = [super initWithFrame:frame]){ 16 | self.backgroundColor =[UIColor clearColor]; 17 | } 18 | return self; 19 | } 20 | 21 | - (void)drawRect:(CGRect)rect{ 22 | 23 | UIBezierPath *pathTop = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, self.width, 5) cornerRadius:2.5]; 24 | [[UIColor whiteColor]set]; 25 | [pathTop fill]; 26 | 27 | UIBezierPath *pathCenter = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 10, self.width, 5) cornerRadius:2.5]; 28 | [[UIColor whiteColor]set]; 29 | [pathCenter fill]; 30 | 31 | UIBezierPath *pathBottom = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 20, self.width, 5) cornerRadius:2.5]; 32 | [[UIColor whiteColor]set]; 33 | [pathBottom fill]; 34 | } 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /SimpleWeather/Helper/SettingDataHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingDataHelper.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SettingDataHelper : NSObject 12 | 13 | + (SettingDataHelper *)helper; 14 | 15 | - (NSMutableArray *)getSettingData; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SimpleWeather/Helper/SettingDataHelper.m: -------------------------------------------------------------------------------- 1 | // 2 | // SettingDataHelper.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "SettingDataHelper.h" 10 | #import "SettingDataModel.h" 11 | 12 | @implementation SettingDataHelper 13 | 14 | + (SettingDataHelper *)helper{ 15 | static SettingDataHelper *helper; 16 | static dispatch_once_t onceToken; 17 | dispatch_once(&onceToken, ^{ 18 | helper = [[SettingDataHelper alloc]init];; 19 | }); 20 | return helper; 21 | } 22 | 23 | - (NSArray *)getSettingData{ 24 | SettingDataModel *push = [[SettingDataModel alloc]initWithType:SettingItemTypeChoose Title:@"推送通知" Content:@""]; 25 | SettingDataModel *animation = [[SettingDataModel alloc]initWithType:SettingItemTypeChoose Title:@"天气动画" Content:@""]; 26 | SettingDataModel *review = [[SettingDataModel alloc]initWithType:SettingItemTypeDefault Title:@"赏个好评" Content:@""]; 27 | SettingDataModel *revision = [[SettingDataModel alloc]initWithType:SettingItemTypeContent Title:@"版本" Content:@"1.0"]; 28 | 29 | NSArray *group = [NSArray array]; 30 | 31 | NSArray *group1 = @[push]; 32 | NSArray *group2 = @[animation]; 33 | NSArray *group3 = @[review,revision]; 34 | 35 | group = @[group1,group2,group3]; 36 | return group; 37 | 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /SimpleWeather/Helper/WeatherDataHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherDataHelper.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/1/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherDataHelper : NSObject 12 | 13 | + (WeatherDataHelper *)helper; 14 | 15 | //根据天气类型获取图片 16 | - (NSString *)getWeatherIconByCode:(NSString *)codeString isDay:(BOOL)isDay; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /SimpleWeather/Helper/WeatherLocationHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherLocationHelper.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/2/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @class WeatherLocationHelper; 13 | 14 | @protocol WeatherLocationDelegate 15 | 16 | - (void)weatherLocation:(WeatherLocationHelper *)helper didSuccess:(NSString *)cityName; 17 | - (void)weatherLocation:(WeatherLocationHelper *)helper didFailed:(NSError *)error; 18 | - (void)weatherLocationDidClose:(WeatherLocationHelper *)helper; 19 | 20 | @end 21 | 22 | @interface WeatherLocationHelper : NSObject 23 | 24 | @property(nonatomic, weak)iddelegate; 25 | 26 | @property(nonatomic, assign)BOOL isFirstTime; 27 | 28 | + (WeatherLocationHelper *)helper; 29 | 30 | - (void)startLocation; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /SimpleWeather/Model/SettingDataModel.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingDataModel.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSInteger,SettingItemType){ 12 | SettingItemTypeDefault,//title,arrow 13 | SettingItemTypeChoose,//title,check 14 | SettingItemTypeContent//title,text 15 | }; 16 | 17 | @interface SettingDataModel : NSObject 18 | 19 | @property(nonatomic, copy)NSString *title; 20 | @property(nonatomic, copy)NSString *content; 21 | @property(nonatomic, assign)SettingItemType type; 22 | - (instancetype)initWithType:(SettingItemType)type Title:(NSString *)title Content:(NSString *)content; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /SimpleWeather/Model/SettingDataModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // SettingDataModel.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "SettingDataModel.h" 10 | 11 | @implementation SettingDataModel 12 | 13 | - (instancetype)initWithType:(SettingItemType)type Title:(NSString *)title Content:(NSString *)content{ 14 | if(self = [super init]){ 15 | self.type = type; 16 | self.title = title; 17 | self.content = content; 18 | } 19 | return self; 20 | 21 | } 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /SimpleWeather/Model/WeatherDataModel.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherDataModel.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/31/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "WeatherDataModel.h" 10 | 11 | 12 | @implementation WeatherDataModel 13 | 14 | + (NSDictionary *)modelContainerPropertyGenericClass { 15 | return @{@"daily_forecast" : [WeatherDailyModel class] 16 | }; 17 | } 18 | @end 19 | 20 | @implementation WeatherBasicModel 21 | 22 | @end 23 | 24 | @implementation WeatherDailyModel 25 | 26 | @end 27 | 28 | @implementation WeatherAstroModel 29 | 30 | @end 31 | 32 | @implementation WeatherTempModel 33 | 34 | @end 35 | 36 | @implementation WeatherNowModel 37 | 38 | @end 39 | 40 | @implementation WeatherCondModel 41 | 42 | 43 | @end 44 | 45 | @implementation WeatherWindModel 46 | 47 | 48 | @end 49 | 50 | @implementation WeatherDailyCondModel 51 | 52 | @end 53 | 54 | @implementation WeatherBasicInfoModel 55 | 56 | @end 57 | 58 | @implementation WeatherDailyForcastModel 59 | 60 | - (instancetype)init{ 61 | if(self = [super init]){ 62 | self.dailyForcast =[NSMutableArray array]; 63 | } 64 | return self; 65 | } 66 | 67 | @end 68 | 69 | @implementation WeatherTempTrendModel 70 | 71 | @end 72 | 73 | @implementation WeatherCityModel 74 | 75 | - (instancetype)initWithCoder:(NSCoder *)aDecoder{ 76 | 77 | self.code = [aDecoder decodeObjectForKey:@"code"]; 78 | self.tmp = [aDecoder decodeObjectForKey:@"tmp"]; 79 | self.address = [aDecoder decodeObjectForKey:@"address"]; 80 | return self; 81 | } 82 | 83 | - (void)encodeWithCoder:(NSCoder *)aCoder{ 84 | [aCoder encodeObject:self.address forKey:@"address"]; 85 | [aCoder encodeObject:self.tmp forKey:@"tmp"]; 86 | [aCoder encodeObject:self.code forKey:@"code"]; 87 | } 88 | 89 | @end 90 | 91 | @implementation WeatherCacheModel 92 | 93 | @end 94 | 95 | -------------------------------------------------------------------------------- /SimpleWeather/Other/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 | -------------------------------------------------------------------------------- /SimpleWeather/Other/Base.lproj/Main.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 | -------------------------------------------------------------------------------- /SimpleWeather/Other/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 | 最简天气 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSAppTransportSecurity 26 | 27 | NSAllowsArbitraryLoads 28 | 29 | 30 | NSLocationUsageDescription 31 | 打开定位服务 32 | NSLocationWhenInUseUsageDescription 33 | 打开定位服务 34 | UILaunchStoryboardName 35 | LaunchScreen 36 | UIMainStoryboardFile 37 | Main 38 | UIRequiredDeviceCapabilities 39 | 40 | armv7 41 | 42 | UIStatusBarHidden 43 | 44 | UISupportedInterfaceOrientations 45 | 46 | UIInterfaceOrientationPortrait 47 | UIInterfaceOrientationLandscapeLeft 48 | UIInterfaceOrientationLandscapeRight 49 | 50 | UISupportedInterfaceOrientations~ipad 51 | 52 | UIInterfaceOrientationPortrait 53 | UIInterfaceOrientationPortraitUpsideDown 54 | UIInterfaceOrientationLandscapeLeft 55 | UIInterfaceOrientationLandscapeRight 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /SimpleWeather/Other/SimpleWeather.pch: -------------------------------------------------------------------------------- 1 | // 2 | // SimpleWeather.pch 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/30/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #ifndef SimpleWeather_pch 10 | #define SimpleWeather_pch 11 | 12 | // Include any system framework and library headers here that should be included in all compilation units. 13 | // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file. 14 | 15 | #import "NJGlobalConstData.h" 16 | #import "UIView+Extension.h" 17 | #import "NSString+Extension.h" 18 | #import "UIButton+Extension.h" 19 | #import "UIColor+Extension.h" 20 | #import "NSDate+Extenion.h" 21 | #import "UIImage+Extension.h" 22 | #import "WeatherDataModel.h" 23 | #import "SWRevealViewController.h" 24 | 25 | #endif /* SimpleWeather_pch */ 26 | -------------------------------------------------------------------------------- /SimpleWeather/Other/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 11/30/15. 6 | // Copyright © 2015 Jimmy Chen. 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 | -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/bigpole.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "bigpole@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "bigpole@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/bigpole.imageset/bigpole@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/bigpole.imageset/bigpole@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/bigpole.imageset/bigpole@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/bigpole.imageset/bigpole@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/blade_s.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "blade_s@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "blade_s@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/blade_s.imageset/blade_s@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/blade_s.imageset/blade_s@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/blade_s.imageset/blade_s@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/blade_s.imageset/blade_s@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_day.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "clear_day@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "clear_day@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_day.imageset/clear_day@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/clear_day.imageset/clear_day@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_day.imageset/clear_day@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/clear_day.imageset/clear_day@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "clear_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "clear_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_night.imageset/clear_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/clear_night.imageset/clear_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/clear_night.imageset/clear_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/clear_night.imageset/clear_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/cloudy_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "cloudy_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "cloudy_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/cloudy_day_night.imageset/cloudy_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/cloudy_day_night.imageset/cloudy_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/cloudy_day_night.imageset/cloudy_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/cloudy_day_night.imageset/cloudy_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/dust_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "dust_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "dust_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/dust_day_night.imageset/dust_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/dust_day_night.imageset/dust_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/dust_day_night.imageset/dust_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/dust_day_night.imageset/dust_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_day.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fair_day@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "fair_day@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_day.imageset/fair_day@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fair_day.imageset/fair_day@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_day.imageset/fair_day@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fair_day.imageset/fair_day@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fair_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "fair_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_night.imageset/fair_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fair_night.imageset/fair_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fair_night.imageset/fair_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fair_night.imageset/fair_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flash_flood_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "flash_flood_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "flash_flood_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flash_flood_day_night.imageset/flash_flood_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/flash_flood_day_night.imageset/flash_flood_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flash_flood_day_night.imageset/flash_flood_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/flash_flood_day_night.imageset/flash_flood_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flurries_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "flurries_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "flurries_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flurries_day_night.imageset/flurries_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/flurries_day_night.imageset/flurries_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/flurries_day_night.imageset/flurries_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/flurries_day_night.imageset/flurries_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fog_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "fog_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_day_night.imageset/fog_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_day_night.imageset/fog_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_day_night.imageset/fog_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_day_night.imageset/fog_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_moon_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fog_moon_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "fog_moon_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_moon_night.imageset/fog_moon_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_moon_night.imageset/fog_moon_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_moon_night.imageset/fog_moon_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_moon_night.imageset/fog_moon_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_sun_day.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "fog_sun_day@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "fog_sun_day@3x.png", 15 | "scale" : "3x" 16 | }, 17 | { 18 | "idiom" : "universal", 19 | "filename" : "icon@3x.png", 20 | "scale" : "3x" 21 | } 22 | ], 23 | "info" : { 24 | "version" : 1, 25 | "author" : "xcode" 26 | } 27 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_sun_day.imageset/fog_sun_day@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_sun_day.imageset/fog_sun_day@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/fog_sun_day.imageset/fog_sun_day@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/fog_sun_day.imageset/fog_sun_day@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/forecast_card_icon_warning_wind.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "forecast_card_icon_warning_wind@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "forecast_card_icon_warning_wind@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/forecast_card_icon_warning_wind.imageset/forecast_card_icon_warning_wind@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/forecast_card_icon_warning_wind.imageset/forecast_card_icon_warning_wind@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/forecast_card_icon_warning_wind.imageset/forecast_card_icon_warning_wind@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/forecast_card_icon_warning_wind.imageset/forecast_card_icon_warning_wind@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/freezing_rain_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "freezing_rain_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "freezing_rain_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/freezing_rain_day_night.imageset/freezing_rain_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/freezing_rain_day_night.imageset/freezing_rain_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/freezing_rain_day_night.imageset/freezing_rain_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/freezing_rain_day_night.imageset/freezing_rain_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hail_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hail_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "hail_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hail_day_night.imageset/hail_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/hail_day_night.imageset/hail_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hail_day_night.imageset/hail_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/hail_day_night.imageset/hail_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/haze_day_night.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" : "haze_day_night@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/haze_day_night.imageset/haze_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/haze_day_night.imageset/haze_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/heavy_snow_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "heavy_snow_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "heavy_snow_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/heavy_snow_day_night.imageset/heavy_snow_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/heavy_snow_day_night.imageset/heavy_snow_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/heavy_snow_day_night.imageset/heavy_snow_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/heavy_snow_day_night.imageset/heavy_snow_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/humlity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "humlity@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "humlity@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/humlity.imageset/humlity@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/humlity.imageset/humlity@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/humlity.imageset/humlity@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/humlity.imageset/humlity@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hurricane_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "hurricane_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon@2x.png", 15 | "scale" : "2x" 16 | }, 17 | { 18 | "idiom" : "universal", 19 | "filename" : "hurricane_day_night@3x.png", 20 | "scale" : "3x" 21 | } 22 | ], 23 | "info" : { 24 | "version" : 1, 25 | "author" : "xcode" 26 | } 27 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hurricane_day_night.imageset/hurricane_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/hurricane_day_night.imageset/hurricane_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/hurricane_day_night.imageset/hurricane_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/hurricane_day_night.imageset/hurricane_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/left_drawer_add_city_normal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "left_drawer_add_city_normal.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/left_drawer_add_city_normal.imageset/left_drawer_add_city_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/left_drawer_add_city_normal.imageset/left_drawer_add_city_normal.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/light_rain_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "light_rain_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "light_rain_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/light_rain_day_night.imageset/light_rain_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/light_rain_day_night.imageset/light_rain_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/light_rain_day_night.imageset/light_rain_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/light_rain_day_night.imageset/light_rain_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/mostly_cloudy_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "mostly_cloudy_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "mostly_cloudy_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/mostly_cloudy_day_night.imageset/mostly_cloudy_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/mostly_cloudy_day_night.imageset/mostly_cloudy_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/mostly_cloudy_day_night.imageset/mostly_cloudy_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/mostly_cloudy_day_night.imageset/mostly_cloudy_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/na.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "na@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "na@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/na.imageset/na@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/na.imageset/na@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/na.imageset/na@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/na.imageset/na@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_day.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "partly_cloudy_day@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "partly_cloudy_day@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_day.imageset/partly_cloudy_day@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/partly_cloudy_day.imageset/partly_cloudy_day@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_day.imageset/partly_cloudy_day@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/partly_cloudy_day.imageset/partly_cloudy_day@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "partly_cloudy_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "partly_cloudy_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_night.imageset/partly_cloudy_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/partly_cloudy_night.imageset/partly_cloudy_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/partly_cloudy_night.imageset/partly_cloudy_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/partly_cloudy_night.imageset/partly_cloudy_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/rain_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "rain_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "rain_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/rain_day_night.imageset/rain_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/rain_day_night.imageset/rain_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/rain_day_night.imageset/rain_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/rain_day_night.imageset/rain_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "raindrop.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "raindrop@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "raindrop@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/raindrop.imageset/raindrop@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_showers_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "scattered_showers_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "scattered_showers_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_showers_day_night.imageset/scattered_showers_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_showers_day_night.imageset/scattered_showers_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_showers_day_night.imageset/scattered_showers_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_showers_day_night.imageset/scattered_showers_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_day.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "scattered_thundershowers_day@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "scattered_thundershowers_day@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_day.imageset/scattered_thundershowers_day@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_day.imageset/scattered_thundershowers_day@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_day.imageset/scattered_thundershowers_day@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_day.imageset/scattered_thundershowers_day@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "scattered_thundershowers_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "scattered_thundershowers_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_night.imageset/scattered_thundershowers_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_night.imageset/scattered_thundershowers_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_night.imageset/scattered_thundershowers_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/scattered_thundershowers_night.imageset/scattered_thundershowers_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sleet_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "sleet_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_day_night.imageset/sleet_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/sleet_day_night.imageset/sleet_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_day_night.imageset/sleet_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/sleet_day_night.imageset/sleet_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_mix_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "sleet_mix_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "sleet_mix_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_mix_day_night.imageset/sleet_mix_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/sleet_mix_day_night.imageset/sleet_mix_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/sleet_mix_day_night.imageset/sleet_mix_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/sleet_mix_day_night.imageset/sleet_mix_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smallpole.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "iphone", 9 | "filename" : "smallpole@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "iphone", 14 | "scale" : "3x" 15 | }, 16 | { 17 | "idiom" : "ipad", 18 | "filename" : "smallpole~ipad.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "idiom" : "ipad", 23 | "scale" : "2x" 24 | } 25 | ], 26 | "info" : { 27 | "version" : 1, 28 | "author" : "xcode" 29 | } 30 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smallpole.imageset/smallpole@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/smallpole.imageset/smallpole@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smallpole.imageset/smallpole~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/smallpole.imageset/smallpole~ipad.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smoky_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "smoky_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "smoky_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smoky_day_night.imageset/smoky_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/smoky_day_night.imageset/smoky_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/smoky_day_night.imageset/smoky_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/smoky_day_night.imageset/smoky_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "snow_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "snow_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_day_night.imageset/snow_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/snow_day_night.imageset/snow_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_day_night.imageset/snow_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/snow_day_night.imageset/snow_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_rain_mix_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "snow_rain_mix_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "snow_rain_mix_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_rain_mix_day_night.imageset/snow_rain_mix_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/snow_rain_mix_day_night.imageset/snow_rain_mix_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/snow_rain_mix_day_night.imageset/snow_rain_mix_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/snow_rain_mix_day_night.imageset/snow_rain_mix_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thundershowers_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "thundershowers_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "thundershowers_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thundershowers_day_night.imageset/thundershowers_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/thundershowers_day_night.imageset/thundershowers_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thundershowers_day_night.imageset/thundershowers_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/thundershowers_day_night.imageset/thundershowers_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thunderstorm_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "thunderstorm_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "thunderstorm_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thunderstorm_day_night.imageset/thunderstorm_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/thunderstorm_day_night.imageset/thunderstorm_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/thunderstorm_day_night.imageset/thunderstorm_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/thunderstorm_day_night.imageset/thunderstorm_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tmp.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tmp@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "tmp@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tmp.imageset/tmp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/tmp.imageset/tmp@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tmp.imageset/tmp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/tmp.imageset/tmp@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tornado_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "tornado_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "tornado_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tornado_day_night.imageset/tornado_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/tornado_day_night.imageset/tornado_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/tornado_day_night.imageset/tornado_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/tornado_day_night.imageset/tornado_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunrise.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "weather_sunrise.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "weather_sunrise@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunrise.imageset/weather_sunrise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/weather_sunrise.imageset/weather_sunrise.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunrise.imageset/weather_sunrise@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/weather_sunrise.imageset/weather_sunrise@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunset.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "weather_sunset.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "weather_sunset@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunset.imageset/weather_sunset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/weather_sunset.imageset/weather_sunset.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/weather_sunset.imageset/weather_sunset@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/weather_sunset.imageset/weather_sunset@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/wg_humidity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "wg_humidity.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/wg_humidity.imageset/wg_humidity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/wg_humidity.imageset/wg_humidity.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/windy_day_night.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "windy_day_night@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "windy_day_night@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/windy_day_night.imageset/windy_day_night@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/windy_day_night.imageset/windy_day_night@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/Assets.xcassets/windy_day_night.imageset/windy_day_night@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/Assets.xcassets/windy_day_night.imageset/windy_day_night@3x.png -------------------------------------------------------------------------------- /SimpleWeather/Resource/citysDB.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Resource/citysDB.sqlite -------------------------------------------------------------------------------- /SimpleWeather/SimpleWeather.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/CityDatabaseManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // CityDatabaseManager.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface CityDatabaseManager : NSObject 12 | 13 | + (CityDatabaseManager *)manager; 14 | 15 | - (NSMutableArray *)getCityNameBySearchKey:(NSString *)key; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/CityDatabaseManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // CityDatabaseManager.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "CityDatabaseManager.h" 10 | #import "CityFMDatabaseQueue.h" 11 | #import "FMDB.h" 12 | 13 | @interface CityDatabaseManager() 14 | 15 | @property(nonatomic, strong)FMDatabase *database; 16 | 17 | @end 18 | 19 | @implementation CityDatabaseManager 20 | 21 | +(CityDatabaseManager *)manager{ 22 | static CityDatabaseManager *manager; 23 | static dispatch_once_t onceToken; 24 | dispatch_once(&onceToken, ^{ 25 | manager = [[CityDatabaseManager alloc]init]; 26 | }); 27 | return manager; 28 | } 29 | - (id)init{ 30 | if(self = [super init]){ 31 | NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"citysDB" ofType:@"sqlite"]; 32 | self.database = [FMDatabase databaseWithPath:dbPath]; 33 | if([self.database open]){ 34 | [self.database setShouldCacheStatements:YES]; 35 | 36 | }else{ 37 | 38 | } 39 | } 40 | return self; 41 | } 42 | 43 | - (NSMutableArray *)getCityNameBySearchKey:(NSString *)key{ 44 | 45 | NSMutableArray *result = [NSMutableArray array]; 46 | CityFMDatabaseQueue * queue = [CityFMDatabaseQueue sharedInstance]; 47 | [queue initDatabase:^(FMDatabase *db) { 48 | NSString *where = [NSString stringWithFormat:@" where %@ like '%%%@%%' ",@"nAMECN",key]; 49 | NSString* sql = [NSString stringWithFormat:@"SELECT * FROM `%@` %@", @"cityTable",where]; 50 | FMResultSet * rs = [db executeQuery:sql]; 51 | while([rs next]){ 52 | NSString *cityName = [rs stringForColumnIndex:2]; 53 | [result addObject:cityName]; 54 | } 55 | }]; 56 | return result; 57 | } 58 | 59 | @end 60 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/CityFMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | // 2 | // CityFMDatabaseQueue.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "FMDB.h" 11 | 12 | @interface CityFMDatabaseQueue : NSObject 13 | 14 | + (CityFMDatabaseQueue *)sharedInstance; 15 | 16 | - (void)initDatabase:(void(^)(FMDatabase*))block; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/CityFMDatabaseQueue.m: -------------------------------------------------------------------------------- 1 | // 2 | // CityFMDatabaseQueue.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/7/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "CityFMDatabaseQueue.h" 10 | 11 | @interface CityFMDatabaseQueue() 12 | 13 | { 14 | FMDatabaseQueue* queue;; 15 | } 16 | 17 | @end 18 | 19 | @implementation CityFMDatabaseQueue 20 | 21 | 22 | + (CityFMDatabaseQueue *)sharedInstance{ 23 | __strong static id databaseQueue = nil; 24 | static dispatch_once_t onceToken; 25 | dispatch_once(&onceToken, ^{ 26 | databaseQueue = [[CityFMDatabaseQueue alloc]init]; 27 | }); 28 | return databaseQueue; 29 | } 30 | 31 | - (instancetype)init{ 32 | if(self = [super init]){ 33 | NSString *dbPath = [[NSBundle mainBundle] pathForResource:@"citysDB" ofType:@"sqlite"]; 34 | queue = [FMDatabaseQueue databaseQueueWithPath:dbPath]; 35 | } 36 | return self; 37 | } 38 | 39 | - (void)initDatabase:(void(^)(FMDatabase*))block{ 40 | [queue inDatabase:^(FMDatabase *db){ 41 | block(db); 42 | }]; 43 | } 44 | @end 45 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-shm -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-wal -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/39F49021-BC7E-4CF0-A113-4DC690CC2F0B@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/39F49021-BC7E-4CF0-A113-4DC690CC2F0B@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/A0147B47-2990-492C-8008-101F3C11E25F@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/A0147B47-2990-492C-8008-101F3C11E25F@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/downscaled/947A3376-E055-4626-858B-7E1032D19601@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/downscaled/947A3376-E055-4626-858B-7E1032D19601@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Preferences/Jimmy-Chen.SimpleWeather.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppData/Library/Preferences/Jimmy-Chen.SimpleWeather.plist -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppDataInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:43.30.491.xcappdata/AppDataInfo.plist -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Documents/weatherDB: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Documents/weatherDB -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-shm -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Jimmy-Chen.SimpleWeather/Cache.db-wal -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/576917AE-B474-476F-BA2D-05E33CBAA91E@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/576917AE-B474-476F-BA2D-05E33CBAA91E@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/6800F285-A69F-4FA5-985D-AB9BE5DA8C20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/6800F285-A69F-4FA5-985D-AB9BE5DA8C20@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/8AEA565B-A365-42EC-8BDC-4D007A33B311@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/downscaled/947A3376-E055-4626-858B-7E1032D19601@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Caches/Snapshots/Jimmy-Chen.SimpleWeather/downscaled/947A3376-E055-4626-858B-7E1032D19601@2x.png -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Preferences/Jimmy-Chen.SimpleWeather.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppData/Library/Preferences/Jimmy-Chen.SimpleWeather.plist -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppDataInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/SimpleWeather/Ulti/DataBaseUlti/Jimmy-Chen.SimpleWeather 2016-01-11 17:46.54.507.xcappdata/AppDataInfo.plist -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/WeatherDatabaseManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherDatabaseManager.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class WeatherDatabaseManager; 12 | 13 | @interface WeatherDatabaseManager : NSObject 14 | 15 | + (WeatherDatabaseManager *)manager; 16 | 17 | - (BOOL)DBWeatherInsertModel:(WeatherCacheModel *)model; 18 | 19 | - (BOOL)DBWeatherIsExistModelByCityKey:(NSString *)cityKey; 20 | 21 | - (BOOL)DBWeatherUpdateBean:(WeatherCacheModel *)model; 22 | 23 | - (BOOL)DBWeatherDeleteModel:(NSString *)cityName; 24 | 25 | - (WeatherCacheModel *)DBWeatherGetModelByCityName:(NSString *)cityName; 26 | 27 | - (NSMutableArray *)DBWeatherGetAllCitys; 28 | 29 | - (NSMutableArray *)DBWeatherGETAllModels; 30 | 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/WeatherFMDatabaseQueue.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherFMDatabaseQueue.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "FMDB.h" 11 | @class WeatherFMDatabaseQueue; 12 | 13 | @interface WeatherFMDatabaseQueue : NSObject 14 | 15 | + (WeatherFMDatabaseQueue *)sharedInstance; 16 | 17 | - (void)initDatabase:(void(^)(FMDatabase*))block; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/DataBaseUlti/WeatherFMDatabaseQueue.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherFMDatabaseQueue.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "WeatherFMDatabaseQueue.h" 10 | 11 | @interface WeatherFMDatabaseQueue() 12 | 13 | { 14 | FMDatabaseQueue* queue;; 15 | } 16 | 17 | @end 18 | 19 | @implementation WeatherFMDatabaseQueue 20 | 21 | 22 | + (WeatherFMDatabaseQueue *)sharedInstance{ 23 | __strong static id databaseQueue = nil; 24 | static dispatch_once_t onceToken; 25 | dispatch_once(&onceToken, ^{ 26 | databaseQueue = [[WeatherFMDatabaseQueue alloc]init]; 27 | }); 28 | return databaseQueue; 29 | } 30 | 31 | - (instancetype)init{ 32 | if(self = [super init]){ 33 | NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 34 | NSString *dbPath =[NSString stringWithFormat:@"%@/%@",[paths objectAtIndex:0],@"/weatherDB"]; 35 | 36 | queue = [FMDatabaseQueue databaseQueueWithPath:dbPath]; 37 | } 38 | return self; 39 | } 40 | 41 | - (void)initDatabase:(void(^)(FMDatabase*))block{ 42 | [queue inDatabase:^(FMDatabase *db){ 43 | block(db); 44 | }]; 45 | } 46 | @end 47 | -------------------------------------------------------------------------------- /SimpleWeather/Ulti/NetUlti/HttpManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // HttpManager.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 12/31/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @interface HttpManager : NSObject 13 | 14 | + (HttpManager *)manager; 15 | 16 | - (void)getWeatherDataByCityName:(NSString *)cityName dataHandle:(void (^)(WeatherDataModel * _Nonnull dataModel))dataHandle; 17 | 18 | - (void)getWeatherDataByCityNames:(NSArray *)cityNames dataHandle:(void (^)(NSArray * _Nonnull dataModels))dataHandle; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /SimpleWeather/Vender/DGElasticPullToRefresh/DGElasticPullToRefreshConstants.swift: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 2015 Danil Gontovnik 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | 25 | */ 26 | 27 | import CoreGraphics 28 | 29 | public struct DGElasticPullToRefreshConstants { 30 | 31 | struct KeyPaths { 32 | static let ContentOffset = "contentOffset" 33 | static let ContentInset = "contentInset" 34 | static let Frame = "frame" 35 | static let PanGestureRecognizerState = "panGestureRecognizer.state" 36 | } 37 | 38 | public static var WaveMaxHeight: CGFloat = 80.0 39 | public static var MinOffsetToPull: CGFloat = 150.0 40 | public static var LoadingContentInset: CGFloat = 70.0 41 | public static var LoadingViewSize: CGFloat = 30.0 42 | 43 | } -------------------------------------------------------------------------------- /SimpleWeather/Vender/DGElasticPullToRefresh/DGElasticPullToRefreshLoadingView.swift: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | The MIT License (MIT) 4 | 5 | Copyright (c) 2015 Danil Gontovnik 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | 25 | */ 26 | 27 | import UIKit 28 | 29 | public class DGElasticPullToRefreshLoadingView: UIView { 30 | 31 | // MARK: - 32 | // MARK: Vars 33 | 34 | lazy var maskLayer: CAShapeLayer = { 35 | let maskLayer = CAShapeLayer() 36 | maskLayer.backgroundColor = UIColor.clearColor().CGColor 37 | maskLayer.fillColor = UIColor.blackColor().CGColor 38 | maskLayer.actions = ["path" : NSNull(), "position" : NSNull(), "bounds" : NSNull()] 39 | self.layer.mask = maskLayer 40 | return maskLayer 41 | }() 42 | 43 | // MARK: - 44 | // MARK: Constructors 45 | 46 | public init() { 47 | super.init(frame: .zero) 48 | } 49 | 50 | public override init(frame: CGRect) { 51 | super.init(frame: .zero) 52 | } 53 | 54 | required public init?(coder aDecoder: NSCoder) { 55 | fatalError("init(coder:) has not been implemented") 56 | } 57 | 58 | // MARK: - 59 | // MARK: Methods 60 | 61 | public func setPullProgress(progress: CGFloat) { 62 | 63 | } 64 | 65 | public func startAnimating() { 66 | 67 | } 68 | 69 | public func stopLoading() { 70 | 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /SimpleWeather/View/SettingCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingCell.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | typedef NS_ENUM(NSInteger,SettingItemType){ 11 | SettingItemTypeDefault,//title,arrow 12 | SettingItemTypeChoose,//title,check 13 | SettingItemTypeContent//title,text 14 | }; 15 | 16 | @interface SettingCell : UITableViewCell 17 | 18 | - (instancetype)initWithType:(SettingItemType)type andBottomLine:(BOOL)addLine; 19 | 20 | @property(nonatomic, strong)UILabel *titleLabel; 21 | @property(nonatomic, strong)UILabel *contentLabel; 22 | @property(nonatomic, strong)UISwitch *chooseSwitch; 23 | @property(nonatomic, strong)UIView *lineView; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SimpleWeather/View/SettingCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // SettingCell.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/13/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "SettingCell.h" 10 | 11 | @implementation SettingCell 12 | 13 | #pragma mark - LifeCycle 14 | 15 | - (instancetype)initWithType:(SettingItemType)type andBottomLine:(BOOL)addLine{ 16 | if(self = [super init]){ 17 | if(type == SettingItemTypeContent){ 18 | [self addSubview:self.contentLabel]; 19 | }else if(type ==SettingItemTypeChoose){ 20 | [self addSubview:self.chooseSwitch]; 21 | } 22 | [self addSubview:self.titleLabel]; 23 | if(addLine){ 24 | [self addSubview:self.lineView]; 25 | } 26 | 27 | } 28 | return self; 29 | } 30 | 31 | 32 | #pragma mark - Getters and Setters 33 | 34 | - (UILabel *)titleLabel{ 35 | if(!_titleLabel){ 36 | _titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 0, 80, 43)];; 37 | _titleLabel.textAlignment = NSTextAlignmentLeft; 38 | _titleLabel.font = [UIFont systemFontOfSize:16]; 39 | } 40 | return _titleLabel; 41 | } 42 | 43 | - (UILabel *)contentLabel{ 44 | if(!_contentLabel){ 45 | _contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(GlobalScreenWidth-200-40, 0, 200, 43)]; 46 | _contentLabel.textAlignment = NSTextAlignmentRight; 47 | _contentLabel.font = [UIFont systemFontOfSize:16]; 48 | } 49 | return _contentLabel; 50 | } 51 | 52 | - (UISwitch *)chooseSwitch{ 53 | if(!_chooseSwitch){ 54 | _chooseSwitch = [[UISwitch alloc]initWithFrame:CGRectMake(GlobalScreenWidth-50-10, 6, 50, 43)]; 55 | } 56 | return _chooseSwitch; 57 | } 58 | 59 | - (UIView *)lineView{ 60 | if(!_lineView){ 61 | _lineView = [[UIView alloc]initWithFrame:CGRectMake(10, 42.5, GlobalScreenWidth-10, 0.5)]; 62 | _lineView.backgroundColor = [UIColor colorWithRed:188.0/255 green:188.0/255 blue:188.0/255 alpha:0.6f]; 63 | } 64 | return _lineView; 65 | } 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherBasicInfoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherBasicInfoView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/8/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherBasicInfoView : UIView 12 | 13 | @property(nonatomic, strong)WeatherBasicInfoModel *model; 14 | 15 | - (void)startAnimation; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherBounceView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherBounceView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/6/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | 13 | @interface WeatherBounceView : UIView 14 | 15 | -(void)startAnimation:(CGFloat)from to:(CGFloat)to; 16 | 17 | -(void)completeAnimation; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherCityCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherCityCell.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherCityCell : UITableViewCell 12 | 13 | - (void)setData:(NSString *)data; 14 | @end 15 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherCityCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherCityCell.m 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import "WeatherCityCell.h" 10 | 11 | @interface WeatherCityCell() 12 | 13 | @property(nonatomic, strong)UILabel *cityLable; 14 | @property(nonatomic, strong)UIView *lineView; 15 | 16 | @end 17 | 18 | @implementation WeatherCityCell 19 | 20 | #pragma mark - LifeCycle 21 | 22 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ 23 | if(self =[super initWithStyle:style reuseIdentifier:reuseIdentifier]){ 24 | [self setupView]; 25 | } 26 | return self; 27 | } 28 | 29 | - (void)setupView{ 30 | [self.contentView addSubview:self.cityLable]; 31 | [self.contentView addSubview:self.lineView]; 32 | } 33 | 34 | #pragma mark - Public Method 35 | 36 | - (void)setData:(NSString *)data{ 37 | self.cityLable.text = data; 38 | } 39 | 40 | #pragma mark - Getters ans Setters 41 | 42 | - (UILabel *)cityLable{ 43 | if(!_cityLable){ 44 | _cityLable = [[UILabel alloc]initWithFrame:CGRectMake(15, 0, self.width, 59)]; 45 | _cityLable.font = [UIFont systemFontOfSize:16]; 46 | _cityLable.textAlignment = NSTextAlignmentLeft; 47 | _cityLable.textColor = [UIColor colorWithRed:0.04 green:0.04 blue:0.04 alpha:1]; 48 | } 49 | return _cityLable; 50 | } 51 | 52 | - (UIView *)lineView{ 53 | if(!_lineView){ 54 | _lineView = [[UIView alloc]initWithFrame:CGRectMake(15, 59.5, self.width, 0.5)]; 55 | _lineView.backgroundColor = [UIColor colorWithRed:0.88 green:0.88 blue:0.89 alpha:1]; 56 | } 57 | return _lineView; 58 | } 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherDailyForcastView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherDailyForcastView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/8/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherDailyForcastView : UIView 12 | 13 | @property(nonatomic, strong)WeatherDailyForcastModel *model; 14 | 15 | -(void)startAnimation:(CGFloat)from to:(CGFloat)to; 16 | 17 | -(void)completeAnimation; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherForcastCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherForcastCell.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/11/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherForcastCell : UITableViewCell 12 | 13 | @property(nonatomic, strong)WeatherCityModel *model; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherLineView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherLineView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/6/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface WeatherLineView : UIView 12 | 13 | - (instancetype)initWithFrame:(CGRect)frame andTrendModels:(NSMutableArray *)trendModel; 14 | 15 | - (void)startMaskAnimation; 16 | 17 | - (void)startTopLineAnimation; 18 | 19 | - (void)startBottomAnimation; 20 | @end 21 | -------------------------------------------------------------------------------- /SimpleWeather/View/WeatherView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeatherView.h 3 | // SimpleWeather 4 | // 5 | // Created by 陈剑南 on 1/8/16. 6 | // Copyright © 2016 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol WeatherMenuDelegate 12 | 13 | - (void)menuViewDidClick; 14 | 15 | @end 16 | 17 | @interface WeatherView : UIView 18 | 19 | @property(nonatomic, strong)iddelegate; 20 | 21 | @property(nonatomic, strong)WeatherDataModel *model; 22 | 23 | - (void)startAnimation; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SimpleWeatherTests/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 | -------------------------------------------------------------------------------- /SimpleWeatherTests/SimpleWeatherTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SimpleWeatherTests.m 3 | // SimpleWeatherTests 4 | // 5 | // Created by 陈剑南 on 11/30/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SimpleWeatherTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation SimpleWeatherTests 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 | -------------------------------------------------------------------------------- /SimpleWeatherUITests/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 | -------------------------------------------------------------------------------- /SimpleWeatherUITests/SimpleWeatherUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // SimpleWeatherUITests.m 3 | // SimpleWeatherUITests 4 | // 5 | // Created by 陈剑南 on 11/30/15. 6 | // Copyright © 2015 Jimmy Chen. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface SimpleWeatherUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation SimpleWeatherUITests 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 | -------------------------------------------------------------------------------- /icondesign/SimpleWeatherIcon.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/icondesign/SimpleWeatherIcon.sketch -------------------------------------------------------------------------------- /screenshoot/screenshoot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cjnwan/SimpleWeather/2adb2c8975b4a9c8584cc98f4c49baa34d598683/screenshoot/screenshoot.gif --------------------------------------------------------------------------------