├── .gitignore
├── MYPerformanceKit.xcodeproj
├── project.pbxproj
└── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── MYPerformanceKit.xcworkspace
├── contents.xcworkspacedata
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── MYPerformanceKit
├── AppDelegate.h
├── AppDelegate.m
├── Assets.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ └── Contents.json
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Info.plist
├── ViewController.h
├── ViewController.m
└── main.m
├── MYPerformanceKitTests
├── Info.plist
└── MYPerformanceKitTests.m
├── MYPerformanceKitUITests
├── Info.plist
└── MYPerformanceKitUITests.m
├── Modules
├── CaptivePortalWIFI
│ ├── CaptivePortalWIFIManager.h
│ ├── CaptivePortalWIFIManager.m
│ └── Demo
│ │ ├── MYCaptivePortalWIFIViewController.h
│ │ └── MYCaptivePortalWIFIViewController.m
├── HUD
│ ├── MBProgressHUD+Extension.h
│ └── MBProgressHUD+Extension.m
├── MYSoundServiceKit
│ ├── Demo
│ │ ├── MYSoundServiceViewController.h
│ │ └── MYSoundServiceViewController.m
│ ├── MYSoundService.h
│ ├── MYSoundService.m
│ ├── MYTeleponyManager.h
│ ├── MYTeleponyManager.m
│ ├── MYVolumeManager.h
│ └── MYVolumeManager.m
├── Resources
│ └── brithdayMusic.mp3
└── ScrollViewPopGesture
│ ├── Demo
│ ├── MYCollectionViewController.h
│ ├── MYCollectionViewController.m
│ ├── MYMapViewController.h
│ ├── MYMapViewController.m
│ ├── MYPageViewController.h
│ ├── MYPageViewController.m
│ ├── MYPopGestureViewController.h
│ ├── MYPopGestureViewController.m
│ ├── MYScrollViewController.h
│ └── MYScrollViewController.m
│ ├── UIViewController+PopGesture.h
│ └── UIViewController+PopGesture.m
├── Podfile
├── Podfile.lock
└── Pods
├── Headers
├── Private
│ ├── MBProgressHUD
│ │ └── MBProgressHUD.h
│ └── MYKit
│ │ ├── CollectionViewPlaceHolderDelegate.h
│ │ ├── MYFoundationKit.h
│ │ ├── MYKit.h
│ │ ├── MYKitDefinition.h
│ │ ├── MYSafeFoundationContainer.h
│ │ ├── MYSafeKit.h
│ │ ├── MYSafeKitRecord.h
│ │ ├── MYUIKit.h
│ │ ├── NSArray+Addition.h
│ │ ├── NSArray+Collection.h
│ │ ├── NSArray+Safe.h
│ │ ├── NSArray+SafeAccess.h
│ │ ├── NSBundle+AppIcon.h
│ │ ├── NSData+YYAdd.h
│ │ ├── NSDate+Addition.h
│ │ ├── NSDate+NSDateRFC1123.h
│ │ ├── NSDictionary+Addition.h
│ │ ├── NSDictionary+Collection.h
│ │ ├── NSDictionary+Safe.h
│ │ ├── NSDictionary+SafeAccess.h
│ │ ├── NSMutableArray+Queue.h
│ │ ├── NSMutableArray+Safe.h
│ │ ├── NSMutableArray+SafeAccess.h
│ │ ├── NSMutableArray+Sort.h
│ │ ├── NSMutableArray+Stack.h
│ │ ├── NSMutableDictionary+Safe.h
│ │ ├── NSMutableString+Safe.h
│ │ ├── NSNotificationCenter+SafeKit.h
│ │ ├── NSNull+Safe.h
│ │ ├── NSNumber+Addition.h
│ │ ├── NSNumber+Round.h
│ │ ├── NSObject+Addition.h
│ │ ├── NSObject+AssociatedObject.h
│ │ ├── NSObject+Safe.h
│ │ ├── NSObject+SafeKVO.h
│ │ ├── NSObject+Swizzle.h
│ │ ├── NSObject+UnknowSelector.h
│ │ ├── NSString+Addition.h
│ │ ├── NSString+Collection.h
│ │ ├── NSString+Regular.h
│ │ ├── NSString+Safe.h
│ │ ├── NSString+Size.h
│ │ ├── NSString+Trims.h
│ │ ├── NSTimer+Safe.h
│ │ ├── NSURL+Param.h
│ │ ├── NSUserDefaults+SafeAccess.h
│ │ ├── SafeKitShield.h
│ │ ├── TableViewPlaceHolderDelegate.h
│ │ ├── UIAlertController+Blocks.h
│ │ ├── UIApplication+Authority.h
│ │ ├── UIApplication+NetworkActivityIndicator.h
│ │ ├── UIBarButtonItem+Addition.h
│ │ ├── UIBarButtonItem+Badge.h
│ │ ├── UIButton+Badge.h
│ │ ├── UIButton+CountDown.h
│ │ ├── UIButton+ImageTitleStyle.h
│ │ ├── UIButton+Indicator.h
│ │ ├── UIButton+Submitting.h
│ │ ├── UIButton+TouchAreaInsets.h
│ │ ├── UICollectionView+PlaceHolder.h
│ │ ├── UIColor+Addition.h
│ │ ├── UIDevice+Addition.h
│ │ ├── UIImage+Addition.h
│ │ ├── UIImage+Color.h
│ │ ├── UIImage+CornerRadius.h
│ │ ├── UIImage+ImageEffects.h
│ │ ├── UIImageView+CornerRadius.h
│ │ ├── UIImageView+RectCorner.h
│ │ ├── UILabel+AutomaticWriting.h
│ │ ├── UILabel+CountDown.h
│ │ ├── UILabel+LineSpacing.h
│ │ ├── UINavigationBar+Addition.h
│ │ ├── UINavigationController+Addition.h
│ │ ├── UINavigationController+BackButtonHandler.h
│ │ ├── UINavigationItem+Loading.h
│ │ ├── UINavigationItem+Margin.h
│ │ ├── UIResponder+Chain.h
│ │ ├── UIResponder+Router.h
│ │ ├── UIScreen+Addition.h
│ │ ├── UIScrollView+Addition.h
│ │ ├── UITableView+PlaceHolder.h
│ │ ├── UITextField+InputLimit.h
│ │ ├── UITextField+Shake.h
│ │ ├── UITextView+InputLengthCalculate.h
│ │ ├── UITextView+Select.h
│ │ ├── UIView+Addition.h
│ │ ├── UIView+Badge.h
│ │ ├── UIView+CornerRadii.h
│ │ ├── UIView+CustomBorder.h
│ │ ├── UIView+FindSubView.h
│ │ ├── UIView+Gesture.h
│ │ ├── UIView+Gradient.h
│ │ ├── UIView+Line.h
│ │ ├── UIView+Position.h
│ │ ├── UIView+SuperController.h
│ │ ├── UIViewController+ClassName.h
│ │ ├── UIViewController+PageViewLevel.h
│ │ ├── UIViewController+PreviousController.h
│ │ ├── UIViewController+TopViewController.h
│ │ └── UIWindow+Hierarchy.h
└── Public
│ ├── MBProgressHUD
│ └── MBProgressHUD.h
│ └── MYKit
│ ├── CollectionViewPlaceHolderDelegate.h
│ ├── MYFoundationKit.h
│ ├── MYKit.h
│ ├── MYKitDefinition.h
│ ├── MYSafeFoundationContainer.h
│ ├── MYSafeKit.h
│ ├── MYSafeKitRecord.h
│ ├── MYUIKit.h
│ ├── NSArray+Addition.h
│ ├── NSArray+Collection.h
│ ├── NSArray+Safe.h
│ ├── NSArray+SafeAccess.h
│ ├── NSBundle+AppIcon.h
│ ├── NSData+YYAdd.h
│ ├── NSDate+Addition.h
│ ├── NSDate+NSDateRFC1123.h
│ ├── NSDictionary+Addition.h
│ ├── NSDictionary+Collection.h
│ ├── NSDictionary+Safe.h
│ ├── NSDictionary+SafeAccess.h
│ ├── NSMutableArray+Queue.h
│ ├── NSMutableArray+Safe.h
│ ├── NSMutableArray+SafeAccess.h
│ ├── NSMutableArray+Sort.h
│ ├── NSMutableArray+Stack.h
│ ├── NSMutableDictionary+Safe.h
│ ├── NSMutableString+Safe.h
│ ├── NSNotificationCenter+SafeKit.h
│ ├── NSNull+Safe.h
│ ├── NSNumber+Addition.h
│ ├── NSNumber+Round.h
│ ├── NSObject+Addition.h
│ ├── NSObject+AssociatedObject.h
│ ├── NSObject+Safe.h
│ ├── NSObject+SafeKVO.h
│ ├── NSObject+Swizzle.h
│ ├── NSObject+UnknowSelector.h
│ ├── NSString+Addition.h
│ ├── NSString+Collection.h
│ ├── NSString+Regular.h
│ ├── NSString+Safe.h
│ ├── NSString+Size.h
│ ├── NSString+Trims.h
│ ├── NSTimer+Safe.h
│ ├── NSURL+Param.h
│ ├── NSUserDefaults+SafeAccess.h
│ ├── SafeKitShield.h
│ ├── TableViewPlaceHolderDelegate.h
│ ├── UIAlertController+Blocks.h
│ ├── UIApplication+Authority.h
│ ├── UIApplication+NetworkActivityIndicator.h
│ ├── UIBarButtonItem+Addition.h
│ ├── UIBarButtonItem+Badge.h
│ ├── UIButton+Badge.h
│ ├── UIButton+CountDown.h
│ ├── UIButton+ImageTitleStyle.h
│ ├── UIButton+Indicator.h
│ ├── UIButton+Submitting.h
│ ├── UIButton+TouchAreaInsets.h
│ ├── UICollectionView+PlaceHolder.h
│ ├── UIColor+Addition.h
│ ├── UIDevice+Addition.h
│ ├── UIImage+Addition.h
│ ├── UIImage+Color.h
│ ├── UIImage+CornerRadius.h
│ ├── UIImage+ImageEffects.h
│ ├── UIImageView+CornerRadius.h
│ ├── UIImageView+RectCorner.h
│ ├── UILabel+AutomaticWriting.h
│ ├── UILabel+CountDown.h
│ ├── UILabel+LineSpacing.h
│ ├── UINavigationBar+Addition.h
│ ├── UINavigationController+Addition.h
│ ├── UINavigationController+BackButtonHandler.h
│ ├── UINavigationItem+Loading.h
│ ├── UINavigationItem+Margin.h
│ ├── UIResponder+Chain.h
│ ├── UIResponder+Router.h
│ ├── UIScreen+Addition.h
│ ├── UIScrollView+Addition.h
│ ├── UITableView+PlaceHolder.h
│ ├── UITextField+InputLimit.h
│ ├── UITextField+Shake.h
│ ├── UITextView+InputLengthCalculate.h
│ ├── UITextView+Select.h
│ ├── UIView+Addition.h
│ ├── UIView+Badge.h
│ ├── UIView+CornerRadii.h
│ ├── UIView+CustomBorder.h
│ ├── UIView+FindSubView.h
│ ├── UIView+Gesture.h
│ ├── UIView+Gradient.h
│ ├── UIView+Line.h
│ ├── UIView+Position.h
│ ├── UIView+SuperController.h
│ ├── UIViewController+ClassName.h
│ ├── UIViewController+PageViewLevel.h
│ ├── UIViewController+PreviousController.h
│ ├── UIViewController+TopViewController.h
│ └── UIWindow+Hierarchy.h
├── MBProgressHUD
├── LICENSE
├── MBProgressHUD.h
├── MBProgressHUD.m
└── README.mdown
├── MYKit
├── LICENSE
├── MYKit
│ └── Classes
│ │ ├── Core
│ │ ├── MYKit.h
│ │ └── MYKitDefinition.h
│ │ ├── Foundation
│ │ ├── MYFoundationKit.h
│ │ ├── NSArray
│ │ │ ├── NSArray+Addition.h
│ │ │ ├── NSArray+Addition.m
│ │ │ ├── NSArray+Collection.h
│ │ │ ├── NSArray+Collection.m
│ │ │ ├── NSArray+SafeAccess.h
│ │ │ └── NSArray+SafeAccess.m
│ │ ├── NSBundle
│ │ │ ├── NSBundle+AppIcon.h
│ │ │ └── NSBundle+AppIcon.m
│ │ ├── NSData
│ │ │ ├── NSData+YYAdd.h
│ │ │ └── NSData+YYAdd.m
│ │ ├── NSDate
│ │ │ ├── NSDate+Addition.h
│ │ │ ├── NSDate+Addition.m
│ │ │ ├── NSDate+NSDateRFC1123.h
│ │ │ └── NSDate+NSDateRFC1123.m
│ │ ├── NSDictionary
│ │ │ ├── NSDictionary+Addition.h
│ │ │ ├── NSDictionary+Addition.m
│ │ │ ├── NSDictionary+Collection.h
│ │ │ ├── NSDictionary+Collection.m
│ │ │ ├── NSDictionary+SafeAccess.h
│ │ │ └── NSDictionary+SafeAccess.m
│ │ ├── NSMutableArray
│ │ │ ├── NSMutableArray+Queue.h
│ │ │ ├── NSMutableArray+Queue.m
│ │ │ ├── NSMutableArray+SafeAccess.h
│ │ │ ├── NSMutableArray+SafeAccess.m
│ │ │ ├── NSMutableArray+Sort.h
│ │ │ ├── NSMutableArray+Sort.m
│ │ │ ├── NSMutableArray+Stack.h
│ │ │ └── NSMutableArray+Stack.m
│ │ ├── NSNumber
│ │ │ ├── NSNumber+Addition.h
│ │ │ ├── NSNumber+Addition.m
│ │ │ ├── NSNumber+Round.h
│ │ │ └── NSNumber+Round.m
│ │ ├── NSObject
│ │ │ ├── NSObject+Addition.h
│ │ │ ├── NSObject+Addition.m
│ │ │ ├── NSObject+AssociatedObject.h
│ │ │ ├── NSObject+AssociatedObject.m
│ │ │ ├── NSObject+Swizzle.h
│ │ │ └── NSObject+Swizzle.m
│ │ ├── NSString
│ │ │ ├── NSString+Addition.h
│ │ │ ├── NSString+Addition.m
│ │ │ ├── NSString+Collection.h
│ │ │ ├── NSString+Collection.m
│ │ │ ├── NSString+Regular.h
│ │ │ ├── NSString+Regular.m
│ │ │ ├── NSString+Size.h
│ │ │ ├── NSString+Size.m
│ │ │ ├── NSString+Trims.h
│ │ │ └── NSString+Trims.m
│ │ ├── NSURL
│ │ │ ├── NSURL+Param.h
│ │ │ └── NSURL+Param.m
│ │ └── NSUserDefaults
│ │ │ ├── NSUserDefaults+SafeAccess.h
│ │ │ └── NSUserDefaults+SafeAccess.m
│ │ ├── SafeKit
│ │ ├── FoundationContainer
│ │ │ ├── MYSafeFoundationContainer.h
│ │ │ ├── MYSafeFoundationContainer.m
│ │ │ ├── NSArray+Safe.h
│ │ │ ├── NSArray+Safe.m
│ │ │ ├── NSDictionary+Safe.h
│ │ │ ├── NSDictionary+Safe.m
│ │ │ ├── NSMutableArray+Safe.h
│ │ │ ├── NSMutableArray+Safe.m
│ │ │ ├── NSMutableDictionary+Safe.h
│ │ │ ├── NSMutableDictionary+Safe.m
│ │ │ ├── NSMutableString+Safe.h
│ │ │ ├── NSMutableString+Safe.m
│ │ │ ├── NSObject+Safe.h
│ │ │ ├── NSObject+Safe.m
│ │ │ ├── NSString+Safe.h
│ │ │ └── NSString+Safe.m
│ │ ├── KVO
│ │ │ ├── NSObject+SafeKVO.h
│ │ │ └── NSObject+SafeKVO.m
│ │ ├── MYSafeKit.h
│ │ ├── MYSafeKit.m
│ │ ├── NSNull
│ │ │ ├── NSNull+Safe.h
│ │ │ └── NSNull+Safe.m
│ │ ├── NSTimer
│ │ │ ├── NSTimer+Safe.h
│ │ │ └── NSTimer+Safe.m
│ │ ├── Notification
│ │ │ ├── NSNotificationCenter+SafeKit.h
│ │ │ └── NSNotificationCenter+SafeKit.m
│ │ ├── Record
│ │ │ ├── MYSafeKitRecord.h
│ │ │ └── MYSafeKitRecord.m
│ │ ├── SafeKitShield.h
│ │ └── UnknowSelector
│ │ │ ├── NSObject+UnknowSelector.h
│ │ │ └── NSObject+UnknowSelector.m
│ │ └── UIKit
│ │ ├── MYUIKit.h
│ │ ├── UIAlertController
│ │ ├── UIAlertController+Blocks.h
│ │ └── UIAlertController+Blocks.m
│ │ ├── UIApplication
│ │ ├── UIApplication+Authority.h
│ │ ├── UIApplication+Authority.m
│ │ ├── UIApplication+NetworkActivityIndicator.h
│ │ └── UIApplication+NetworkActivityIndicator.m
│ │ ├── UIBarButtonItem
│ │ ├── UIBarButtonItem+Addition.h
│ │ ├── UIBarButtonItem+Addition.m
│ │ ├── UIBarButtonItem+Badge.h
│ │ └── UIBarButtonItem+Badge.m
│ │ ├── UIButton
│ │ ├── UIButton+Badge.h
│ │ ├── UIButton+Badge.m
│ │ ├── UIButton+CountDown.h
│ │ ├── UIButton+CountDown.m
│ │ ├── UIButton+ImageTitleStyle.h
│ │ ├── UIButton+ImageTitleStyle.m
│ │ ├── UIButton+Indicator.h
│ │ ├── UIButton+Indicator.m
│ │ ├── UIButton+Submitting.h
│ │ ├── UIButton+Submitting.m
│ │ ├── UIButton+TouchAreaInsets.h
│ │ └── UIButton+TouchAreaInsets.m
│ │ ├── UICollectionView
│ │ ├── CollectionViewPlaceHolderDelegate.h
│ │ ├── UICollectionView+PlaceHolder.h
│ │ └── UICollectionView+PlaceHolder.m
│ │ ├── UIColor
│ │ ├── UIColor+Addition.h
│ │ └── UIColor+Addition.m
│ │ ├── UIDevice
│ │ ├── UIDevice+Addition.h
│ │ └── UIDevice+Addition.m
│ │ ├── UIImage
│ │ ├── UIImage+Addition.h
│ │ ├── UIImage+Addition.m
│ │ ├── UIImage+Color.h
│ │ ├── UIImage+Color.m
│ │ ├── UIImage+CornerRadius.h
│ │ ├── UIImage+CornerRadius.m
│ │ ├── UIImage+ImageEffects.h
│ │ └── UIImage+ImageEffects.m
│ │ ├── UIImageView
│ │ ├── UIImageView+CornerRadius.h
│ │ ├── UIImageView+CornerRadius.m
│ │ ├── UIImageView+RectCorner.h
│ │ └── UIImageView+RectCorner.m
│ │ ├── UILabel
│ │ ├── UILabel+AutomaticWriting.h
│ │ ├── UILabel+AutomaticWriting.m
│ │ ├── UILabel+CountDown.h
│ │ ├── UILabel+CountDown.m
│ │ ├── UILabel+LineSpacing.h
│ │ └── UILabel+LineSpacing.m
│ │ ├── UINavigationBar
│ │ ├── UINavigationBar+Addition.h
│ │ └── UINavigationBar+Addition.m
│ │ ├── UINavigationController
│ │ ├── UINavigationController+Addition.h
│ │ ├── UINavigationController+Addition.m
│ │ ├── UINavigationController+BackButtonHandler.h
│ │ └── UINavigationController+BackButtonHandler.m
│ │ ├── UINavigationItem
│ │ ├── UINavigationItem+Loading.h
│ │ ├── UINavigationItem+Loading.m
│ │ ├── UINavigationItem+Margin.h
│ │ └── UINavigationItem+Margin.m
│ │ ├── UIResponder
│ │ ├── UIResponder+Chain.h
│ │ ├── UIResponder+Chain.m
│ │ ├── UIResponder+Router.h
│ │ └── UIResponder+Router.m
│ │ ├── UIScreen
│ │ ├── UIScreen+Addition.h
│ │ └── UIScreen+Addition.m
│ │ ├── UIScrollView
│ │ ├── UIScrollView+Addition.h
│ │ └── UIScrollView+Addition.m
│ │ ├── UITableView
│ │ ├── TableViewPlaceHolderDelegate.h
│ │ ├── UITableView+PlaceHolder.h
│ │ └── UITableView+PlaceHolder.m
│ │ ├── UITextField
│ │ ├── UITextField+InputLimit.h
│ │ ├── UITextField+InputLimit.m
│ │ ├── UITextField+Shake.h
│ │ └── UITextField+Shake.m
│ │ ├── UITextView
│ │ ├── UITextView+InputLengthCalculate.h
│ │ ├── UITextView+InputLengthCalculate.m
│ │ ├── UITextView+Select.h
│ │ └── UITextView+Select.m
│ │ ├── UIView
│ │ ├── UIView+Addition.h
│ │ ├── UIView+Addition.m
│ │ ├── UIView+Badge.h
│ │ ├── UIView+Badge.m
│ │ ├── UIView+CornerRadii.h
│ │ ├── UIView+CornerRadii.m
│ │ ├── UIView+CustomBorder.h
│ │ ├── UIView+CustomBorder.m
│ │ ├── UIView+FindSubView.h
│ │ ├── UIView+FindSubView.m
│ │ ├── UIView+Gesture.h
│ │ ├── UIView+Gesture.m
│ │ ├── UIView+Gradient.h
│ │ ├── UIView+Gradient.m
│ │ ├── UIView+Line.h
│ │ ├── UIView+Line.m
│ │ ├── UIView+Position.h
│ │ ├── UIView+Position.m
│ │ ├── UIView+SuperController.h
│ │ └── UIView+SuperController.m
│ │ ├── UIViewController
│ │ ├── UIViewController+ClassName.h
│ │ ├── UIViewController+ClassName.m
│ │ ├── UIViewController+PageViewLevel.h
│ │ ├── UIViewController+PageViewLevel.m
│ │ ├── UIViewController+PreviousController.h
│ │ ├── UIViewController+PreviousController.m
│ │ ├── UIViewController+TopViewController.h
│ │ └── UIViewController+TopViewController.m
│ │ └── UIWindow
│ │ ├── UIWindow+Hierarchy.h
│ │ └── UIWindow+Hierarchy.m
└── README.md
├── Manifest.lock
├── Pods.xcodeproj
└── project.pbxproj
└── Target Support Files
├── MBProgressHUD
├── MBProgressHUD-dummy.m
├── MBProgressHUD-prefix.pch
└── MBProgressHUD.xcconfig
├── MYKit
├── MYKit-dummy.m
├── MYKit-prefix.pch
└── MYKit.xcconfig
└── Pods-MYPerformanceKit
├── Pods-MYPerformanceKit-acknowledgements.markdown
├── Pods-MYPerformanceKit-acknowledgements.plist
├── Pods-MYPerformanceKit-dummy.m
├── Pods-MYPerformanceKit.debug.xcconfig
└── Pods-MYPerformanceKit.release.xcconfig
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | .DS_Store
3 | */build/*
4 | !*.pbxuser
5 | !*.pbxproj
6 | !default.pbxuser
7 | *.mode1v3
8 | !default.mode1v3
9 | *.mode2v3
10 | !default.mode2v3
11 | *.perspectivev3
12 | !default.perspectivev3
13 | xcuserdata/
14 | *.moved-aside
15 | DerivedData
16 | .idea/
17 | *.hmap
18 | *.xccheckout
19 | !*.xcworkspace
20 | !default.xcworkspace
21 |
22 | #CocoaPods
23 | !Pods
24 | !Podfile
25 | !Podfile.lock
26 |
--------------------------------------------------------------------------------
/MYPerformanceKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/MYPerformanceKit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/MYPerformanceKit.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/MYPerformanceKit.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/MYPerformanceKit/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. 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 |
--------------------------------------------------------------------------------
/MYPerformanceKit/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "20x20",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "20x20",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "29x29",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "29x29",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "40x40",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "40x40",
31 | "scale" : "3x"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "size" : "60x60",
36 | "scale" : "2x"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "size" : "60x60",
41 | "scale" : "3x"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "size" : "20x20",
46 | "scale" : "1x"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "size" : "20x20",
51 | "scale" : "2x"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "size" : "29x29",
56 | "scale" : "1x"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "size" : "29x29",
61 | "scale" : "2x"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "size" : "40x40",
66 | "scale" : "1x"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "size" : "40x40",
71 | "scale" : "2x"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "size" : "76x76",
76 | "scale" : "1x"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "size" : "76x76",
81 | "scale" : "2x"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "size" : "83.5x83.5",
86 | "scale" : "2x"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "size" : "1024x1024",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/MYPerformanceKit/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/MYPerformanceKit/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 |
--------------------------------------------------------------------------------
/MYPerformanceKit/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIMainStoryboardFile
26 | Main
27 | UIRequiredDeviceCapabilities
28 |
29 | armv7
30 |
31 | UISupportedInterfaceOrientations
32 |
33 | UIInterfaceOrientationPortrait
34 | UIInterfaceOrientationLandscapeLeft
35 | UIInterfaceOrientationLandscapeRight
36 |
37 | UISupportedInterfaceOrientations~ipad
38 |
39 | UIInterfaceOrientationPortrait
40 | UIInterfaceOrientationPortraitUpsideDown
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/MYPerformanceKit/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/MYPerformanceKit/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. 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 |
--------------------------------------------------------------------------------
/MYPerformanceKitTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/MYPerformanceKitTests/MYPerformanceKitTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYPerformanceKitTests.m
3 | // MYPerformanceKitTests
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MYPerformanceKitTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation MYPerformanceKitTests
16 |
17 | - (void)setUp {
18 | // Put setup code here. This method is called before the invocation of each test method in the class.
19 | }
20 |
21 | - (void)tearDown {
22 | // Put teardown code here. This method is called after the invocation of each test method in the class.
23 | }
24 |
25 | - (void)testExample {
26 | // This is an example of a functional test case.
27 | // Use XCTAssert and related functions to verify your tests produce the correct results.
28 | }
29 |
30 | - (void)testPerformanceExample {
31 | // This is an example of a performance test case.
32 | [self measureBlock:^{
33 | // Put the code you want to measure the time of here.
34 | }];
35 | }
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/MYPerformanceKitUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
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 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/MYPerformanceKitUITests/MYPerformanceKitUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYPerformanceKitUITests.m
3 | // MYPerformanceKitUITests
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MYPerformanceKitUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation MYPerformanceKitUITests
16 |
17 | - (void)setUp {
18 | // Put setup code here. This method is called before the invocation of each test method in the class.
19 |
20 | // In UI tests it is usually best to stop immediately when a failure occurs.
21 | self.continueAfterFailure = NO;
22 |
23 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
24 | [[[XCUIApplication alloc] init] launch];
25 |
26 | // 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.
27 | }
28 |
29 | - (void)tearDown {
30 | // Put teardown code here. This method is called after the invocation of each test method in the class.
31 | }
32 |
33 | - (void)testExample {
34 | // Use recording to get started writing UI tests.
35 | // Use XCTAssert and related functions to verify your tests produce the correct results.
36 | }
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Modules/CaptivePortalWIFI/CaptivePortalWIFIManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // CaptivePortalWIFIManager.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface CaptivePortalWIFIManager : NSObject
14 |
15 | + (instancetype)sharedInstance;
16 |
17 | /// 开启测试模式,开启后,每次验证都会提示需要认证WIFI
18 | @property (assign, nonatomic) BOOL openTestMode;
19 |
20 | /**
21 | * 检查当前wifi是否需要验证密码
22 | * needAlert: 为YES时,若当前wifi需要验证密码,则会弹出警告框提示用户
23 | */
24 | - (void)checkIsWifiNeedAuthPasswordWithComplection:(void (^)(BOOL needAuthPassword))complection
25 | needAlert:(BOOL)needAlert;
26 |
27 | @end
28 |
29 | NS_ASSUME_NONNULL_END
30 |
--------------------------------------------------------------------------------
/Modules/CaptivePortalWIFI/Demo/MYCaptivePortalWIFIViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYCaptivePortalWIFIViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYCaptivePortalWIFIViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/HUD/MBProgressHUD+Extension.h:
--------------------------------------------------------------------------------
1 | //
2 | // MBProgressHUD+Extension.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import "MBProgressHUD.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MBProgressHUD (Extension)
14 |
15 | + (void)showTipMessageInWindow:(NSString *)message;
16 | + (void)showTipMessageInView:(NSString *)message;
17 | + (void)showTipMessageInWindow:(NSString *)message timer:(int)aTimer;
18 | + (void)showTipMessageInView:(NSString *)message timer:(int)aTimer;
19 |
20 | + (void)showActivityMessageInView;
21 | + (void)showActivityMessageInWindow;
22 | + (void)showActivityMessageInWindow:(NSString *)message;
23 | + (void)showActivityMessageInView:(NSString *)message;
24 | + (void)showActivityMessageInWindow:(NSString *)message timer:(int)aTimer;
25 | + (void)showActivityMessageInView:(NSString *)message timer:(int)aTimer;
26 |
27 | + (void)showSuccessMessage:(NSString *)Message;
28 | + (void)showErrorMessage:(NSString *)Message;
29 | + (void)showInfoMessage:(NSString *)Message;
30 | + (void)showWarnMessage:(NSString *)Message;
31 |
32 | + (void)showCustomIconInWindow:(NSString *)iconName message:(NSString *)message;
33 | + (void)showCustomIconInView:(NSString *)iconName message:(NSString *)message;
34 |
35 | + (void)hideHUD;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/Modules/MYSoundServiceKit/Demo/MYSoundServiceViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYSoundServiceViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/21.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYSoundServiceViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/MYSoundServiceKit/MYSoundService.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYSoundService.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2018/3/20.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface MYSoundService : NSObject
13 |
14 | + (instancetype)sharedInstance;
15 |
16 | @property (nonatomic, strong) AVAudioPlayer *audioPlayer;
17 | @property (nonatomic, assign) BOOL canShake;
18 |
19 | /**
20 | * @brief play sound with file name. e.m sound.aiff
21 | */
22 |
23 | - (void)playSoundWithName:(NSString *)soundName ofType:(NSString*)type;
24 |
25 | /**
26 | * @brief control the volume of AudioPlayer
27 | */
28 |
29 | - (void)setAudioPlayerVolume;
30 |
31 | /**
32 | * @brief control the shake when play the sound
33 | */
34 | - (void)openShake:(BOOL)canshake;
35 |
36 | /**
37 | * @brief control the cache sound
38 | */
39 | - (void)needCache:(BOOL)isNeed;
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Modules/MYSoundServiceKit/MYTeleponyManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYTeleponyManager.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2018/3/20.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MYTeleponyManager : NSObject
12 |
13 | + (instancetype)sharedInstance;
14 |
15 | - (BOOL)isConnected;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Modules/MYSoundServiceKit/MYTeleponyManager.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYTeleponyManager.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2018/3/20.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "MYTeleponyManager.h"
10 | #import
11 | #import
12 | #import
13 |
14 | #define CurrentSystemVersion ([[[UIDevice currentDevice] systemVersion] floatValue])
15 |
16 | @interface MYTeleponyManager ()
17 |
18 | @property (nonatomic, strong) CXCallObserver *cXCallObserver;
19 | @property (nonatomic, assign) BOOL currentCallState;
20 | @property (nonatomic, strong) dispatch_queue_t phoneCallQueue;
21 |
22 | @end
23 |
24 | @implementation MYTeleponyManager
25 |
26 | + (instancetype)sharedInstance {
27 | static MYTeleponyManager *instance;
28 | static dispatch_once_t onceToken;
29 | dispatch_once(&onceToken, ^{
30 | instance = [[MYTeleponyManager alloc] init];
31 | });
32 | return instance;
33 | }
34 |
35 | - (instancetype)init {
36 | self = [super init];
37 | if (self) {
38 | if (CurrentSystemVersion >= 10.0) {
39 | _cXCallObserver = [[CXCallObserver alloc] init];
40 | _phoneCallQueue = dispatch_queue_create("MYPhoneCallObserverQueue", DISPATCH_QUEUE_SERIAL);
41 | [_cXCallObserver setDelegate:self queue:_phoneCallQueue];
42 | }
43 | }
44 | return self;
45 | }
46 |
47 | - (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
48 | if ([call hasConnected]) {
49 | self.currentCallState = YES;
50 | }
51 | if ([call isOnHold]) {
52 | self.currentCallState = YES;
53 | }
54 | if ([call isOutgoing]) {
55 | self.currentCallState = YES;
56 | }
57 | if ([call hasEnded]) {
58 | self.currentCallState = NO;
59 | }
60 | }
61 |
62 | - (BOOL)isConnected {
63 | if (CurrentSystemVersion >= 10.0) {
64 | return self.currentCallState;
65 | } else {
66 | return NO;
67 | }
68 | }
69 |
70 | @end
71 |
--------------------------------------------------------------------------------
/Modules/MYSoundServiceKit/MYVolumeManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYVolumeManager.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2018/3/20.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MYVolumeManager : NSObject
12 |
13 | @property (nonatomic, assign) CGFloat volumeValue;
14 |
15 | + (instancetype)shareInstance;
16 |
17 | // 耳机状态监听
18 | - (void)setAudioChangeNotification;
19 | // 检测耳机状态 是否插入
20 | - (BOOL)isHeadsetPluggedIn;
21 | // 当前音量
22 | - (float)getCurrentVolume;
23 | // 移除 MPVolumeView
24 | - (void)removeMPVolumeView;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Modules/Resources/brithdayMusic.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sunjinshuai/MYPerformanceKit/39ec2cf96b896596f9a2a6ae33c9c1cc3eb9ac35/Modules/Resources/brithdayMusic.mp3
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYCollectionViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYCollectionViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYCollectionViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYCollectionViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYCollectionViewController.m
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import "MYCollectionViewController.h"
10 | #import "UIViewController+PopGesture.h"
11 |
12 | @interface MYCollectionViewController ()
13 |
14 | @end
15 |
16 | @implementation MYCollectionViewController
17 |
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 | [self configCollectionView];
21 | }
22 |
23 | - (void)configCollectionView {
24 | UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
25 | UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64) collectionViewLayout:layout];
26 | collectionView.contentSize = CGSizeMake(1000, 0);
27 | collectionView.backgroundColor = [UIColor magentaColor];
28 | [self.view addSubview:collectionView];
29 |
30 | // collectionView需要支持侧滑返回
31 | [self addPopGestureToView:collectionView];
32 | }
33 |
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYMapViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYMapViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYMapViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYMapViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYMapViewController.m
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import "MYMapViewController.h"
10 | #import "UIViewController+PopGesture.h"
11 | #import
12 |
13 | @interface MYMapViewController ()
14 |
15 | @end
16 |
17 | @implementation MYMapViewController
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | [self configMapView];
22 | }
23 |
24 | - (void)configMapView {
25 | MKMapView *mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64)];
26 | [self.view addSubview:mapView];
27 |
28 | // mapView需要支持侧滑返回
29 | [self addPopGestureToView:mapView];
30 | }
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYPageViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYPageViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYPageViewController : UIViewController
14 |
15 | @end
16 |
17 | @interface MYSubScrollViewController : UIViewController
18 |
19 | @property (nonatomic, strong) UIScrollView *scrollView;
20 |
21 | @end
22 |
23 | NS_ASSUME_NONNULL_END
24 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYPopGestureViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYPopGestureViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYPopGestureViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYScrollViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYScrollViewController.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface MYScrollViewController : UIViewController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/Demo/MYScrollViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYScrollViewController.m
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import "MYScrollViewController.h"
10 | #import "UIViewController+PopGesture.h"
11 |
12 | @interface MYScrollViewController ()
13 |
14 | @end
15 |
16 | @implementation MYScrollViewController
17 |
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | [self configScrollView];
22 | }
23 |
24 | - (void)configScrollView {
25 | UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 64)];
26 | scrollView.contentSize = CGSizeMake(1000, 0);
27 | scrollView.backgroundColor = [UIColor cyanColor];
28 | [self.view addSubview:scrollView];
29 |
30 | // scrollView需要支持侧滑返回
31 | [self addPopGestureToView:scrollView];
32 |
33 | // 禁止该页面侧滑返回
34 | // self.tz_interactivePopDisabled = YES;
35 | }
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Modules/ScrollViewPopGesture/UIViewController+PopGesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+PopGesture.h
3 | // MYPerformanceKit
4 | //
5 | // Created by sunjinshuai on 2019/4/24.
6 | // Copyright © 2019 sunjinshuai. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UINavigationController (PopGesture)
14 |
15 | @end
16 |
17 | @interface UIViewController (PopGesture)
18 |
19 | /// 给view添加侧滑返回效果
20 | - (void)addPopGestureToView:(UIView *)view;
21 |
22 | /// 禁止该页面的侧滑返回
23 | @property (nonatomic, assign) BOOL interactivePopDisabled;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 |
2 | platform :ios, "8.0"
3 |
4 | target 'MYPerformanceKit' do
5 | pod 'MBProgressHUD'
6 | pod 'MYKit'
7 | end
8 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - MBProgressHUD (1.1.0)
3 | - MYKit (1.1.3):
4 | - MYKit/Core (= 1.1.3)
5 | - MYKit/Core (1.1.3):
6 | - MYKit/Foundation
7 | - MYKit/SafeKit
8 | - MYKit/UIKit
9 | - MYKit/Foundation (1.1.3)
10 | - MYKit/SafeKit (1.1.3):
11 | - MYKit/Foundation
12 | - MYKit/UIKit (1.1.3):
13 | - MYKit/Foundation
14 |
15 | DEPENDENCIES:
16 | - MBProgressHUD
17 | - MYKit
18 |
19 | SPEC REPOS:
20 | https://github.com/cocoapods/specs.git:
21 | - MBProgressHUD
22 | - MYKit
23 |
24 | SPEC CHECKSUMS:
25 | MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
26 | MYKit: 36c106e574158ffbbf58cf1057f9ea71b713a653
27 |
28 | PODFILE CHECKSUM: 4fb032f5fa9f0ba11c944aef1a380d90439e03bf
29 |
30 | COCOAPODS: 1.6.1
31 |
--------------------------------------------------------------------------------
/Pods/Headers/Private/MBProgressHUD/MBProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../MBProgressHUD/MBProgressHUD.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/CollectionViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UICollectionView/CollectionViewPlaceHolderDelegate.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYFoundationKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/MYFoundationKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Core/MYKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYKitDefinition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Core/MYKitDefinition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYSafeFoundationContainer.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/MYSafeFoundationContainer.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYSafeKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/MYSafeKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYSafeKitRecord.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/Record/MYSafeKitRecord.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/MYUIKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/MYUIKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSArray+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSArray+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSArray+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSArray+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSBundle+AppIcon.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSBundle/NSBundle+AppIcon.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSData+YYAdd.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSData/NSData+YYAdd.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDate+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDate/NSDate+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDate+NSDateRFC1123.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDate/NSDate+NSDateRFC1123.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDictionary+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDictionary+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSDictionary+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSDictionary+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableArray+Queue.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Queue.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableArray+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableArray+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableArray+Sort.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Sort.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableArray+Stack.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Stack.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableDictionary+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSMutableString+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableString+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSNotificationCenter+SafeKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/Notification/NSNotificationCenter+SafeKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSNull+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/NSNull/NSNull+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSNumber+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSNumber+Round.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Round.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+AssociatedObject.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+AssociatedObject.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSObject+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+SafeKVO.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/KVO/NSObject+SafeKVO.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+Swizzle.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Swizzle.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSObject+UnknowSelector.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/UnknowSelector/NSObject+UnknowSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Regular.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Regular.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSString+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Size.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Size.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSString+Trims.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Trims.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSTimer+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/NSTimer/NSTimer+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSURL+Param.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSURL/NSURL+Param.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/NSUserDefaults+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSUserDefaults/NSUserDefaults+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/SafeKitShield.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/SafeKitShield.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/TableViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITableView/TableViewPlaceHolderDelegate.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIAlertController+Blocks.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIAlertController/UIAlertController+Blocks.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIApplication+Authority.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+Authority.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIApplication+NetworkActivityIndicator.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+NetworkActivityIndicator.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIBarButtonItem+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIBarButtonItem+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+CountDown.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+CountDown.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+ImageTitleStyle.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+ImageTitleStyle.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+Indicator.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Indicator.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+Submitting.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Submitting.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIButton+TouchAreaInsets.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+TouchAreaInsets.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UICollectionView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UICollectionView/UICollectionView+PlaceHolder.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIColor+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIColor/UIColor+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIDevice+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIDevice/UIDevice+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImage+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImage+Color.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Color.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImage+CornerRadius.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+CornerRadius.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImage+ImageEffects.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+ImageEffects.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImageView+CornerRadius.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+CornerRadius.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIImageView+RectCorner.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+RectCorner.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UILabel+AutomaticWriting.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+AutomaticWriting.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UILabel+CountDown.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+CountDown.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UILabel+LineSpacing.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+LineSpacing.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UINavigationBar+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationBar/UINavigationBar+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UINavigationController+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UINavigationController+BackButtonHandler.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+BackButtonHandler.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UINavigationItem+Loading.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Loading.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UINavigationItem+Margin.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Margin.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIResponder+Chain.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Chain.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIResponder+Router.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Router.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIScreen+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIScreen/UIScreen+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIScrollView+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIScrollView/UIScrollView+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UITableView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITableView/UITableView+PlaceHolder.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UITextField+InputLimit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextField/UITextField+InputLimit.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UITextField+Shake.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextField/UITextField+Shake.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UITextView+InputLengthCalculate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextView/UITextView+InputLengthCalculate.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UITextView+Select.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextView/UITextView+Select.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+CornerRadii.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+CornerRadii.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+CustomBorder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+CustomBorder.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+FindSubView.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+FindSubView.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Gesture.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Gesture.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Gradient.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Gradient.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Line.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Line.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+Position.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Position.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIView+SuperController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+SuperController.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIViewController+ClassName.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+ClassName.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIViewController+PageViewLevel.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PageViewLevel.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIViewController+PreviousController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PreviousController.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIViewController+TopViewController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+TopViewController.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MYKit/UIWindow+Hierarchy.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIWindow/UIWindow+Hierarchy.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MBProgressHUD/MBProgressHUD.h:
--------------------------------------------------------------------------------
1 | ../../../MBProgressHUD/MBProgressHUD.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/CollectionViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UICollectionView/CollectionViewPlaceHolderDelegate.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYFoundationKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/MYFoundationKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Core/MYKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYKitDefinition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Core/MYKitDefinition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYSafeFoundationContainer.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/MYSafeFoundationContainer.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYSafeKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/MYSafeKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYSafeKitRecord.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/Record/MYSafeKitRecord.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/MYUIKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/MYUIKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSArray+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSArray+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSArray+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSArray+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSArray/NSArray+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSBundle+AppIcon.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSBundle/NSBundle+AppIcon.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSData+YYAdd.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSData/NSData+YYAdd.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDate+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDate/NSDate+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDate+NSDateRFC1123.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDate/NSDate+NSDateRFC1123.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDictionary+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDictionary+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSDictionary+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSDictionary+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableArray+Queue.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Queue.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableArray+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableArray+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableArray+Sort.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Sort.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableArray+Stack.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Stack.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableDictionary+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSMutableString+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableString+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSNotificationCenter+SafeKit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/Notification/NSNotificationCenter+SafeKit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSNull+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/NSNull/NSNull+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSNumber+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSNumber+Round.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Round.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+AssociatedObject.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+AssociatedObject.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSObject+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+SafeKVO.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/KVO/NSObject+SafeKVO.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+Swizzle.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Swizzle.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSObject+UnknowSelector.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/UnknowSelector/NSObject+UnknowSelector.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Collection.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Collection.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Regular.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Regular.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSString+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Size.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Size.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSString+Trims.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSString/NSString+Trims.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSTimer+Safe.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/NSTimer/NSTimer+Safe.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSURL+Param.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSURL/NSURL+Param.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/NSUserDefaults+SafeAccess.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/Foundation/NSUserDefaults/NSUserDefaults+SafeAccess.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/SafeKitShield.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/SafeKit/SafeKitShield.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/TableViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITableView/TableViewPlaceHolderDelegate.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIAlertController+Blocks.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIAlertController/UIAlertController+Blocks.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIApplication+Authority.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+Authority.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIApplication+NetworkActivityIndicator.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+NetworkActivityIndicator.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIBarButtonItem+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIBarButtonItem+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+CountDown.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+CountDown.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+ImageTitleStyle.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+ImageTitleStyle.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+Indicator.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Indicator.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+Submitting.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Submitting.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIButton+TouchAreaInsets.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIButton/UIButton+TouchAreaInsets.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UICollectionView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UICollectionView/UICollectionView+PlaceHolder.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIColor+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIColor/UIColor+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIDevice+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIDevice/UIDevice+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImage+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImage+Color.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Color.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImage+CornerRadius.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+CornerRadius.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImage+ImageEffects.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImage/UIImage+ImageEffects.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImageView+CornerRadius.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+CornerRadius.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIImageView+RectCorner.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+RectCorner.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UILabel+AutomaticWriting.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+AutomaticWriting.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UILabel+CountDown.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+CountDown.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UILabel+LineSpacing.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UILabel/UILabel+LineSpacing.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UINavigationBar+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationBar/UINavigationBar+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UINavigationController+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UINavigationController+BackButtonHandler.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+BackButtonHandler.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UINavigationItem+Loading.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Loading.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UINavigationItem+Margin.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Margin.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIResponder+Chain.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Chain.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIResponder+Router.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Router.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIScreen+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIScreen/UIScreen+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIScrollView+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIScrollView/UIScrollView+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UITableView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITableView/UITableView+PlaceHolder.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UITextField+InputLimit.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextField/UITextField+InputLimit.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UITextField+Shake.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextField/UITextField+Shake.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UITextView+InputLengthCalculate.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextView/UITextView+InputLengthCalculate.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UITextView+Select.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UITextView/UITextView+Select.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Addition.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Addition.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Badge.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Badge.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+CornerRadii.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+CornerRadii.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+CustomBorder.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+CustomBorder.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+FindSubView.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+FindSubView.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Gesture.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Gesture.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Gradient.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Gradient.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Line.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Line.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+Position.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+Position.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIView+SuperController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIView/UIView+SuperController.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIViewController+ClassName.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+ClassName.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIViewController+PageViewLevel.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PageViewLevel.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIViewController+PreviousController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PreviousController.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIViewController+TopViewController.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+TopViewController.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MYKit/UIWindow+Hierarchy.h:
--------------------------------------------------------------------------------
1 | ../../../MYKit/MYKit/Classes/UIKit/UIWindow/UIWindow+Hierarchy.h
--------------------------------------------------------------------------------
/Pods/MBProgressHUD/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright © 2009-2016 Matej Bukovinski
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/MYKit/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2019 sunjinshuai
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/MYKit/MYKit/Classes/Core/MYKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYKit.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for LPDAdditions.
12 | FOUNDATION_EXPORT double MYAdditionsVersionNumber;
13 |
14 | //! Project version string for LPDAdditions.
15 | FOUNDATION_EXPORT const unsigned char MYAdditionsVersionString[];
16 |
17 | #import "MYSafeKit.h"
18 | #import "MYFoundationKit.h"
19 | #import "MYUIKit.h"
20 | #import "MYKitDefinition.h"
21 |
22 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/MYFoundationKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYFoundationKit.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/4/26.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #ifndef MYFoundationKit_h
10 | #define MYFoundationKit_h
11 |
12 | #import "NSData+YYAdd.h"
13 | #import "NSArray+Collection.h"
14 | #import "NSArray+SafeAccess.h"
15 | #import "NSArray+Addition.h"
16 | #import "NSMutableArray+Sort.h"
17 | #import "NSMutableArray+Stack.h"
18 | #import "NSMutableArray+Queue.h"
19 | #import "NSMutableArray+SafeAccess.h"
20 | #import "NSDictionary+Addition.h"
21 | #import "NSDictionary+SafeAccess.h"
22 | #import "NSDictionary+Collection.h"
23 | #import "NSBundle+AppIcon.h"
24 | #import "NSDate+NSDateRFC1123.h"
25 | #import "NSDate+Addition.h"
26 | #import "NSUserDefaults+SafeAccess.h"
27 | #import "NSURL+Param.h"
28 | #import "NSObject+Addition.h"
29 | #import "NSObject+Swizzle.h"
30 | #import "NSObject+AssociatedObject.h"
31 | #import "NSNumber+Round.h"
32 | #import "NSNumber+Addition.h"
33 | #import "NSString+Addition.h"
34 | #import "NSString+Regular.h"
35 | #import "NSString+Trims.h"
36 | #import "NSString+Size.h"
37 | #import "NSString+Collection.h"
38 |
39 | #endif /* MYFoundationKit_h */
40 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSArray/NSArray+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/11/18.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (Addition)
12 |
13 | /**
14 | * 转换成JSON的NSString
15 | */
16 | - (NSString *)arrayToJson;
17 |
18 | /**
19 | Creates and returns an array from a specified property list data.
20 |
21 | @param plist A property list data whose root object is an array.
22 | @return A new array created from the binary plist data, or nil if an error occurs.
23 | */
24 | + (nullable NSArray *)arrayWithPlistData:(NSData *)plist;
25 |
26 | /**
27 | Creates and returns an array from a specified property list xml string.
28 |
29 | @param plist A property list xml string whose root object is an array.
30 | @return A new array created from the plist string, or nil if an error occurs.
31 | */
32 | + (nullable NSArray *)arrayWithPlistString:(NSString *)plist;
33 |
34 | /**
35 | Serialize the array to a binary property list data.
36 |
37 | @return A binary plist data, or nil if an error occurs.
38 | */
39 | - (nullable NSData *)plistData;
40 |
41 | /**
42 | Serialize the array to a xml property list string.
43 |
44 | @return A plist xml string, or nil if an error occurs.
45 | */
46 | - (nullable NSString *)plistString;
47 |
48 | /**
49 | Returns the object located at a random index.
50 |
51 | @return The object in the array with a random index value.
52 | If the array is empty, returns nil.
53 | */
54 | - (nullable id)randomObject;
55 |
56 | /**
57 | Convert object to json string. return nil if an error occurs.
58 | NSString/NSNumber/NSDictionary/NSArray
59 | */
60 | - (nullable NSString *)jsonStringEncoded;
61 |
62 | /**
63 | Convert object to json string formatted. return nil if an error occurs.
64 | */
65 | - (nullable NSString *)jsonPrettyStringEncoded;
66 |
67 | @end
68 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSArray/NSArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+SafeAccess.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (SafeAccess)
12 |
13 | /*!
14 | @method objectWithIndex:
15 | @abstract 检查是否越界和NSNull如果是返回nil
16 | @result 返回对象
17 | */
18 | - (id)objectWithIndex:(NSUInteger)index;
19 |
20 | - (NSString *)stringWithIndex:(NSUInteger)index;
21 |
22 | - (NSNumber *)numberWithIndex:(NSUInteger)index;
23 |
24 | - (NSDecimalNumber *)decimalNumberWithIndex:(NSUInteger)index;
25 |
26 | - (NSArray *)arrayWithIndex:(NSUInteger)index;
27 |
28 | - (NSDictionary *)dictionaryWithIndex:(NSUInteger)index;
29 |
30 | - (NSInteger)integerWithIndex:(NSUInteger)index;
31 |
32 | - (NSUInteger)unsignedIntegerWithIndex:(NSUInteger)index;
33 |
34 | - (BOOL)boolWithIndex:(NSUInteger)index;
35 |
36 | - (int16_t)int16WithIndex:(NSUInteger)index;
37 |
38 | - (int32_t)int32WithIndex:(NSUInteger)index;
39 |
40 | - (int64_t)int64WithIndex:(NSUInteger)index;
41 |
42 | - (char)charWithIndex:(NSUInteger)index;
43 |
44 | - (short)shortWithIndex:(NSUInteger)index;
45 |
46 | - (float)floatWithIndex:(NSUInteger)index;
47 |
48 | - (double)doubleWithIndex:(NSUInteger)index;
49 |
50 | - (NSDate *)dateWithIndex:(NSUInteger)index dateFormat:(NSString *)dateFormat;
51 |
52 | - (CGFloat)my_floatWithIndex:(NSUInteger)index;
53 |
54 | - (CGPoint)my_pointWithIndex:(NSUInteger)index;
55 |
56 | - (CGSize)my_sizeWithIndex:(NSUInteger)index;
57 |
58 | - (CGRect)my_rectWithIndex:(NSUInteger)index;
59 |
60 | @end
61 |
62 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSBundle/NSBundle+AppIcon.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSBundle+AppIcon.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSBundle (AppIcon)
12 |
13 | /**
14 | 获取app的icon图标
15 |
16 | @return icon图标
17 | */
18 | + (UIImage *)appIcon;
19 |
20 | /**
21 | 打印app里面所有启动图片名称信息
22 |
23 | @return 启动图片名称信息数组
24 | */
25 | + (NSArray *)getAllLaunchImageInfo;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSBundle/NSBundle+AppIcon.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSBundle+AppIcon.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSBundle+AppIcon.h"
10 |
11 | @implementation NSBundle (AppIcon)
12 |
13 | + (UIImage *)appIcon {
14 | NSDictionary *infoPlist = [[self mainBundle] infoDictionary];
15 | NSString *appIcon = [[infoPlist valueForKeyPath:@"CFBundleIcons.CFBundlePrimaryIcon.CFBundleIconFiles"] lastObject];
16 | return [UIImage imageNamed:appIcon];
17 | }
18 |
19 | + (NSArray *)getAllLaunchImageInfo {
20 | NSDictionary *infoDict = [[self mainBundle] infoDictionary];
21 | // 获取所有启动图片信息数组
22 | NSArray *launchImagesArray = infoDict[@"UILaunchImages"];
23 | return launchImagesArray;
24 | }
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSDate/NSDate+NSDateRFC1123.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+NSDateRFC1123.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/11/18.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSDate (NSDateRFC1123)
14 |
15 | /**
16 | Convert a RFC1123 'Full-Date' string
17 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1)
18 | into NSDate.
19 | */
20 | + (nullable NSDate *)dateFromRFC1123:(NSString * _Nullable)value_;
21 |
22 | /**
23 | Convert NSDate into a RFC1123 'Full-Date' string
24 | (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1).
25 | */
26 | - (nullable NSString *)rfc1123String;
27 |
28 | /**
29 | Convert NSDate into a 'yyyyMMdd' string
30 | */
31 | - (nullable NSString *)yyyyMMddString;
32 |
33 | /**
34 | Convert NSDate into a string with FormatString
35 | */
36 | - (nullable NSString *)stringWithFormatString:(nonnull NSString *)formatString;
37 |
38 | /**
39 | * @brief Convert to local time zone.
40 | */
41 | - (nullable NSDate *)toLocalDate;
42 |
43 | - (nullable NSDate *)toBeijingDate;
44 |
45 | /**
46 | * @brief Convert to gmt time zone.
47 | */
48 | - (nullable NSDate *)toGlobalDate;
49 |
50 | /**
51 | * @brief 00:00:00
52 | */
53 | - (nullable NSDate *)beginningOfDay;
54 |
55 | /**
56 | * @brief 23:59:59
57 | */
58 | - (nullable NSDate *)endingOfDay;
59 |
60 | /**
61 | * @brief MM月01日
62 | */
63 | - (nonnull NSString *)beginningOfMonth;
64 |
65 | @end
66 |
67 | NS_ASSUME_NONNULL_END
68 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+Collection.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Collection.h
3 | // Collection
4 | //
5 | // Created by Jordi Puigdellívol on 10/8/16.
6 | // Copyright © 2016 Revo. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (Collection)
12 |
13 | + (NSDictionary * _Nullable)fromData:(NSData* _Nullable)data;
14 | + (NSDictionary * _Nullable)fromString:(NSString* _Nullable)string;
15 | - (NSString * _Nullable)toString;
16 | - (NSDictionary * _Nullable)except:(NSArray* _Nullable)exceptKeys;
17 | - (NSDictionary* _Nullable)only:(NSArray* _Nullable)keysToKeep;
18 |
19 | - (void)each:(void(^ _Nullable)(id _Nonnull key, id _Nonnull object))operation;
20 | - (NSDictionary* _Nullable)filter:(BOOL (^ _Nullable)(id _Nonnull key, id _Nonnull object))condition;
21 | - (NSDictionary* _Nullable)reject:(BOOL (^ _Nullable)(id _Nonnull key, id _Nonnull object))condition;
22 | - (NSDictionary* _Nullable)map:(id _Nonnull (^ _Nullable)(id _Nonnull key, id _Nonnull object))callback;
23 | @end
24 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSDictionary/NSDictionary+SafeAccess.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+SafeAccess.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/27.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (SafeAccess)
12 |
13 | - (BOOL)hasKey:(NSString *)key;
14 |
15 | - (NSString *)stringForKey:(id)key;
16 |
17 | - (NSNumber *)numberForKey:(id)key;
18 |
19 | - (NSDecimalNumber *)decimalNumberForKey:(id)key;
20 |
21 | - (NSArray *)arrayForKey:(id)key;
22 |
23 | - (NSDictionary*)dictionaryForKey:(id)key;
24 |
25 | - (NSInteger)integerForKey:(id)key;
26 |
27 | - (NSUInteger)unsignedIntegerForKey:(id)key;
28 |
29 | - (BOOL)boolForKey:(id)key;
30 |
31 | - (int16_t)int16ForKey:(id)key;
32 |
33 | - (int32_t)int32ForKey:(id)key;
34 |
35 | - (int64_t)int64ForKey:(id)key;
36 |
37 | - (char)charForKey:(id)key;
38 |
39 | - (short)shortForKey:(id)key;
40 |
41 | - (float)floatForKey:(id)key;
42 |
43 | - (double)doubleForKey:(id)key;
44 |
45 | - (long)longForKey:(id)key;
46 |
47 | - (long long)longLongForKey:(id)key;
48 |
49 | - (unsigned long long)unsignedLongLongForKey:(id)key;
50 |
51 | - (id)getValueForKey:(NSString *)key;
52 |
53 | - (NSDate *)dateForKey:(id)key dateFormat:(NSString *)dateFormat;
54 |
55 | - (CGFloat)CGFloatForKey:(id)key;
56 |
57 | - (CGPoint)pointForKey:(id)key;
58 |
59 | - (CGSize)sizeForKey:(id)key;
60 |
61 | - (CGRect)rectForKey:(id)key;
62 |
63 | @end
64 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Queue.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+Queue.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSMutableArray (Queue)
14 |
15 | /**
16 | * @brief 队列的容量,大于0为有效容量,小于等于0表示不限制容量
17 | */
18 | @property (nonatomic, assign) NSInteger queueSize;
19 |
20 | - (void)enqueueObject:(id)anObject;
21 |
22 | - (nullable id)dequeueObject;
23 |
24 | @end
25 |
26 | NS_ASSUME_NONNULL_END
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Queue.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+Queue.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSMutableArray+Queue.h"
10 | #import "NSObject+AssociatedObject.h"
11 |
12 | @implementation NSMutableArray (Queue)
13 |
14 | BOOL queueSizeFlag = NO;
15 |
16 | - (void)enqueueObject:(id)anObject {
17 | [self addObject:anObject];
18 | if (queueSizeFlag && self.count > self.queueSize) {
19 | [self removeObjectAtIndex:0];
20 | }
21 | }
22 |
23 | - (id)dequeueObject {
24 | id anObject = [self firstObject];
25 | if (self.count > 0) {
26 | [self removeObjectAtIndex:0];
27 | }
28 | return anObject;
29 | }
30 |
31 | #pragma mark - propertes
32 |
33 | - (NSInteger)queueSize {
34 | return [[self object:@selector(setQueueSize:)] integerValue];
35 | }
36 |
37 | - (void)setQueueSize:(NSInteger)queueSize {
38 | [self setRetainNonatomicObject:@(queueSize) withKey:@selector(setQueueSize:)];
39 | if (queueSize > 0) {
40 | queueSizeFlag = YES;
41 | } else {
42 | queueSizeFlag = NO;
43 | }
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+SafeAccess.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+SafeAccess.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/1.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSMutableArray (SafeAccess)
12 |
13 | /**
14 | 安全的添加一个对象
15 |
16 | @param object 对象
17 | */
18 | - (void)addSafeObject:(id)object;
19 |
20 | /**
21 | 根据索引安全的插入一个对象
22 |
23 | @param object 对象
24 | @param index NSUInteger
25 | */
26 | - (void)insertSafeObject:(id)object
27 | index:(NSUInteger)index;
28 |
29 | /**
30 | 根据索引安全的插入一个数组
31 |
32 | @param array NSArray
33 | @param indexSet NSIndexSet
34 | */
35 | - (void)insertSafeArray:(NSArray *)array
36 | indexSet:(NSIndexSet *)indexSet;
37 |
38 | /**
39 | 根据索引安全的删除一个对象
40 |
41 | @param index NSUInteger
42 | */
43 | - (void)safeRemoveObjectAtIndex:(NSUInteger)index;
44 |
45 | /**
46 | 根据范围安全的删除
47 |
48 | @param range NSRange
49 | */
50 | - (void)safeRemoveObjectsInRange:(NSRange)range;
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+SafeAccess.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+SafeAccess.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/1.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSMutableArray+SafeAccess.h"
10 |
11 | @implementation NSMutableArray (SafeAccess)
12 |
13 | - (void)addSafeObject:(id)object {
14 |
15 | if (object == nil) {
16 | return;
17 | }
18 | [self addObject:object];
19 | }
20 |
21 | - (void)insertSafeObject:(id)object
22 | index:(NSUInteger)index {
23 |
24 | if (object == nil) {
25 | return;
26 | }
27 |
28 | if (index > self.count) {
29 | [self insertObject:object
30 | atIndex:self.count];
31 | } else {
32 |
33 | [self insertObject:object
34 | atIndex:index];
35 | }
36 | }
37 |
38 | - (void)insertSafeArray:(NSArray *)array
39 | indexSet:(NSIndexSet *)indexSet {
40 |
41 | if (indexSet == nil) {
42 | return;
43 | }
44 |
45 | if (indexSet.count != array.count || indexSet.firstIndex > array.count) {
46 | [self insertObject:array
47 | atIndex:self.count];
48 | } else {
49 | [self insertObjects:array
50 | atIndexes:indexSet];
51 | }
52 | }
53 |
54 | - (void)safeRemoveObjectAtIndex:(NSUInteger)index {
55 |
56 | if (index >= self.count) {
57 | return;
58 | }
59 | [self removeObjectAtIndex:index];
60 | }
61 |
62 | - (void)safeRemoveObjectsInRange:(NSRange)range {
63 |
64 | NSUInteger location = range.location;
65 | NSUInteger length = range.length;
66 |
67 | if (location + length > self.count) {
68 | return;
69 | }
70 | [self removeObjectsInRange:range];
71 | }
72 |
73 | @end
74 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Sort.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+Sort.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/4.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NSComparisonResult(^MYSortComparator)(id obj1, id obj2);
12 | typedef void(^MYSortExchangeCallBack)(id obj1, id obj2);
13 |
14 | @interface NSMutableArray (Sort)
15 |
16 | #pragma mark - 选择排序
17 | /*!
18 | * 选择排序
19 | *
20 | * @param comparator 排序的对象
21 | * @param sortExchangeCallBack 回调排序的结果
22 | */
23 | - (void)selectSortWithComparator:(MYSortComparator)comparator
24 | didExchange:(MYSortExchangeCallBack)sortExchangeCallBack;
25 |
26 | /*!
27 | * 冒泡排序
28 | *
29 | * @param comparator 排序的对象
30 | * @param sortExchangeCallBack 回调排序的结果
31 | */
32 | - (void)bubbleSortWithComparator:(MYSortComparator)comparator
33 | didExchange:(MYSortExchangeCallBack)sortExchangeCallBack;
34 |
35 | /*!
36 | * 插入排序
37 | *
38 | * @param comparator 排序的对象
39 | * @param sortExchangeCallBack 回调排序的结果
40 | */
41 | - (void)insertSortWithComparator:(MYSortComparator)comparator
42 | didExchange:(MYSortExchangeCallBack)sortExchangeCallBack;
43 |
44 | /*!
45 | * 快速排序
46 | *
47 | * @param comparator 排序的对象
48 | * @param sortExchangeCallBack 回调排序的结果
49 | */
50 | - (void)quickSortWithComparator:(MYSortComparator)comparator
51 | didExchange:(MYSortExchangeCallBack)sortExchangeCallBack;
52 |
53 | /*!
54 | * 堆排序
55 | *
56 | * @param comparator 排序的对象
57 | * @param sortExchangeCallBack 回调排序的结果
58 | */
59 | - (void)heapSortWithComparator:(MYSortComparator)comparator
60 | didExchange:(MYSortExchangeCallBack)sortExchangeCallBack;
61 |
62 |
63 |
64 | @end
65 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Stack.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+Stack.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSMutableArray (Stack)
14 |
15 | - (void)pushObject:(id)anObject;
16 |
17 | - (nullable id)popObject;
18 |
19 | - (nullable id)peekObject;
20 |
21 | @end
22 |
23 | NS_ASSUME_NONNULL_END
24 |
25 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSMutableArray/NSMutableArray+Stack.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableArray+Stack.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSMutableArray+Stack.h"
10 |
11 | @implementation NSMutableArray (Stack)
12 |
13 | - (void)pushObject:(id)anObject {
14 | [self addObject:anObject];
15 | }
16 |
17 | - (id)popObject {
18 | id anObject = [self lastObject];
19 | if (self.count > 0) {
20 | [self removeLastObject];
21 | }
22 | return anObject;
23 | }
24 |
25 | - (id)peekObject {
26 | return [self lastObject];
27 | }
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/13.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSNumber (Addition)
14 |
15 | /**
16 | Creates and returns an NSNumber object from a string.
17 | Valid format: @"12", @"12.345", @" -0xFF", @" .23e99 "...
18 |
19 | @param string The string described an number.
20 |
21 | @return an NSNumber when parse succeed, or nil if an error occurs.
22 | */
23 | + (nullable NSNumber *)numberWithString:(NSString *)string;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Addition.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Addition.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/13.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSNumber+Addition.h"
10 | #import "NSString+Trims.h"
11 |
12 | @implementation NSNumber (Addition)
13 |
14 | + (NSNumber *)numberWithString:(NSString *)string {
15 | NSString *str = [[string stringByTrim] lowercaseString];
16 | if (!str || !str.length) {
17 | return nil;
18 | }
19 |
20 | static NSDictionary *dic;
21 | static dispatch_once_t onceToken;
22 | dispatch_once(&onceToken, ^{
23 | dic = @{@"true" : @(YES),
24 | @"yes" : @(YES),
25 | @"false" : @(NO),
26 | @"no" : @(NO),
27 | @"nil" : [NSNull null],
28 | @"null" : [NSNull null],
29 | @"" : [NSNull null]};
30 | });
31 | id num = dic[str];
32 | if (num) {
33 | if (num == [NSNull null]) return nil;
34 | return num;
35 | }
36 |
37 | // hex number
38 | int sign = 0;
39 | if ([str hasPrefix:@"0x"]) sign = 1;
40 | else if ([str hasPrefix:@"-0x"]) sign = -1;
41 | if (sign != 0) {
42 | NSScanner *scan = [NSScanner scannerWithString:str];
43 | unsigned num = -1;
44 | BOOL suc = [scan scanHexInt:&num];
45 | if (suc)
46 | return [NSNumber numberWithLong:((long)num * sign)];
47 | else
48 | return nil;
49 | }
50 | // normal number
51 | NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
52 | [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
53 | return [formatter numberFromString:string];
54 | }
55 |
56 | @end
57 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSNumber/NSNumber+Round.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Round.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Round)
12 |
13 | /* 展示 */
14 | - (NSString *)toDisplayNumberWithDigit:(NSInteger)digit;
15 | - (NSString *)toDisplayPercentageWithDigit:(NSInteger)digit;
16 |
17 | /* 四舍五入 */
18 | /**
19 | * @brief 四舍五入
20 | *
21 | * @param digit 限制最大位数
22 | *
23 | * @return 结果
24 | */
25 | - (NSNumber *)doRoundWithDigit:(NSUInteger)digit;
26 | /**
27 | * @brief 取上整
28 | *
29 | * @param digit 限制最大位数
30 | *
31 | * @return 结果
32 | */
33 | - (NSNumber *)doCeilWithDigit:(NSUInteger)digit;
34 | /**
35 | * @brief 取下整
36 | *
37 | * @param digit 限制最大位数
38 | *
39 | * @return 结果
40 | */
41 | - (NSNumber *)doFloorWithDigit:(NSUInteger)digit;
42 |
43 | /**
44 | * 将当前金额数值转成中文繁体金额
45 | * 1234567890.31 <=> 壹拾貳億叁仟肆佰伍拾陸萬柒仟捌佰玖拾圓叁角壹分
46 | */
47 | - (NSString *)traditionalMoneyString;
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/31.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Addition)
12 |
13 | /**
14 | 获取一个类的所有直接子类类簇
15 | */
16 | - (NSArray *)findAllOf:(Class)defaultClass;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Addition.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Addition.m
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/31.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSObject+Addition.h"
10 | #import
11 |
12 | @implementation NSObject (Addition)
13 |
14 |
15 | - (NSArray *)findAllOf:(Class)defaultClass {
16 |
17 | int count = objc_getClassList(NULL, 0);
18 | if (count <= 0) {
19 | @throw @"Couldn't retrieve Obj-C class-list";
20 | return @[defaultClass];
21 | }
22 |
23 | NSMutableArray *output = @[].mutableCopy;
24 | Class *classes = (Class *)malloc(sizeof(Class) * count);
25 | objc_getClassList(classes, count);
26 | for (int i = 0; i < count; ++i) {
27 | if (defaultClass == class_getSuperclass(classes[i])) { //子类
28 | [output addObject:classes[i]];
29 | }
30 | }
31 | free(classes);
32 | return output.copy;
33 | }
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSObject/NSObject+AssociatedObject.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+AssociatedObject.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (AssociatedObject)
12 |
13 | - (id)object:(SEL)key;
14 |
15 | - (void)setAssignObject:(id)object withKey:(SEL)key;
16 |
17 | - (void)setRetainNonatomicObject:(id)object withKey:(SEL)key;
18 |
19 | - (void)setCopyNonatomicObject:(id)object withKey:(SEL)key;
20 |
21 | - (void)setRetainObject:(id)object withKey:(SEL)key;
22 |
23 | - (void)setCopyObject:(id)object withKey:(SEL)key;
24 |
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSObject/NSObject+AssociatedObject.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+AssociatedObject.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSObject+AssociatedObject.h"
10 | #import
11 |
12 | @implementation NSObject (AssociatedObject)
13 |
14 | - (id)object:(SEL)key {
15 | return objc_getAssociatedObject(self, key);
16 | }
17 |
18 | - (void)setAssignObject:(id)object withKey:(SEL)key {
19 | objc_setAssociatedObject(self, key, object, OBJC_ASSOCIATION_ASSIGN);
20 | }
21 |
22 | - (void)setRetainNonatomicObject:(id)object withKey:(SEL)key {
23 | objc_setAssociatedObject(self, key, object,
24 | OBJC_ASSOCIATION_RETAIN_NONATOMIC);
25 | }
26 |
27 | - (void)setCopyNonatomicObject:(id)object withKey:(SEL)key {
28 | objc_setAssociatedObject(self, key, object, OBJC_ASSOCIATION_COPY_NONATOMIC);
29 | }
30 |
31 | - (void)setRetainObject:(id)object withKey:(SEL)key {
32 | objc_setAssociatedObject(self, key, object, OBJC_ASSOCIATION_COPY_NONATOMIC);
33 | }
34 |
35 | - (void)setCopyObject:(id)object withKey:(SEL)key {
36 | objc_setAssociatedObject(self, key, object, OBJC_ASSOCIATION_COPY_NONATOMIC);
37 | }
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSObject/NSObject+Swizzle.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Swizzle.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/13.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface NSObject (Swizzle)
13 |
14 | /**
15 | 对类方法进行拦截并替换
16 |
17 | @param originalSelector 类的原类方法
18 | @param replaceSelector 替代方法
19 | */
20 | + (void)swizzleClassMethod:(SEL)originalSelector replaceMethod:(SEL)replaceSelector;
21 |
22 | /**
23 | 对对象的实例方法进行拦截并替换
24 |
25 | @param originalSelector 对象的原实例方法
26 | @param replaceSelector 替代方法
27 | */
28 | - (void)instanceSwizzleMethod:(SEL _Nonnull )originalSelector replaceMethod:(SEL _Nonnull )replaceSelector;
29 |
30 | /**
31 | 对类方法进行拦截并替换
32 |
33 | @param klass 被拦截的具体类
34 | @param originalSelector 类的原类方法
35 | @param replaceSelector 替代方法
36 | */
37 | + (void)classSwizzleMethodWithClass:(Class _Nonnull)klass orginalMethod:(SEL _Nonnull)originalSelector replaceMethod:(SEL _Nonnull)replaceSelector;
38 |
39 | /**
40 | 对对象的实例方法进行拦截并替换
41 |
42 | @param klass 被拦截的具体类
43 | @param originalSelector 对象的原实例方法
44 | @param replaceSelector 替代方法
45 | */
46 | + (void)instanceSwizzleMethodWithClass:(Class _Nonnull)klass orginalMethod:(SEL _Nonnull)originalSelector replaceMethod:(SEL _Nonnull)replaceSelector;
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSString/NSString+Regular.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Regular.h
3 | // FXKitExampleDemo
4 | //
5 | // Created by sunjinshuai on 2017/8/30.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Regular)
12 |
13 |
14 | /*!
15 | * @method vertifyEmail
16 | * 验证字符串是否邮箱格式
17 | */
18 | - (BOOL)vertifyEmail;
19 |
20 | /*!
21 | * @method vertifyChinese
22 | * 验证字符串是否中文
23 | */
24 | - (BOOL)vertifyChinese;
25 |
26 | /*!
27 | * @method vertifyPassword
28 | * 验证字符串是否6-18位大小字母混合数字密码
29 | */
30 | - (BOOL)vertifyPassword;
31 |
32 | /*!
33 | * @method vertifyHyperLink
34 | * 验证字符串是否超链接
35 | */
36 | - (BOOL)vertifyHyperLink;
37 |
38 | /*!
39 | * @method vertifyTelephone
40 | * 验证字符串是否固机号码
41 | */
42 | - (BOOL)vertifyTelephone;
43 |
44 | /*!
45 | * @method vertifyIpAddress
46 | * 验证字符串是否IP地址
47 | */
48 | - (BOOL)vertifyIpAddress;
49 |
50 | /*!
51 | * @method vertifyMobilePhone
52 | * 验证字符串是否手机号码
53 | */
54 | - (BOOL)vertifyMobilePhone;
55 |
56 | /*!
57 | * @method vertifyCarNumber
58 | * 验证字符串是否车牌号码
59 | */
60 | - (BOOL)vertifyCarNumber;
61 |
62 | /*!
63 | * @method vertifyIdentifierNumber
64 | * 验证字符串是否身份证号码
65 | */
66 | - (BOOL)vertifyIdentifierNumber;
67 |
68 | /*!
69 | * @method vertifyStringWithExp:
70 | * 验证字符串是否符合正则表达式规则
71 | */
72 | - (BOOL)vertifyStringWithExp:(NSString *)exp;
73 |
74 | @end
75 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSString/NSString+Size.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Size.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSString (Size)
14 |
15 | /**
16 | 简单计算文本占据的size
17 | */
18 | - (CGSize)textSizeWithFont:(UIFont *)font;
19 |
20 | /**
21 | * 计算文本占用的宽高
22 | *
23 | * @param font 显示的字体
24 | * @param maxSize 最大的显示范围
25 | *
26 | * @return 占用的宽高
27 | */
28 | - (CGSize)sizeWithFont:(UIFont *)font maxSize:(CGSize)maxSize;
29 |
30 | /**
31 | 根据字体、行数、行间距和constrainedWidth计算文本占据的size
32 | @param font 字体
33 | @param numberOfLines 显示文本行数,值为0不限制行数
34 | @param lineSpacing 行间距
35 | @param constrainedWidth 文本受限的宽度
36 | @param isLimitedToLines 记录文本是否被numberOfLines限制
37 | @return 返回文本占据的size
38 | */
39 | - (CGSize)textSizeWithFont:(UIFont *)font
40 | numberOfLines:(NSInteger)numberOfLines
41 | lineSpacing:(CGFloat)lineSpacing
42 | constrainedWidth:(CGFloat)constrainedWidth
43 | isLimitedToLines:(BOOL * _Nonnull)isLimitedToLines;
44 |
45 | /**
46 | * 计算文字高度,可以处理计算带行间距的等属性
47 | */
48 | - (CGSize)boundingRectWithSize:(CGSize)size
49 | paragraphStyle:(NSMutableParagraphStyle *)paragraphStyle
50 | font:(UIFont *)font;
51 | /**
52 | * 计算文字高度,可以处理计算带行间距的
53 | */
54 | - (CGSize)boundingRectWithSize:(CGSize)size
55 | font:(UIFont*)font
56 | lineSpacing:(CGFloat)lineSpacing;
57 | /**
58 | * 计算最大行数文字高度,可以处理计算带行间距的
59 | */
60 | - (CGFloat)boundingRectWithSize:(CGSize)size
61 | font:(UIFont *)font
62 | lineSpacing:(CGFloat)lineSpacing
63 | maxLines:(NSInteger)maxLines;
64 |
65 | /**
66 | * 计算是否超过一行
67 | */
68 | - (BOOL)isMoreThanOneLineWithSize:(CGSize)size
69 | font:(UIFont *)font
70 | lineSpaceing:(CGFloat)lineSpacing;
71 |
72 | @end
73 |
74 | NS_ASSUME_NONNULL_END
75 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSString/NSString+Trims.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Trims.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Trims)
12 |
13 | /**
14 | 去除回车键
15 | */
16 | + (NSString *)stirngByTrimReturnKey:(NSString *)string;
17 |
18 | /**
19 | Trim blank characters (space and newline) in head and tail.
20 | @return the trimmed string.
21 | */
22 | - (NSString *)stringByTrim;
23 |
24 | /**
25 | * @brief 去除字符串与空行
26 | *
27 | * @return 去除字符串与空行的字符串
28 | */
29 | - (NSString *)trimmingWhitespaceAndNewlines;
30 |
31 | /**
32 | * @brief 清除html标签
33 | *
34 | * @return 清除后的结果
35 | */
36 | - (NSString *)stringByStrippingHTML;
37 | /**
38 | * @brief 清除js脚本
39 | *
40 | * @return 清楚js后的结果
41 | */
42 | - (NSString *)stringByRemovingScriptsAndStrippingHTML;
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSURL/NSURL+Param.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSURL+Param.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSURL (Param)
14 |
15 | /**
16 | * @brief url参数转字典
17 | *
18 | * @return 参数转字典结果
19 | */
20 | - (NSDictionary *)parameters;
21 | /**
22 | * @brief 根据参数名 取参数值
23 | *
24 | * @param parameterKey 参数名的key
25 | *
26 | * @return 参数值
27 | */
28 | - (NSString *)valueForParameter:(NSString *)parameterKey;
29 |
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSURL/NSURL+Param.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSURL+Param.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/8.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSURL+Param.h"
10 |
11 | @implementation NSURL (Param)
12 |
13 | /**
14 | * @brief url参数转字典
15 | *
16 | * @return 参数转字典结果
17 | */
18 | - (NSDictionary *)parameters {
19 | NSMutableDictionary *parametersDictionary = [NSMutableDictionary dictionary];
20 | NSArray *queryComponents = [self.query componentsSeparatedByString:@"&"];
21 | for (NSString *queryComponent in queryComponents) {
22 | NSString *key = [queryComponent componentsSeparatedByString:@"="].firstObject;
23 | NSString *value = [queryComponent substringFromIndex:(key.length + 1)];
24 | [parametersDictionary setObject:value forKey:key];
25 | }
26 | return parametersDictionary;
27 | }
28 |
29 | /**
30 | * @brief 根据参数名 取参数值
31 | *
32 | * @param parameterKey 参数名的key
33 | *
34 | * @return 参数值
35 | */
36 | - (NSString *)valueForParameter:(NSString *)parameterKey {
37 | return [[self parameters] objectForKey:parameterKey];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSUserDefaults/NSUserDefaults+SafeAccess.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSUserDefaults+SafeAccess.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSUserDefaults (SafeAccess)
14 |
15 | + (NSString *)stringForKey:(NSString *)defaultName;
16 |
17 | + (NSArray *)arrayForKey:(NSString *)defaultName;
18 |
19 | + (NSDictionary *)dictionaryForKey:(NSString *)defaultName;
20 |
21 | + (NSData *)dataForKey:(NSString *)defaultName;
22 |
23 | + (NSArray *)stringArrayForKey:(NSString *)defaultName;
24 |
25 | + (NSInteger)integerForKey:(NSString *)defaultName;
26 |
27 | + (float)floatForKey:(NSString *)defaultName;
28 |
29 | + (double)doubleForKey:(NSString *)defaultName;
30 |
31 | + (BOOL)boolForKey:(NSString *)defaultName;
32 |
33 | + (NSURL *)URLForKey:(NSString *)defaultName;
34 |
35 | + (void)setObject:(id)value forKey:(NSString *)defaultName;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/Foundation/NSUserDefaults/NSUserDefaults+SafeAccess.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSUserDefaults+SafeAccess.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "NSUserDefaults+SafeAccess.h"
10 |
11 | @implementation NSUserDefaults (SafeAccess)
12 |
13 | + (NSString *)stringForKey:(NSString *)defaultName {
14 | return [[NSUserDefaults standardUserDefaults] stringForKey:defaultName];
15 | }
16 |
17 | + (NSArray *)arrayForKey:(NSString *)defaultName {
18 | return [[NSUserDefaults standardUserDefaults] arrayForKey:defaultName];
19 | }
20 |
21 | + (NSDictionary *)dictionaryForKey:(NSString *)defaultName {
22 | return [[NSUserDefaults standardUserDefaults] dictionaryForKey:defaultName];
23 | }
24 |
25 | + (NSData *)dataForKey:(NSString *)defaultName {
26 | return [[NSUserDefaults standardUserDefaults] dataForKey:defaultName];
27 | }
28 |
29 | + (NSArray *)stringArrayForKey:(NSString *)defaultName {
30 | return [[NSUserDefaults standardUserDefaults] stringArrayForKey:defaultName];
31 | }
32 |
33 | + (NSInteger)integerForKey:(NSString *)defaultName {
34 | return [[NSUserDefaults standardUserDefaults] integerForKey:defaultName];
35 | }
36 |
37 | + (float)floatForKey:(NSString *)defaultName {
38 | return [[NSUserDefaults standardUserDefaults] floatForKey:defaultName];
39 | }
40 |
41 | + (double)doubleForKey:(NSString *)defaultName {
42 | return [[NSUserDefaults standardUserDefaults] doubleForKey:defaultName];
43 | }
44 |
45 | + (BOOL)boolForKey:(NSString *)defaultName {
46 | return [[NSUserDefaults standardUserDefaults] boolForKey:defaultName];
47 | }
48 |
49 | + (NSURL *)URLForKey:(NSString *)defaultName {
50 | return [[NSUserDefaults standardUserDefaults] URLForKey:defaultName];
51 | }
52 |
53 | + (void)setObject:(id)value forKey:(NSString *)defaultName {
54 | [[NSUserDefaults standardUserDefaults] setObject:value forKey:defaultName];
55 | [[NSUserDefaults standardUserDefaults] synchronize];
56 | }
57 |
58 | @end
59 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/MYSafeFoundationContainer.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYSafeFoundationContainer.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/26.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MYSafeFoundationContainer : NSObject
12 |
13 | /**
14 | 防护 Foundation crash
15 | */
16 | + (void)safeGuardContainersSelector;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/MYSafeFoundationContainer.m:
--------------------------------------------------------------------------------
1 | //
2 | // MYSafeFoundationContainer.m
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/26.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "MYSafeFoundationContainer.h"
10 | #import "NSArray+Safe.h"
11 | #import "NSMutableArray+Safe.h"
12 | #import "NSDictionary+Safe.h"
13 | #import "NSMutableDictionary+Safe.h"
14 | #import "NSObject+Safe.h"
15 | #import "NSMutableString+Safe.h"
16 | #import "NSString+Safe.h"
17 |
18 | @interface MYSafeFoundationContainer ()
19 |
20 | @property (nonatomic, strong) NSArray *tempArray;
21 |
22 | @end
23 |
24 | @implementation MYSafeFoundationContainer
25 |
26 | + (void)safeGuardContainersSelector {
27 |
28 | [NSArray registerClassPairMethodsInArray];
29 | [NSMutableArray registerClassPairMethodsInMutableArray];
30 |
31 | [NSDictionary registerClassPairMethodsInDictionary];
32 | [NSMutableDictionary registerClassPairMethodsInMutableDictionary];
33 |
34 | [NSObject registerClassPairMethodsInObject];
35 |
36 | [NSString registerClassPairMethodsInString];
37 | [NSMutableString registerClassPairMethodsInMutableString];
38 | }
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSArray+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Aspect.h
3 | // Footstone
4 | //
5 | // Created by 李阳 on 8/3/2018.
6 | // Copyright © 2018 BetrayalPromise. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | 防御数组入参崩溃
13 | */
14 | @interface NSArray (Safe)
15 |
16 | + (void)registerClassPairMethodsInArray;
17 |
18 | @end
19 |
20 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Safe.h
3 | // Footstone
4 | //
5 | // Created by 李阳 on 4/5/2018.
6 | // Copyright © 2018 BetrayalPromise. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (Safe)
12 |
13 | /**
14 | 字典 crash 防护
15 | */
16 | + (void)registerClassPairMethodsInDictionary;
17 |
18 | @end
19 |
20 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableArray+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Aspect.h
3 | // Footstone
4 | //
5 | // Created by 李阳 on 8/3/2018.
6 | // Copyright © 2018 BetrayalPromise. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSMutableArray (Safe)
12 |
13 | /**
14 | 可变数组 crash 防护
15 | */
16 | + (void)registerClassPairMethodsInMutableArray;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableDictionary+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Safe.h
3 | // Footstone
4 | //
5 | // Created by 李阳 on 4/5/2018.
6 | // Copyright © 2018 BetrayalPromise. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSMutableDictionary (Safe)
12 |
13 | /**
14 | 可变字典 crash 防护
15 | */
16 | + (void)registerClassPairMethodsInMutableDictionary;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSMutableString+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSMutableString+Safe.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/30.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSMutableString (Safe)
12 |
13 | /**
14 | 防护 MutableString crash
15 | */
16 | + (void)registerClassPairMethodsInMutableString;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSObject+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Aspect.h
3 | // Footstone
4 | //
5 | // Created by 李阳 on 11/3/2018.
6 | // Copyright © 2018 BetrayalPromise. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | 防御 KVC KVO 崩溃
13 | */
14 | @interface NSObject (Aspect)
15 |
16 | + (void)registerClassPairMethodsInObject;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/FoundationContainer/NSString+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Safe.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/30.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Safe)
12 |
13 | /**
14 | String 防护 Crash
15 | */
16 | + (void)registerClassPairMethodsInString;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/KVO/NSObject+SafeKVO.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+SafeKVO.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/30.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (SafeKVO)
12 |
13 | /**
14 | 防护 KVO Crash
15 | */
16 | + (void)registerClassPairMethodsInKVO;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/MYSafeKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYSafeKit.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/26.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_OPTIONS(NSUInteger, MYSafeKitShieldType) {
12 | MYSafeKitShieldTypeUnrecognizedSelector = 1 << 1,
13 | MYSafeKitShieldTypeContainer = 1 << 2,
14 | MYSafeKitShieldTypeKVO = 1 << 3,
15 | MYSafeKitShieldTypeNotification = 1 << 4,
16 | MYSafeKitShieldTypeTimer = 1 << 5,
17 | MYSafeKitShieldTypeNull = 1 << 6,
18 | MYSafeKitShieldTypeAll = (MYSafeKitShieldTypeUnrecognizedSelector | MYSafeKitShieldTypeContainer | MYSafeKitShieldTypeKVO | MYSafeKitShieldTypeNotification | MYSafeKitShieldTypeTimer | MYSafeKitShieldTypeNull),
19 | };
20 |
21 | @protocol MYSafeKitRecordProtocol
22 |
23 | - (void)recordWithReason:(NSError *)reason;
24 |
25 | @end
26 |
27 | @interface MYSafeKit : NSObject
28 |
29 | /**
30 | 注册汇报中心
31 |
32 | @param record 汇报中心
33 | */
34 | + (void)registerRecordHandler:(id)record;
35 |
36 | /**
37 | 注册 SDK,默认只要开启就打开防 Crash
38 | */
39 | + (void)registerSafeKitShield;
40 |
41 | /**
42 | 注册 SDK,根据不同 ability 开启防 Crash
43 | 本注册方式不包含 MYSafeKitShieldTypeAll 类型
44 | @param ability ability
45 | */
46 | + (void)registerSafeKitShieldWithAbility:(MYSafeKitShieldType)ability;
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/NSNull/NSNull+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNull+Safe.h
3 | // MYKit
4 | //
5 | // Created by sunjinshuai on 2019/4/17.
6 | //
7 |
8 | #import
9 |
10 | NS_ASSUME_NONNULL_BEGIN
11 |
12 | @interface NSNull (Safe)
13 |
14 | /**
15 | NSNull
16 | */
17 | + (void)safeGuardNSNull;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/NSNull/NSNull+Safe.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSNull+Safe.m
3 | // MYKit
4 | //
5 | // Created by sunjinshuai on 2019/4/17.
6 | //
7 |
8 | #import "NSNull+Safe.h"
9 | #import "NSObject+Swizzle.h"
10 | #import "MYSafeKitRecord.h"
11 | #import
12 |
13 | @implementation NSNull (Safe)
14 |
15 | + (void)safeGuardNSNull {
16 | [self instanceSwizzleMethod:@selector(forwardingTargetForSelector:)
17 | replaceMethod:@selector(safe_instanceMethod_forwardingTargetForSelector:)];
18 | }
19 |
20 | - (id)safe_instanceMethod_forwardingTargetForSelector:(SEL)aSelector {
21 | static NSArray *sTmpOutput = nil;
22 | if (sTmpOutput == nil) {
23 | sTmpOutput = @[@"", @0, @[], @{}];
24 | }
25 |
26 | for (id tmpObj in sTmpOutput) {
27 | if ([tmpObj respondsToSelector:aSelector]) {
28 | NSString *reason = [NSString stringWithFormat:@"*****Warning***** logic error.target is %@ method is %@, reason : method forword to Object default implement like send message to nil.",[self class], NSStringFromSelector(aSelector)];
29 | [MYSafeKitRecord recordFatalWithReason:reason errorType:(MYSafeKitShieldTypeNull)];
30 | return tmpObj;
31 | }
32 | }
33 | return [self safe_instanceMethod_forwardingTargetForSelector:aSelector];
34 | }
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/NSTimer/NSTimer+Safe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSTimer+Safe.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/30.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSTimer (Safe)
12 |
13 | /**
14 | 防护 Timer crash
15 | */
16 | + (void)registerClassPairMethodsInTimer;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/Notification/NSNotificationCenter+SafeKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotificationCenter+SafeKit.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/19.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNotificationCenter (SafeKit)
12 |
13 | /**
14 | 防护 iOS 8 通知 carsh
15 | */
16 | + (void)safeGuardNotificationSelector;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/Record/MYSafeKitRecord.h:
--------------------------------------------------------------------------------
1 | //
2 | // MYSafeKitRecord.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/31.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "MYSafeKit.h"
11 |
12 | @interface MYSafeKitRecord : NSObject
13 |
14 | /**
15 | 注册汇报中心
16 |
17 | @param record 汇报中心
18 | */
19 | + (void)registerRecordHandler:(nullable id)record;
20 |
21 | /**
22 | 汇报Crash
23 |
24 | @param reason Sting 原因, maybe nil
25 | */
26 | + (void)recordFatalWithReason:(nullable NSString *)reason
27 | errorType:(MYSafeKitShieldType)type;
28 |
29 | /**
30 | 获取调用堆栈信息
31 |
32 | @param tipString 错误信息
33 | */
34 | + (NSString *)getErrorMessageWithTipString:(NSString *)tipString;
35 |
36 | /**
37 | alter 错误堆栈信息
38 | */
39 | + (void)safeKit_showAlterWithMessage:(NSString *)messsage;
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/SafeKitShield.h:
--------------------------------------------------------------------------------
1 | //
2 | // SafeKitShield.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/31.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for Expecta.
12 | FOUNDATION_EXPORT double SafeKitShieldVersionNumber;
13 |
14 | //! Project version string for Expecta.
15 | FOUNDATION_EXPORT const unsigned char SafeKitShieldVersionString[];
16 |
17 | #import "MYSafeKit.h"
18 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/SafeKit/UnknowSelector/NSObject+UnknowSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+UnknowSelector.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/6/19.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (UnknowSelector)
12 |
13 | /**
14 | 防护发送到未知的选择子到实例
15 | */
16 | + (void)safeGuardUnrecognizedSelector;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+Authority.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+Authority.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^CLPermissionBlock)(BOOL granted);
12 |
13 | @interface UIApplication (Authority)
14 |
15 | #pragma mark - 权限查询
16 | /**
17 | 获取UIApplication的定位是否授权
18 |
19 | @return BOOL
20 | */
21 | + (BOOL)getApplicationLocationPermit;
22 |
23 | /**
24 | 获取UIApplication的通信录是否授权
25 |
26 | @return BOOL
27 | */
28 | + (BOOL)getApplicationAddressBookPermit;
29 |
30 | /**
31 | 获取UIApplication的相机是否授权
32 |
33 | @return BOOL
34 | */
35 | + (BOOL)getApplicationCameraPermit;
36 |
37 | /**
38 | 获取UIApplication的推送功能是否授权
39 |
40 | @return BOOL
41 | */
42 | + (BOOL)getApplicationRemindersPermit;
43 |
44 | /**
45 | 获取UIApplication的相册是否授权
46 |
47 | @return BOOL
48 | */
49 | + (BOOL)getApplicationPhotosLibraryPermit;
50 |
51 | /**
52 | 获取UIApplication的麦克风是否开启
53 |
54 | @param block CLPermissionBlock
55 | */
56 | + (void)getApplicationMicrophonePermitWithBlock:(CLPermissionBlock)block;
57 |
58 |
59 | @end
60 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+NetworkActivityIndicator.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+NetworkActivityIndicator.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIApplication (NetworkActivityIndicator)
12 |
13 | /*
14 | This category will automatically keep track of concurrent network activity and display the network activity indicator accordingly.
15 | */
16 |
17 | /// Tell the application that network activity has begun. The network activity indicator will then be shown.
18 | /// Display the network activity indicator to provide feedback when your application accesses the network for more than a couple of seconds. If the operation finishes sooner than that, you don’t have to show the network activity indicator, because the indicator would be likely to disappear before users notice its presence.
19 | - (void)beganNetworkActivity;
20 |
21 | /// Tell the application that a session of network activity has begun. The network activity indicator will remain showing or hide automatically depending the presence of other ongoing network activity in the app.
22 | - (void)endedNetworkActivity;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIApplication/UIApplication+NetworkActivityIndicator.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+NetworkActivityIndicator.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIApplication+NetworkActivityIndicator.h"
10 | #import
11 |
12 | @implementation UIApplication (NetworkActivityIndicator)
13 |
14 | static volatile int32_t numberOfActiveNetworkConnections;
15 |
16 | #pragma mark Public API
17 |
18 | - (void)beganNetworkActivity
19 | {
20 | self.networkActivityIndicatorVisible = OSAtomicAdd32(1, &numberOfActiveNetworkConnections) > 0;
21 | }
22 |
23 | - (void)endedNetworkActivity
24 | {
25 | self.networkActivityIndicatorVisible = OSAtomicAdd32(-1, &numberOfActiveNetworkConnections) > 0;
26 | }
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarButtonItem+Addition.h
3 | // FXKitExampleDemo
4 | //
5 | // Created by sunjinshuai on 2017/7/20.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBarButtonItem (Addition)
12 |
13 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
14 | action:(SEL)action
15 | image:(NSString *)image;
16 |
17 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
18 | action:(SEL)action
19 | image:(NSString *)image
20 | selectedImage:(NSString *)selectedImage;
21 |
22 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
23 | action:(SEL)action
24 | image:(NSString *)image
25 | highlightedImageName:(NSString *)highlightedImageName;
26 |
27 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
28 | action:(SEL)action
29 | title:(NSString *)title
30 | selectedTitle:(NSString *)selectedTitle;
31 |
32 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
33 | action:(SEL)action
34 | title:(NSString *)title
35 | highlightedTitle:(NSString *)highlightedTitle;
36 |
37 | + (UIBarButtonItem *)barButtonItemWithTarget:(id)target
38 | action:(SEL)action
39 | title:(NSString *)title
40 | titleColor:(UIColor *)titleColor;
41 |
42 | @end
43 |
44 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIBarButtonItem/UIBarButtonItem+Badge.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBarButtonItem+Badge.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | // https://github.com/mikeMTOL/UIBarButtonItem-Badge
8 |
9 | #import
10 |
11 | @interface UIBarButtonItem (Badge)
12 |
13 | @property (strong, atomic) UILabel *badge;
14 |
15 | // Badge value to be display
16 | @property (nonatomic) NSString *badgeValue;
17 | // Badge background color
18 | @property (nonatomic) UIColor *badgeBGColor;
19 | // Badge text color
20 | @property (nonatomic) UIColor *badgeTextColor;
21 | // Badge font
22 | @property (nonatomic) UIFont *badgeFont;
23 | // Padding value for the badge
24 | @property (nonatomic) CGFloat badgePadding;
25 | // Minimum size badge to small
26 | @property (nonatomic) CGFloat badgeMinSize;
27 | // Values for offseting the badge over the BarButtonItem you picked
28 | @property (nonatomic) CGFloat badgeOriginX;
29 | @property (nonatomic) CGFloat badgeOriginY;
30 | // In case of numbers, remove the badge when reaching zero
31 | @property BOOL shouldHideBadgeAtZero;
32 | // Badge has a bounce animation when value changes
33 | @property BOOL shouldAnimateBadge;
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Badge.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Badge.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | // https://github.com/mikeMTOL/UIBarButtonItem-Badge
8 |
9 | #import
10 |
11 | @interface UIButton (Badge)
12 |
13 | @property (strong, nonatomic) UILabel *badge;
14 |
15 | // Badge value to be display
16 | @property (nonatomic) NSString *badgeValue;
17 | // Badge background color
18 | @property (nonatomic) UIColor *badgeBGColor;
19 | // Badge text color
20 | @property (nonatomic) UIColor *badgeTextColor;
21 | // Badge font
22 | @property (nonatomic) UIFont *badgeFont;
23 | // Padding value for the badge
24 | @property (nonatomic) CGFloat badgePadding;
25 | // Minimum size badge to small
26 | @property (nonatomic) CGFloat badgeMinSize;
27 | // Values for offseting the badge over the BarButtonItem you picked
28 | @property (nonatomic) CGFloat badgeOriginX;
29 | @property (nonatomic) CGFloat badgeOriginY;
30 | // In case of numbers, remove the badge when reaching zero
31 | @property BOOL shouldHideBadgeAtZero;
32 | // Badge has a bounce animation when value changes
33 | @property BOOL shouldAnimateBadge;
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+CountDown.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+CountDown.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (CountDown)
12 |
13 | /**
14 | 倒计时
15 |
16 | @param timeInterval 倒计时时长
17 | @param text 倒计时内容
18 | @param completion 倒计时之后回调
19 | */
20 | - (void)scheduledTimerWithTimeInterval:(NSInteger)timeInterval
21 | countDownText:(NSString *)text
22 | completion:(void (^)(UIButton *countDownButton))completion;
23 |
24 | @end
25 |
26 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+CountDown.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+CountDown.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIButton+CountDown.h"
10 |
11 | @implementation UIButton (CountDown)
12 |
13 | - (void)scheduledTimerWithTimeInterval:(NSInteger)timeInterval
14 | countDownText:(NSString *)text
15 | completion:(void (^)(UIButton *countDownButton))completion {
16 | // 倒计时时间
17 | __block NSInteger timeOut = timeInterval;
18 | dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
19 | dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
20 | // 每秒执行一次
21 | dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);
22 | dispatch_source_set_event_handler(_timer, ^{
23 |
24 | // 倒计时结束,关闭
25 | if (timeOut <= 0) {
26 | dispatch_source_cancel(_timer);
27 | dispatch_async(dispatch_get_main_queue(), ^{
28 | self.userInteractionEnabled = YES;
29 | if (completion) {
30 | completion(self);
31 | }
32 | });
33 | } else {
34 | int allTime = (int)timeInterval + 1;
35 | int timeInterval = timeOut % allTime;
36 | NSString *timeStr = [NSString stringWithFormat:@"%d", timeInterval];
37 | dispatch_async(dispatch_get_main_queue(), ^{
38 | [self setTitle:[NSString stringWithFormat:@"%@ %@", timeStr, text] forState:UIControlStateNormal];
39 | self.userInteractionEnabled = NO;
40 | });
41 | timeOut--;
42 | }
43 | });
44 |
45 | dispatch_resume(_timer);
46 | }
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+ImageTitleStyle.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+ImageTitleStyle.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/1/17.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /*
12 | 针对同时设置了Image和Title的场景时UIButton中的图片和文字的关系
13 | */
14 | typedef NS_ENUM(NSInteger, ButtonImageTitleStyle ) {
15 | ButtonImageTitleStyleDefault = 0, //图片在左,文字在右,整体居中。
16 | ButtonImageTitleStyleLeft = 0, //图片在左,文字在右,整体居中。
17 | ButtonImageTitleStyleRight = 2, //图片在右,文字在左,整体居中。
18 | ButtonImageTitleStyleTop = 3, //图片在上,文字在下,整体居中。
19 | ButtonImageTitleStyleBottom = 4, //图片在下,文字在上,整体居中。
20 | ButtonImageTitleStyleCenterTop = 5, //图片居中,文字在上距离按钮顶部。
21 | ButtonImageTitleStyleCenterBottom = 6, //图片居中,文字在下距离按钮底部。
22 | ButtonImageTitleStyleCenterUp = 7, //图片居中,文字在图片上面。
23 | ButtonImageTitleStyleCenterDown = 8, //图片居中,文字在图片下面。
24 | ButtonImageTitleStyleRightLeft = 9, //图片在右,文字在左,距离按钮两边边距
25 | ButtonImageTitleStyleLeftRight = 10, //图片在左,文字在右,距离按钮两边边距
26 | };
27 |
28 | @interface UIButton (ImageTitleStyle)
29 |
30 | /*
31 | 调整按钮的文本和image的布局,前提是title和image同时存在才会调整。
32 | padding是调整布局时整个按钮和图文的间隔。
33 |
34 | */
35 | - (void)setButtonImageTitleStyle:(ButtonImageTitleStyle)style
36 | padding:(CGFloat)padding;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Indicator.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Indicator.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (Indicator)
12 |
13 | /**
14 | This method will show the activity indicator in place of the button text.
15 | */
16 | - (void)showIndicator;
17 |
18 | /**
19 | This method will remove the indicator and put thebutton text back in place.
20 | */
21 | - (void)hideIndicator;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Indicator.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Indicator.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIButton+Indicator.h"
10 | #import
11 |
12 | // Associative reference keys.
13 | static NSString *const UIButton_IndicatorViewKey = @"UIButton_IndicatorViewKey";
14 | static NSString *const UIButton_ButtonTextObjectKey = @"UIButton_ButtonTextObjectKey";
15 |
16 | @implementation UIButton (Indicator)
17 |
18 | - (void)showIndicator {
19 |
20 | UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
21 | indicator.center = CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2);
22 | [indicator startAnimating];
23 |
24 | NSString *currentButtonText = self.titleLabel.text;
25 |
26 | objc_setAssociatedObject(self, &UIButton_ButtonTextObjectKey, currentButtonText, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
27 | objc_setAssociatedObject(self, &UIButton_IndicatorViewKey, indicator, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
28 |
29 | [self setTitle:@"" forState:UIControlStateNormal];
30 | self.enabled = NO;
31 | [self addSubview:indicator];
32 | }
33 |
34 | - (void)hideIndicator {
35 |
36 | NSString *currentButtonText = (NSString *)objc_getAssociatedObject(self, &UIButton_ButtonTextObjectKey);
37 | UIActivityIndicatorView *indicator = (UIActivityIndicatorView *)objc_getAssociatedObject(self, &UIButton_IndicatorViewKey);
38 |
39 | [indicator removeFromSuperview];
40 | [self setTitle:currentButtonText forState:UIControlStateNormal];
41 | self.enabled = YES;
42 |
43 | }
44 |
45 | @end
46 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+Submitting.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Submitting.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | // https://github.com/foxsofter/FXCategories
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /**
14 | * @author foxsofter, 15-09-24 10:09:49
15 | *
16 | * @brief 为UIButton添加提交状态,通过ActivityIndicator表示
17 | */
18 | @interface UIButton (Submitting)
19 |
20 | /**
21 | * @brief 按钮点击后,禁用按钮并居中显示ActivityIndicator
22 | */
23 | - (void)beginSubmitting;
24 |
25 | /**
26 | * @brief 按钮点击后,禁用按钮并在按钮上显示ActivityIndicator,以及title
27 | *
28 | * @param title 按钮上显示的文字
29 | */
30 | - (void)beginSubmitting:(NSString * _Nullable)title;
31 |
32 | /**
33 | * @brief 按钮点击后,恢复按钮点击前的状态
34 | */
35 | - (void)endSubmitting;
36 |
37 | /**
38 | * @brief 按钮是否正在提交中
39 | */
40 | @property (nonatomic, readonly, getter=isSubmitting) BOOL submitting;
41 |
42 | @end
43 |
44 | NS_ASSUME_NONNULL_END
45 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+TouchAreaInsets.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+TouchAreaInsets.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (TouchAreaInsets)
12 |
13 | /**
14 | * @brief 设置按钮额外热区
15 | */
16 | @property (nonatomic, assign) UIEdgeInsets touchAreaInsets;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIButton/UIButton+TouchAreaInsets.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+TouchAreaInsets.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIButton+TouchAreaInsets.h"
10 | #import
11 |
12 | @implementation UIButton (TouchAreaInsets)
13 |
14 | - (UIEdgeInsets)touchAreaInsets {
15 | return [objc_getAssociatedObject(self, @selector(touchAreaInsets)) UIEdgeInsetsValue];
16 | }
17 |
18 | - (void)setTouchAreaInsets:(UIEdgeInsets)touchAreaInsets {
19 | NSValue *value = [NSValue valueWithUIEdgeInsets:touchAreaInsets];
20 | objc_setAssociatedObject(self, @selector(touchAreaInsets), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
21 | }
22 |
23 | - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
24 | UIEdgeInsets touchAreaInsets = self.touchAreaInsets;
25 | CGRect bounds = self.bounds;
26 | bounds = CGRectMake(bounds.origin.x - touchAreaInsets.left,
27 | bounds.origin.y - touchAreaInsets.top,
28 | bounds.size.width + touchAreaInsets.left + touchAreaInsets.right,
29 | bounds.size.height + touchAreaInsets.top + touchAreaInsets.bottom);
30 | return CGRectContainsPoint(bounds, point);
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UICollectionView/CollectionViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // CollectionViewPlaceHolderDelegate.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/27.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | @protocol CollectionViewPlaceHolderDelegate
10 |
11 | @required
12 | /*!
13 | @brief make an empty overlay view when the tableView is empty
14 | @return an empty overlay view
15 | */
16 | - (UIView *)makePlaceHolderView;
17 |
18 | @optional
19 | /*!
20 | @brief enable collectionView scroll when place holder view is showing, it is disabled by default.
21 | @attention There is no need to return NO, it will be NO by default
22 | @return enable collectionView scroll, you can only return YES
23 | */
24 | - (BOOL)enableScrollWhenPlaceHolderViewShowing;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UICollectionView/UICollectionView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UICollectionView+PlaceHolder.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/27.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UICollectionView (PlaceHolder)
12 |
13 | /**
14 | my_reloadData 替换 reloadData,自动添加或删除 place holder 视图
15 | */
16 | - (void)my_reloadData;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIColor/UIColor+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIColor (Addition)
12 |
13 | /**
14 | Return a randomColor (just for test UI)
15 |
16 | @return randomColor
17 | */
18 | + (UIColor *)randomColor;
19 |
20 | /**
21 | * @brief get color from hex string
22 | *
23 | * @param hexStr #RGB #ARGB #RRGGBB #AARRGGBB
24 | *
25 | * @return color
26 | */
27 | + (UIColor *)colorWithHexString:(NSString *)hexStr;
28 | + (UIColor *)colorWithHexString:(NSString *)color alpha:(CGFloat)alphaValue;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIDevice/UIDevice+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIDevice+Addition.h
3 | // FXKitExampleDemo
4 | //
5 | // Created by sunjinshuai on 2017/7/21.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIDevice (Addition)
12 |
13 | /**
14 | 获取UUID
15 | */
16 | + (NSString *)generateUuidString;
17 |
18 | /**
19 | 设备版本
20 | */
21 | + (NSString *)deviceModel;
22 |
23 | /**
24 | 手机系统版本
25 | */
26 | + (NSString *)systemVersion;
27 |
28 | /**
29 | IFV/IDFV (Identifier for Vendor)
30 | */
31 | + (NSString *)appleIFV;
32 |
33 | /**
34 | 获取当前版本号
35 | */
36 | + (NSString *)getVersionNumber;
37 |
38 | + (NSString *)platform;
39 |
40 | /**
41 | 获取当前网络运营商的名称
42 | @return 中国移动/中国联通/中国电信或者其他运营商
43 | */
44 | + (NSString *)getCarrierName;
45 |
46 | /**
47 | 获取当前设备的CPU数量
48 | @return NSUInteger
49 | */
50 | + (NSUInteger)getCurrentDeviceCPUCount;
51 |
52 | /**
53 | 获取当前设备CPU总的使用百分比
54 | @return CGFloat
55 | */
56 | + (CGFloat)getCurrentDeviceAllCoreCPUUse;
57 |
58 | /**
59 | 获取当前设备单个CPU使用的百分比
60 | @return NSArray;
61 | */
62 | + (NSArray *)getCurrentDeviceSingleCoreCPUUse;
63 |
64 | /**
65 | 获取当前设备的单元网络地址
66 | @return NSString
67 | */
68 | + (NSString *)getCurrentDeviceIPAddressWithCell;
69 |
70 | /**
71 | 获取当前设备的WiFi地址
72 | @return NSString
73 | */
74 | + (NSString *)getCurrentDeviceIPAddressWithWiFi;
75 |
76 | /**
77 | 获取当前设备的IP地址
78 |
79 | @return NSString
80 | */
81 | + (NSString *)getCurrentDeviceIPAddresses;
82 |
83 | //Return the current device CPU frequency
84 | + (NSUInteger)cpuFrequency;
85 | // Return the current device BUS frequency
86 | + (NSUInteger)busFrequency;
87 | //current device RAM size
88 | + (NSUInteger)ramSize;
89 | //Return the current device CPU number
90 | + (NSUInteger)cpuNumber;
91 | //Return the current device total memory
92 | + (NSUInteger)totalMemoryBytes;
93 |
94 | @end
95 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Addition.h
3 | // FXKitExampleDemo
4 | //
5 | // Created by sunjinshuai on 2017/7/19.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIImage (Addition)
14 |
15 | /**
16 | * @brief 根据name获取GIF图片
17 | *
18 | * @param name 图片名称
19 | *
20 | * @return 返回处理后的图片
21 | */
22 | + (nullable UIImage *)animatedGIFNamed:(NSString *)name;
23 |
24 | /**
25 | * @brief 根据data获取GIF图片
26 | *
27 | * @param data 图片数据流
28 | *
29 | * @return 返回处理后的图片
30 | */
31 | + (nullable UIImage *)animatedGIFWithData:(NSData *)data;
32 |
33 | /**
34 | * @brief 根据图片路径获取图片
35 | *
36 | * @param imageName 图片路径名称
37 | *
38 | * @return 返回处理后的图片
39 | */
40 | + (nullable UIImage *)imageNoCacheWithName:(NSString *)imageName;
41 |
42 | @end
43 |
44 | NS_ASSUME_NONNULL_END
45 |
46 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImage/UIImage+Color.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Color.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Color)
12 |
13 | /**
14 | * @brief 取图片某一点的颜色
15 | *
16 | * @param point 某一点
17 | *
18 | * @return 颜色
19 | */
20 | - (UIColor *)colorAtPoint:(CGPoint)point;
21 |
22 | /**
23 | * @brief 取某一像素的颜色
24 | *
25 | * @param point 一像素
26 | *
27 | * @return 颜色
28 | */
29 | - (UIColor *)colorAtPixel:(CGPoint)point;
30 |
31 | /**
32 | * @brief 返回该图片是否有透明度通道
33 | *
34 | * @return 是否有透明度通道
35 | */
36 | - (BOOL)hasAlphaChannel;
37 |
38 | /**
39 | * @brief 获得灰度图
40 | *
41 | * @param sourceImage 图片
42 | *
43 | * @return 获得灰度图片
44 | */
45 | + (UIImage *)covertToGrayImageFromImage:(UIImage *)sourceImage;
46 |
47 | /**
48 | * @brief 根据颜色生成图片,默认size为{1.f, 1.f}
49 | * @param color 传入颜色
50 | * @return 返回图片
51 | */
52 | + (UIImage *)createImageWithColor:(UIColor *)color;
53 |
54 | /**
55 | * @brief 设置图片的透明度
56 | * @param alpha 透明度
57 | * @return 返回处理后的图片
58 | */
59 | - (UIImage *)imageWithAlpha:(CGFloat)alpha;
60 |
61 | /**
62 | * @brief 设置图片的size
63 | * @return 返回改变size之后的图片
64 | */
65 | - (UIImage *)resizeTo:(CGSize)size;
66 |
67 | @end
68 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImage/UIImage+CornerRadius.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+CornerRadius.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (CornerRadius)
12 |
13 | /**
14 | 将图片进行圆角处理,默认无边框(此操作是线程安全的)。
15 | @param radius 圆角大小
16 | @param newSize 图片将会缩放成的目标大小
17 | @return 返回处理之后的图片
18 | */
19 | - (nullable UIImage *)imageByRoundCornerRadius:(CGFloat)radius
20 | scaleSize:(CGSize)newSize;
21 |
22 | /**
23 | 将图片进行圆角处理,并加上边框(此操作是线程安全的)。
24 | @param radius 圆角大小
25 | @param newSize 图片将会缩放成的目标大小
26 | @param borderWidth 边框宽度
27 | @param borderColor 边框颜色
28 | @return 返回处理之后的图片
29 | */
30 | - (nullable UIImage *)imageByRoundCornerRadius:(CGFloat)radius
31 | scaleSize:(CGSize)newSize
32 | borderWidth:(CGFloat)borderWidth
33 | borderColor:(nullable UIColor *)borderColor;
34 |
35 | /**
36 | 图片加上圆形边框,图片必须得是正方形的,否则直接返回未加边框的原图片(此操作是线程安全的)
37 | @param color 边框颜色
38 | @param width 边框宽度
39 | @return 返回处理之后的图片
40 | */
41 | - (nullable UIImage *)imageByRoundBorderedColor:(nullable UIColor *)color
42 | borderWidth:(CGFloat)width;
43 |
44 | /**
45 | 创建一张纯色的圆形图片
46 | @param color 图片填充的颜色
47 | @param radius 圆形图片的半径
48 | @return 返回纯色的圆形图片
49 | */
50 | + (nullable UIImage *)roundImageWithColor:(nullable UIColor *)color
51 | radius:(CGFloat)radius;
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImage/UIImage+ImageEffects.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+ImageEffects.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/27.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (ImageEffects)
12 |
13 | /**
14 | * Get blured image.
15 | *
16 | * @return Blured image.
17 | */
18 | - (UIImage *)blurImage;
19 |
20 | /**
21 | * Get the blured image masked by another image.
22 | *
23 | * @param maskImage Image used for mask.
24 | *
25 | * @return the Blured image.
26 | */
27 | - (UIImage *)blurImageWithMask:(UIImage *)maskImage;
28 |
29 | /**
30 | * Get blured image and you can set the blur radius.
31 | *
32 | * @param radius Blur radius.
33 | *
34 | * @return Blured image.
35 | */
36 | - (UIImage *)blurImageWithRadius:(CGFloat)radius;
37 |
38 | /**
39 | * Get blured image at specified frame.
40 | *
41 | * @param frame The specified frame that you use to blur.
42 | *
43 | * @return Blured image.
44 | */
45 | - (UIImage *)blurImageAtFrame:(CGRect)frame;
46 |
47 | #pragma mark - Grayscale Image
48 |
49 | /**
50 | * Get grayScale image.
51 | *
52 | * @return GrayScaled image.
53 | */
54 | - (UIImage *)grayScale;
55 |
56 | #pragma mark - Some Useful Method
57 |
58 | /**
59 | * Scale image with fixed width.
60 | *
61 | * @param width The fixed width you give.
62 | *
63 | * @return Scaled image.
64 | */
65 | - (UIImage *)scaleWithFixedWidth:(CGFloat)width;
66 |
67 | /**
68 | * Scale image with fixed height.
69 | *
70 | * @param height The fixed height you give.
71 | *
72 | * @return Scaled image.
73 | */
74 | - (UIImage *)scaleWithFixedHeight:(CGFloat)height;
75 |
76 | /**
77 | * Get the image average color.
78 | *
79 | * @return Average color from the image.
80 | */
81 | - (UIColor *)averageColor;
82 |
83 | /**
84 | * Get cropped image at specified frame.
85 | *
86 | * @param frame The specified frame that you use to crop.
87 | *
88 | * @return Cropped image
89 | */
90 | - (UIImage *)croppedImageAtFrame:(CGRect)frame;
91 |
92 | @end
93 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+CornerRadius.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+CornerRadius.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (CornerRadius)
12 |
13 | @property (nonatomic, assign) CGFloat myCornerRadius;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIImageView/UIImageView+RectCorner.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+RectCorner.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/20.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (RectCorner)
12 |
13 | - (instancetype)initWithCornerRadiusAdvance:(CGFloat)cornerRadius
14 | rectCornerType:(UIRectCorner)rectCornerType;
15 |
16 | - (void)cornerRadiusAdvance:(CGFloat)cornerRadius rectCornerType:(UIRectCorner)rectCornerType;
17 |
18 | - (instancetype)initWithRoundingRectImageView;
19 |
20 | - (void)cornerRadiusRoundingRect;
21 |
22 | - (void)attachBorderWidth:(CGFloat)width color:(UIColor *)color;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UILabel/UILabel+CountDown.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+CountDown.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UILabel (CountDown)
12 |
13 | /**
14 | 倒计时
15 |
16 | @param timeInterval 倒计时时长
17 | @param text 倒计时内容
18 | @param completion 倒计时之后回调
19 | */
20 | - (void)scheduledTimerWithTimeInterval:(NSInteger)timeInterval
21 | countDownText:(NSString *)text
22 | completion:(void (^)(UILabel *countDownLabel))completion;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UILabel/UILabel+CountDown.m:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+CountDown.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UILabel+CountDown.h"
10 |
11 | @implementation UILabel (CountDown)
12 |
13 | - (void)scheduledTimerWithTimeInterval:(NSInteger)timeInterval
14 | countDownText:(NSString *)text
15 | completion:(void (^)(UILabel *countDownLabel))completion {
16 | // 倒计时时间
17 | __block NSInteger timeOut = timeInterval;
18 | dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
19 | dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
20 | // 每秒执行一次
21 | dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);
22 | dispatch_source_set_event_handler(_timer, ^{
23 |
24 | // 倒计时结束,关闭
25 | if (timeOut <= 0) {
26 | dispatch_source_cancel(_timer);
27 | dispatch_async(dispatch_get_main_queue(), ^{
28 | self.userInteractionEnabled = YES;
29 | if (completion) {
30 | completion(self);
31 | }
32 | });
33 | } else {
34 | int allTime = (int)timeInterval + 1;
35 | int timeInterval = timeOut % allTime;
36 | NSString *timeStr = [NSString stringWithFormat:@"%d", timeInterval];
37 | dispatch_async(dispatch_get_main_queue(), ^{
38 | [self setText:[NSString stringWithFormat:@"%@%@", timeStr, text]];
39 | self.userInteractionEnabled = NO;
40 | });
41 | timeOut--;
42 | }
43 | });
44 |
45 | dispatch_resume(_timer);
46 | }
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UILabel/UILabel+LineSpacing.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+LineSpacing.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/20.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | 此分类适合Label文本指定的行数,行间距等
13 | */
14 | @interface UILabel (LineSpacing)
15 |
16 | // 请不要将属性名称取为lineSpacing,UILabel已有此隐藏属性。
17 | @property (nonatomic, assign) CGFloat lineSpace;
18 |
19 | + (void)registerLineSpacingSelector;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UILabel/UILabel+LineSpacing.m:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+LineSpacing.m
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/20.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UILabel+LineSpacing.h"
10 | #import "NSObject+Swizzle.h"
11 | #import "NSString+Size.h"
12 |
13 | @implementation UILabel (LineSpacing)
14 |
15 | static char *lineSpaceKey;
16 |
17 | + (void)registerLineSpacingSelector {
18 |
19 | // 防御对象实例方法
20 | [self instanceSwizzleMethod:@selector(setText:) replaceMethod:@selector(setHasLineSpaceText:)];
21 | }
22 |
23 | // 设置带有行间距的文本。
24 | - (void)setHasLineSpaceText:(NSString *)text {
25 |
26 | if (!text.length || self.lineSpace == 0) {
27 | [self setHasLineSpaceText:text];
28 | return;
29 | }
30 |
31 | NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
32 | paragraphStyle.lineSpacing = self.lineSpace - (self.font.lineHeight - self.font.pointSize);
33 | paragraphStyle.lineBreakMode = self.lineBreakMode;
34 | NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
35 | [attributes setObject:paragraphStyle forKey:NSParagraphStyleAttributeName];
36 | self.attributedText = [[NSAttributedString alloc] initWithString:text attributes:attributes];
37 | }
38 |
39 | - (void)setLineSpace:(CGFloat)lineSpace {
40 |
41 | objc_setAssociatedObject(self, &lineSpaceKey, @(lineSpace), OBJC_ASSOCIATION_ASSIGN);
42 | self.text = self.text;
43 | }
44 |
45 | - (CGFloat)lineSpace {
46 | return [objc_getAssociatedObject(self, &lineSpaceKey) floatValue];
47 | }
48 |
49 | @end
50 |
51 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationBar/UINavigationBar+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/22.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (Addition)
12 |
13 | /**
14 | 设置导航栏所有BarButtonItem的透明度
15 | */
16 | - (void)setBarButtonItemsAlpha:(CGFloat)alpha hasSystemBackIndicator:(BOOL)hasSystemBackIndicator;
17 |
18 | /**
19 | 设置Bar偏移
20 | @param translationY 偏移量
21 | */
22 | - (void)setTranslationY:(CGFloat)translationY;
23 |
24 | /**
25 | 获取当前导航栏在垂直方向上偏移了多少
26 | */
27 | - (CGFloat)getTranslationY;
28 |
29 | /**
30 | * 隐藏导航栏下面的分割线
31 | */
32 | - (void)hideBottomHairline;
33 |
34 | /**
35 | * 显示导航栏下面的分割线
36 | */
37 | - (void)showBottomHairline;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Addition.h
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationController (Addition)
12 |
13 | /**
14 | * @brief 寻找Navigation中的某个viewcontroler对象
15 | *
16 | * @param className viewcontroler名称
17 | *
18 | * @return viewcontroler对象
19 | */
20 | - (id)findViewController:(NSString *)className;
21 |
22 | /**
23 | * @brief 判断是否只有一个RootViewController
24 | *
25 | * @return 是否只有一个RootViewController
26 | */
27 | - (BOOL)isOnlyContainRootViewController;
28 |
29 | /**
30 | * @brief RootViewController
31 | *
32 | * @return RootViewController
33 | */
34 | - (UIViewController *)rootViewController;
35 |
36 | /**
37 | * @brief 返回指定的viewcontroler
38 | *
39 | * @param className 指定viewcontroler类名
40 | * @param animated 是否动画
41 | *
42 | * @return pop之后的viewcontrolers
43 | */
44 | - (NSArray *)popToViewControllerWithClassName:(NSString *)className
45 | animated:(BOOL)animated;
46 |
47 | /**
48 | * @brief pop n层
49 | *
50 | * @param level n层
51 | * @param animated 是否动画
52 | *
53 | * @return pop之后的viewcontrolers
54 | */
55 | - (NSArray *)popToViewControllerWithLevel:(NSInteger)level animated:(BOOL)animated;
56 |
57 | @end
58 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+Addition.m:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Addition.m
3 | // MYUtils
4 | //
5 | // Created by sunjinshuai on 2017/8/28.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UINavigationController+Addition.h"
10 |
11 | @implementation UINavigationController (Addition)
12 |
13 | - (id)findViewController:(NSString *)className {
14 | for (UIViewController *viewController in self.viewControllers) {
15 | if ([viewController isKindOfClass:NSClassFromString(className)]) {
16 | return viewController;
17 | }
18 | }
19 |
20 | return nil;
21 | }
22 |
23 | - (BOOL)isOnlyContainRootViewController {
24 | if (self.viewControllers &&
25 | self.viewControllers.count == 1) {
26 | return YES;
27 | }
28 | return NO;
29 | }
30 |
31 | - (UIViewController *)rootViewController {
32 | if (self.viewControllers && [self.viewControllers count] >0) {
33 | return [self.viewControllers firstObject];
34 | }
35 | return nil;
36 | }
37 |
38 | - (NSArray *)popToViewControllerWithClassName:(NSString *)className
39 | animated:(BOOL)animated {
40 | return [self popToViewController:[self findViewController:className] animated:YES];
41 | }
42 |
43 | - (NSArray *)popToViewControllerWithLevel:(NSInteger)level animated:(BOOL)animated {
44 | NSInteger viewControllersCount = self.viewControllers.count;
45 | if (viewControllersCount > level) {
46 | NSInteger idx = viewControllersCount - level - 1;
47 | UIViewController *viewController = self.viewControllers[idx];
48 | return [self popToViewController:viewController animated:animated];
49 | } else {
50 | return [self popToRootViewControllerAnimated:animated];
51 | }
52 | }
53 |
54 | @end
55 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+BackButtonHandler.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+BackButtonHandler.h
3 | // MYKitDemo
4 | //
5 | // Created by michael on 2018/12/15.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol BackButtonHandlerProtocol
12 | @optional
13 | // 重写下面的方法以拦截导航栏返回按钮点击事件,返回 YES 则 pop,NO 则不 pop
14 | - (BOOL)navigationShouldPopOnBackButton;
15 | @end
16 |
17 | @interface UIViewController (ShouldPopOnBackButton)
18 |
19 | @end
20 |
21 | @interface UINavigationController (BackButtonHandler)
22 |
23 | - (BOOL)navigationBar:(UINavigationBar *)navigationBar
24 | shouldPopItem:(UINavigationItem *)item;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationController/UINavigationController+BackButtonHandler.m:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+BackButtonHandler.m
3 | // MYKitDemo
4 | //
5 | // Created by michael on 2018/12/15.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UINavigationController+BackButtonHandler.h"
10 |
11 | @implementation UIViewController (ShouldPopOnBackButton)
12 |
13 | @end
14 |
15 | @implementation UINavigationController (BackButtonHandler)
16 |
17 | - (BOOL)navigationBar:(UINavigationBar *)navigationBar
18 | shouldPopItem:(UINavigationItem *)item {
19 | if ([self.viewControllers count] < [navigationBar.items count]) {
20 | return YES;
21 | }
22 |
23 | BOOL shouldPop = YES;
24 | UIViewController *vc = [self topViewController];
25 | if ([vc respondsToSelector:@selector(navigationShouldPopOnBackButton)]) {
26 | shouldPop = [vc navigationShouldPopOnBackButton];
27 | }
28 |
29 | if (shouldPop) {
30 | dispatch_async(dispatch_get_main_queue(), ^{
31 | [self popViewControllerAnimated:YES];
32 | });
33 | } else {
34 | // 取消 pop 后,复原返回按钮的状态
35 | for (UIView *subview in [navigationBar subviews]) {
36 | if(0. < subview.alpha && subview.alpha < 1.) {
37 | [UIView animateWithDuration:.25 animations:^{
38 | subview.alpha = 1.;
39 | }];
40 | }
41 | }
42 | }
43 | return NO;
44 | }
45 |
46 | @end
47 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Loading.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Loading.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Position to show UIActivityIndicatorView in a navigation bar
13 | */
14 | typedef NS_ENUM(NSUInteger, ANNavBarLoaderPosition){
15 | /**
16 | * Will show UIActivityIndicatorView in place of title view
17 | */
18 | ANNavBarLoaderPositionCenter = 0,
19 | /**
20 | * Will show UIActivityIndicatorView in place of left item
21 | */
22 | ANNavBarLoaderPositionLeft,
23 | /**
24 | * Will show UIActivityIndicatorView in place of right item
25 | */
26 | ANNavBarLoaderPositionRight
27 | };
28 |
29 | @interface UINavigationItem (Loading)
30 |
31 | /**
32 | * Add UIActivityIndicatorView to view hierarchy and start animating immediately
33 | *
34 | * @param position Left, center or right
35 | */
36 | - (void)startAnimatingAt:(ANNavBarLoaderPosition)position;
37 |
38 | /**
39 | * Stop animating, remove UIActivityIndicatorView from view hierarchy and restore item
40 | */
41 | - (void)stopAnimating;
42 |
43 | @end
44 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UINavigationItem/UINavigationItem+Margin.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Margin.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | // https://github.com/devxoul/UINavigationItem-Margin
8 |
9 | #import
10 |
11 | FOUNDATION_EXPORT double UINavigationItem_MarginVersionNumber;
12 | FOUNDATION_EXPORT const unsigned char UINavigationItem_MarginVersionString[];
13 |
14 | @interface UINavigationItem (Margin)
15 |
16 | @property (nonatomic, assign) CGFloat leftMargin;
17 | @property (nonatomic, assign) CGFloat rightMargin;
18 |
19 | + (CGFloat)systemMargin;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Chain.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Chain.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIResponder (Chain)
12 |
13 | /**
14 | * @brief 响应者链
15 | *
16 | * @return 响应者链
17 | */
18 | - (NSString *)responderChainDescription;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Chain.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Chain.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIResponder+Chain.h"
10 |
11 | @implementation UIResponder (Chain)
12 |
13 | - (NSString *)responderChainDescription
14 | {
15 | NSMutableArray *responderChainStrings = [NSMutableArray array];
16 | [responderChainStrings addObject:[self class]];
17 | UIResponder *nextResponder = self;
18 | while ((nextResponder = [nextResponder nextResponder])) {
19 | [responderChainStrings addObject:[nextResponder class]];
20 | }
21 | __block NSString *returnString = @"Responder Chain:\n";
22 | __block int tabCount = 0;
23 | [responderChainStrings enumerateObjectsWithOptions:NSEnumerationReverse
24 | usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
25 | if (tabCount) {
26 | returnString = [returnString stringByAppendingString:@"|"];
27 | for (int i = 0; i < tabCount; i++) {
28 | returnString = [returnString stringByAppendingString:@"----"];
29 | }
30 | returnString = [returnString stringByAppendingString:@" "];
31 | }
32 | else {
33 | returnString = [returnString stringByAppendingString:@"| "];
34 | }
35 | returnString = [returnString stringByAppendingFormat:@"%@ (%@)\n", obj, @(idx)];
36 | tabCount++;
37 | }];
38 | return returnString;
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Router.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Router.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIResponder (Router)
12 |
13 | /**
14 | * 发送一个路由器消息, 对eventName感兴趣的 UIResponsder 可以对消息进行处理
15 | *
16 | * @param eventName 发生的事件名称
17 | * @param userInfo 传递消息时, 携带的数据, 数据传递过程中, 会有新的数据添加
18 | *
19 | */
20 | - (void)routerEventWithName:(NSString *)eventName userInfo:(NSDictionary *)userInfo;
21 |
22 | @end
23 |
24 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIResponder/UIResponder+Router.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Router.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIResponder+Router.h"
10 |
11 | @implementation UIResponder (Router)
12 |
13 | - (void)routerEventWithName:(NSString *)eventName userInfo:(NSDictionary *)userInfo
14 | {
15 | [[self nextResponder] routerEventWithName:eventName userInfo:userInfo];
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIScreen/UIScreen+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScreen+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/11/18.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScreen (Addition)
12 |
13 | /**
14 | * @brief 主屏幕的bounds
15 | *
16 | * @return bounds
17 | */
18 | + (CGRect)bounds;
19 |
20 | /**
21 | * @brief 主屏幕的size
22 | *
23 | * @return size
24 | */
25 | + (CGSize)size;
26 |
27 | /**
28 | * @brief 主屏幕的width
29 | *
30 | * @return width
31 | */
32 | + (CGFloat)width;
33 |
34 | /**
35 | * @brief 主屏幕的height
36 | *
37 | * @return height
38 | */
39 | + (CGFloat)height;
40 |
41 | /**
42 | * @brief 比例
43 | *
44 | * @return scale
45 | */
46 | + (CGFloat)scale;
47 |
48 | /**
49 | * @brief 当前屏幕的size
50 | */
51 | @property (nonatomic, readonly) CGSize size;
52 |
53 | /**
54 | * @brief 当前屏幕的width
55 | */
56 | @property (nonatomic, readonly) CGFloat width;
57 |
58 | /**
59 | * @brief 当前屏幕的height
60 | */
61 | @property (nonatomic, readonly) CGFloat height;
62 |
63 | /**
64 | * @brief 状态栏的高度
65 | *
66 | * @return CGFloat
67 | */
68 | + (CGFloat)statusBarHeight;
69 |
70 | /**
71 | * @brief 导航栏的高度
72 | *
73 | * @return CGFloat
74 | */
75 | + (CGFloat)navigationBarHeight;
76 |
77 | /**
78 | * @brief tab菜单的高度
79 | *
80 | * @return CGFloat
81 | */
82 | + (CGFloat)tabBarHeight;
83 |
84 | + (CGFloat)ceilPixelValue:(CGFloat)pixelValue;
85 |
86 | + (CGFloat)roundPixelValu:(CGFloat)pixelValue;
87 |
88 | + (CGFloat)floorPixelValue:(CGFloat)pixelValue;
89 |
90 | + (CGFloat)pixelResize:(CGFloat)value;
91 |
92 | + (CGRect)pixelFrameResize:(CGRect)value;
93 |
94 | + (CGPoint)pixelPointResize:(CGPoint)value;
95 |
96 | + (CGFloat)screenResizeScale;
97 |
98 | + (CGFloat)screenHeightResizeScale;
99 |
100 | @end
101 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIScrollView/UIScrollView+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (Addition)
12 |
13 | /**
14 | * @brief get contentOffset.x
15 | */
16 | @property (nonatomic) CGFloat contentOffsetX;
17 |
18 | /**
19 | * @brief get contentOffset.y
20 | */
21 | @property (nonatomic) CGFloat contentOffsetY;
22 |
23 | /**
24 | * @brief get contentSize.width
25 | */
26 | @property (nonatomic) CGFloat contentSizeWidth;
27 |
28 | /**
29 | * @brief get contentSize.height
30 | */
31 | @property (nonatomic) CGFloat contentSizeHeight;
32 |
33 | /**
34 | * @brief get contentInset.top
35 | */
36 | @property (nonatomic) CGFloat contentInsetTop;
37 |
38 | /**
39 | * @brief get contentInset.left
40 | */
41 | @property (nonatomic) CGFloat contentInsetLeft;
42 |
43 | /**
44 | * @brief get contentInset.bottom
45 | */
46 | @property (nonatomic) CGFloat contentInsetBottom;
47 |
48 | /**
49 | * @brief get contentInset.right
50 | */
51 | @property (nonatomic) CGFloat contentInsetRight;
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITableView/TableViewPlaceHolderDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // TableViewPlaceHolderDelegate.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/27.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | @protocol TableViewPlaceHolderDelegate
10 |
11 | @required
12 | /*!
13 | @brief make an empty overlay view when the tableView is empty
14 | @return an empty overlay view
15 | */
16 | - (UIView *)makePlaceHolderView;
17 |
18 | @optional
19 | /*!
20 | @brief enable tableView scroll when place holder view is showing, it is disabled by default.
21 | @attention There is no need to return NO, it will be NO by default
22 | @return enable tableView scroll, you can only return YES
23 | */
24 | - (BOOL)enableScrollWhenPlaceHolderViewShowing;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITableView/UITableView+PlaceHolder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+PlaceHolder.h
3 | // MYKitDemo
4 | //
5 | // Created by QMMac on 2018/7/27.
6 | // Copyright © 2018 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableView (PlaceHolder)
12 |
13 | /**
14 | my_reloadData 替换 reloadData,自动添加或删除 place holder 视图
15 | */
16 | - (void)my_reloadData;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextField/UITextField+InputLimit.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+InputLimit.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (InputLimit)
12 |
13 | @property (nonatomic, assign) NSInteger maxLength;//if <=0, no limit
14 |
15 | @end
16 |
17 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextField/UITextField+InputLimit.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+InputLimit.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UITextField+InputLimit.h"
10 | #import
11 |
12 | static const void *TextFieldInputLimitMaxLength = &TextFieldInputLimitMaxLength;
13 |
14 | @implementation UITextField (InputLimit)
15 |
16 | - (NSInteger)maxLength {
17 | return [objc_getAssociatedObject(self, TextFieldInputLimitMaxLength) integerValue];
18 | }
19 |
20 | - (void)setMaxLength:(NSInteger)maxLength {
21 | objc_setAssociatedObject(self, TextFieldInputLimitMaxLength, @(maxLength), OBJC_ASSOCIATION_ASSIGN);
22 | [self addTarget:self
23 | action:@selector(textFieldTextDidChange)
24 | forControlEvents:UIControlEventEditingChanged];
25 | }
26 |
27 | - (void)textFieldTextDidChange {
28 | NSString *toBeString = self.text;
29 | // 获取高亮部分
30 | UITextRange *selectedRange = [self markedTextRange];
31 | UITextPosition *position = [self positionFromPosition:selectedRange.start offset:0];
32 |
33 | // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
34 | // 在iOS7下,position对象总是不为nil
35 | if ((!position ||!selectedRange) && (self.maxLength > 0 && toBeString.length > self.maxLength)) {
36 | NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:self.maxLength];
37 | if (rangeIndex.length == 1) {
38 | self.text = [toBeString substringToIndex:self.maxLength];
39 | } else {
40 | NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, self.maxLength)];
41 | NSInteger tmpLength;
42 | if (rangeRange.length > self.maxLength) {
43 | tmpLength = rangeRange.length - rangeIndex.length;
44 | } else {
45 | tmpLength = rangeRange.length;
46 | }
47 | self.text = [toBeString substringWithRange:NSMakeRange(0, tmpLength)];
48 | }
49 | }
50 | }
51 |
52 | @end
53 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextView/UITextView+InputLengthCalculate.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+InputLengthCalculate.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | // 用于计算textview输入情况下的字符数,解决实现限制字符数时,计算不准的问题
8 |
9 | #import
10 |
11 | @interface UITextView (InputLengthCalculate)
12 |
13 | /*
14 | - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
15 | {
16 | NSInteger textLength = [textView getInputLengthWithText:text];
17 | if (textLength > 20) {
18 | //超过20个字可以删除
19 | if ([text isEqualToString:@""]) {
20 | return YES;
21 | }
22 | return NO;
23 | }
24 | return YES;
25 | }
26 |
27 | - (void)textViewDidChange:(UITextView *)textView
28 | {
29 | if ([textView getInputLengthWithText:nil] > 20) {
30 | textView.text = [textView.text substringToIndex:20];
31 | }
32 | }
33 |
34 | */
35 |
36 | /**
37 | * 用来捕获输入时的字符数的
38 | *
39 | * @param text
40 | 在-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text使用时需要传入replacementText用于计算长度,- (void)textViewDidChange:(UITextView *)textView中使用不需要传入
41 | *
42 | * @return 字符长度
43 | */
44 | - (NSInteger)getInputLengthWithText:(NSString *)text;
45 |
46 | - (void)insertAttributedText:(NSAttributedString *)text;
47 | - (void)insertAttributedText:(NSAttributedString *)text
48 | settingBlock:(void (^)(NSMutableAttributedString *attributedText))settingBlock;
49 |
50 | @end
51 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextView/UITextView+InputLengthCalculate.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+InputLengthCalculate.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UITextView+InputLengthCalculate.h"
10 |
11 | @implementation UITextView (InputLengthCalculate)
12 |
13 | - (NSInteger)getInputLengthWithText:(NSString *)text {
14 | NSInteger textLength = 0;
15 | //获取高亮部分
16 | UITextRange *selectedRange = [self markedTextRange];
17 | if (selectedRange) {
18 | NSString *newText = [self textInRange:selectedRange];
19 | textLength = (newText.length + 1) / 2 + [self offsetFromPosition:self.beginningOfDocument toPosition:selectedRange.start] + text.length;
20 | } else {
21 | textLength = self.text.length + text.length;
22 | }
23 | return textLength;
24 | }
25 |
26 | - (void)insertAttributedText:(NSAttributedString *)text {
27 | [self insertAttributedText:text settingBlock:nil];
28 | }
29 |
30 | - (void)insertAttributedText:(NSAttributedString *)text
31 | settingBlock:(void (^)(NSMutableAttributedString *))settingBlock {
32 | NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] init];
33 | // 拼接之前的文字(图片和普通文字)
34 | [attributedText appendAttributedString:self.attributedText];
35 |
36 | // 拼接其他文字
37 | NSUInteger loc = self.selectedRange.location;
38 | [attributedText replaceCharactersInRange:self.selectedRange withAttributedString:text];
39 |
40 | // 调用外面传进来的代码
41 | if (settingBlock) {
42 | settingBlock(attributedText);
43 | }
44 |
45 | self.attributedText = attributedText;
46 |
47 | // 移除光标到表情的后面
48 | self.selectedRange = NSMakeRange(loc + 1, 0);
49 | }
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextView/UITextView+Select.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+Select.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextView (Select)
12 |
13 | /**
14 | * @brief 当前选中的字符串范围
15 | *
16 | * @return NSRange
17 | */
18 | - (NSRange)selectedRange;
19 | /**
20 | * @brief 选中所有文字
21 | */
22 | - (void)selectAllText;
23 | /**
24 | * @brief 选中指定范围的文字
25 | *
26 | * @param range NSRange范围
27 | */
28 | - (void)setSelectedRange:(NSRange)range;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UITextView/UITextView+Select.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+Select.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UITextView+Select.h"
10 |
11 | @implementation UITextView (Select)
12 |
13 | /**
14 | * @brief 当前选中的字符串范围
15 | *
16 | * @return NSRange
17 | */
18 | - (NSRange)selectedRange {
19 | UITextPosition* beginning = self.beginningOfDocument;
20 |
21 | UITextRange* selectedRange = self.selectedTextRange;
22 | UITextPosition* selectionStart = selectedRange.start;
23 | UITextPosition* selectionEnd = selectedRange.end;
24 |
25 | NSInteger location = [self offsetFromPosition:beginning toPosition:selectionStart];
26 | NSInteger length = [self offsetFromPosition:selectionStart toPosition:selectionEnd];
27 |
28 | return NSMakeRange(location, length);
29 | }
30 | /**
31 | * @brief 选中所有文字
32 | */
33 | - (void)selectAllText {
34 | UITextRange *range = [self textRangeFromPosition:self.beginningOfDocument toPosition:self.endOfDocument];
35 | [self setSelectedTextRange:range];
36 | }
37 | /**
38 | * @brief 选中指定范围的文字
39 | *
40 | * @param range NSRange范围
41 | */
42 | - (void)setSelectedRange:(NSRange)range {
43 | UITextPosition *beginning = self.beginningOfDocument;
44 | UITextPosition *startPosition = [self positionFromPosition:beginning offset:range.location];
45 | UITextPosition *endPosition = [self positionFromPosition:beginning offset:NSMaxRange(range)];
46 | UITextRange *selectionRange = [self textRangeFromPosition:startPosition toPosition:endPosition];
47 | [self setSelectedTextRange:selectionRange];
48 | }
49 |
50 | @end
51 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+Addition.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Addition.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSInteger, MYGradientDirection) {
12 | MYGradientDirectionTopLeft = 0,
13 | MYGradientDirectionTop = 1,
14 | MYGradientDirectionLeft = 2,
15 | };
16 |
17 | @interface UIView (Addition)
18 |
19 | - (void)setGradientBackgroundColors:(NSArray *)colorArray direction:(MYGradientDirection)direction;
20 |
21 | - (void)setGradientBackgroundColors:(NSArray *)colorArray;
22 |
23 | - (void)setGradientBackgroundColorFrom:(UIColor *)fromColor toColor:(UIColor *)toColor;
24 |
25 | /*!
26 | * @method snapshotImage
27 | * 截取view
28 | */
29 | - (UIImage *)snapshotImage;
30 |
31 | /*!
32 | * @method snapshotImageInRect:
33 | * 截取view中rect范围的视图
34 | */
35 | - (UIImage *)snapshotImageInRect:(CGRect)rect;
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+Badge.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Badge.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/12/29.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (Badge)
14 |
15 | /**
16 | 添加一个红点
17 |
18 | @param radius 圆角半径
19 | @param offsetX x
20 | @param offsetY y
21 | */
22 | - (void)addBadgeWithRadius:(CGFloat)radius
23 | offsetX:(CGFloat)offsetX
24 | offsetY:(CGFloat)offsetY;
25 |
26 | /**
27 | 显示一个红点
28 |
29 | @param radius 圆角半径
30 | @param offsetX x
31 | @param offsetY y
32 | */
33 | - (void)showBadgeWithRadius:(CGFloat)radius
34 | offsetX:(CGFloat)offsetX
35 | offsetY:(CGFloat)offsetY;
36 |
37 |
38 | /**
39 | 显示带数字的红点
40 |
41 | @param badgeValue 数字
42 | @param offsetX x
43 | @param offsetY y
44 | */
45 | - (void)showBadgeValue:(NSString *)badgeValue
46 | offsetX:(CGFloat)offsetX
47 | offsetY:(CGFloat)offsetY;
48 |
49 | /**
50 | 显示
51 | */
52 | - (void)showBadge;
53 |
54 | /**
55 | 隐藏
56 | */
57 | - (void)hiddenBadge;
58 |
59 | @end
60 |
61 | NS_ASSUME_NONNULL_END
62 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+CornerRadii.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+CornerRadii.h
3 | // LPDCrowdsource
4 | //
5 | // Created by eMr.Wang on 16/1/29.
6 | // Copyright © 2016年 elm. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (CornerRadii)
14 |
15 | /**
16 | 快速切圆角,带边框、边框颜色
17 |
18 | @param roundingCorners 圆角样式
19 | @param cornerRadii 圆角角度
20 | */
21 | - (void)setCornerRadii:(CGFloat)cornerRadii
22 | roundingCorners:(UIRectCorner)roundingCorners;
23 |
24 | /**
25 | 快速切圆角,带边框、边框颜色
26 |
27 | @param roundingCorners 圆角样式
28 | @param cornerRadii 圆角角度
29 | @param borderWidth 边线宽度
30 | @param borderColor 边线颜色
31 | */
32 | - (void)setCornerRadii:(CGFloat)cornerRadii
33 | roundingCorners:(UIRectCorner)roundingCorners
34 | borderWidth:(CGFloat)borderWidth
35 | borderColor:(UIColor *)borderColor;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+CornerRadii.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+CornerRadii.m
3 | // LPDCrowdsource
4 | //
5 | // Created by eMr.Wang on 16/1/29.
6 | // Copyright © 2016年 elm. All rights reserved.
7 | //
8 |
9 | #import "UIView+CornerRadii.h"
10 |
11 | @implementation UIView (CornerRadii)
12 |
13 | - (void)setCornerRadii:(CGFloat)cornerRadii roundingCorners:(UIRectCorner)roundingCorners {
14 | return [self setCornerRadii:cornerRadii roundingCorners:roundingCorners borderWidth:0 borderColor:[UIColor whiteColor]];
15 | }
16 |
17 | - (void)setCornerRadii:(CGFloat)cornerRadii roundingCorners:(UIRectCorner)roundingCorners borderWidth:(CGFloat)borderWidth
18 | borderColor:(UIColor *)borderColor {
19 | if (self.layer.mask) {
20 | self.layer.mask = nil;
21 | }
22 | self.layer.masksToBounds = YES;
23 | UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
24 | byRoundingCorners:roundingCorners
25 | cornerRadii:CGSizeMake(cornerRadii, cornerRadii)];
26 | CAShapeLayer *maskLayer = [CAShapeLayer layer];
27 | maskLayer.frame = self.bounds;
28 | maskLayer.path = maskPath.CGPath;
29 | self.layer.mask = maskLayer;
30 |
31 | CAShapeLayer *borderLayer = [CAShapeLayer layer];
32 | borderLayer.path = maskPath.CGPath;
33 | borderLayer.fillColor = [UIColor clearColor].CGColor;
34 | borderLayer.strokeColor = borderColor.CGColor;
35 | borderLayer.lineWidth = borderWidth;
36 | borderLayer.frame = self.bounds;
37 |
38 | [self.layer addSublayer:borderLayer];
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+FindSubView.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+FindSubView.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/11/18.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (FindSubView)
12 |
13 | /**
14 | * 判断两个view是否重叠
15 | */
16 | + (BOOL)intersectsWithOtherView:(UIView *)otherView anotherView:(UIView *)anotherView;
17 |
18 | /**
19 | * @brief find all subviews
20 | *
21 | * @param cls class of subview
22 | */
23 | - (NSArray *)subviewsWithClass:(Class)cls;
24 |
25 | /**
26 | * 判断self和view是否重叠
27 | */
28 | - (BOOL)intersectsWithView:(UIView *)view;
29 |
30 | /**
31 | * 查找两个子视图的共同父视图
32 | */
33 | + (NSArray *)findCommonSuperView:(UIView *)viewOne other:(UIView *)viewOther;
34 |
35 | @end
36 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+Gesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Gesture.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^GestureActionBlock)(UIGestureRecognizer *gestureRecoginzer);
12 |
13 | @interface UIView (Gesture)
14 |
15 | /**
16 | * @brief 添加tap手势
17 | *
18 | * @param block 代码块
19 | */
20 | - (void)addTapActionWithBlock:(GestureActionBlock)block;
21 |
22 | /**
23 | * @brief 添加长按手势
24 | *
25 | * @param block 代码块
26 | */
27 | - (void)addLongPressActionWithBlock:(GestureActionBlock)block;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+Line.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Line.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/11/18.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Line)
12 |
13 | /**
14 | * 划各种线 和分割线
15 | */
16 | - (CAShapeLayer *)addBezierLine:(UIBezierPath *)bezierLine color:(UIColor *)lineColor;
17 |
18 | - (CAShapeLayer *)addDottedLine:(CGPoint)startLine endPoint:(CGPoint)endPoint color:(UIColor *)lineColor;
19 |
20 | - (CAShapeLayer *)addLine:(CGPoint)startLine endPoint:(CGPoint)endPoint color:(UIColor *)lineColor;
21 |
22 | - (CAShapeLayer *)addLine:(CGPoint)startLine endPoint:(CGPoint)endPoint lineWidth:(CGFloat)lineWidth color:(UIColor *)lineColor;
23 |
24 | - (CAShapeLayer *)addCornerRadius:(CGFloat)cornerRadius;
25 |
26 | - (CAShapeLayer *)addCornerRadius:(CGFloat)cornerRadius color:(UIColor *)borderColor;
27 |
28 | - (CAShapeLayer *)addCornerRadius:(CGFloat)cornerRadius lineWidth:(CGFloat)lineWidth color:(UIColor *)borderColor;
29 |
30 | - (CAShapeLayer *)addCornerRadius:(CGFloat)cornerRadius lineWidth:(CGFloat)lineWidth color:(UIColor *)borderColor backgroundColor:(UIColor *)backgroundColor;
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+Position.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Position.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Position)
12 |
13 | @property (nonatomic, assign) CGFloat x;
14 | @property (nonatomic, assign) CGFloat y;
15 | @property (nonatomic, assign) CGFloat width;
16 | @property (nonatomic, assign) CGFloat height;
17 | @property (nonatomic, assign) CGSize size;
18 | @property (nonatomic, assign) CGPoint origin;
19 | @property (nonatomic, assign) CGFloat centerX;
20 | @property (nonatomic, assign) CGFloat centerY;
21 | @property (nonatomic, assign) CGFloat left;
22 | @property (nonatomic, assign) CGFloat top;
23 | @property (nonatomic, assign) CGFloat right;
24 | @property (nonatomic, assign) CGFloat bottom;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+SuperController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+SuperController.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (SuperController)
12 |
13 | + (UIViewController *)viewController:(UIView *)view;
14 | + (UINavigationController *)navigationController:(UIView *)view;
15 | - (UIViewController *)viewController;
16 | - (UINavigationController *)navigationController;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIView/UIView+SuperController.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+SuperController.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/6.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIView+SuperController.h"
10 |
11 | @implementation UIView (SuperController)
12 |
13 | + (UIViewController *)viewController:(UIView *)view {
14 | for (UIView *next = [view superview]; next; next = next.superview) {
15 | UIResponder *nextResponder = [next nextResponder];
16 | if ([nextResponder isKindOfClass:[UIViewController class]]) {
17 | return (UIViewController*)nextResponder;
18 | }
19 | }
20 | return nil;
21 | }
22 |
23 | + (UINavigationController *)navigationController:(UIView *)view {
24 | for (UIView *next = [view superview]; next; next = next.superview) {
25 | UIResponder *nextResponder = [next nextResponder];
26 | if ([nextResponder isKindOfClass:[UINavigationController class]]) {
27 | return (UINavigationController*)nextResponder;
28 | }
29 | }
30 | return nil;
31 | }
32 |
33 | - (UIViewController*)viewController {
34 | for (UIView *next = [self superview]; next; next = next.superview) {
35 | UIResponder* nextResponder = [next nextResponder];
36 | if ([nextResponder isKindOfClass:[UIViewController class]]) {
37 | return (UIViewController*)nextResponder;
38 | }
39 | }
40 | return nil;
41 | }
42 |
43 | - (UINavigationController *)navigationController{
44 | UIViewController *viewController = [self viewController];
45 | if (viewController) {
46 | if (viewController.navigationController) {
47 | return viewController.navigationController;
48 | }
49 | }
50 | return nil;
51 | }
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+ClassName.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+ClassName.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/23.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (ClassName)
12 |
13 | + (void)displayClassName:(BOOL)yesOrNo;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PageViewLevel.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+PageViewLevel.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (PageViewLevel)
12 |
13 | /**
14 | 从0开始,记录真实的页面层级不受
15 | UITabBarController,
16 | UINavigationController包含关系影响
17 | */
18 | @property (nonatomic, readonly) NSInteger pageViewLevel;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+PreviousController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+PreviousController.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (PreviousController)
12 |
13 | /**
14 | 不支持UITabbarController切换记录前一个
15 | 扩展实现可通过 objc_setAssociatedObject(self, @selector(pc_previousController), sourcePageController, OBJC_ASSOCIATION_RETAIN_NONATOMIC) 设置
16 | 优先使用以设置的值
17 | */
18 | @property (nonatomic, readonly) UIViewController *previousController;
19 |
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+TopViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+TopViewController.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (TopViewController)
12 |
13 | + (UIViewController *)topViewController;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIViewController/UIViewController+TopViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+TopViewController.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2018/3/14.
6 | // Copyright © 2018年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIViewController+TopViewController.h"
10 |
11 | @implementation UIViewController (TopViewController)
12 |
13 | + (UIViewController *)topViewController {
14 | UIViewController *resultVC;
15 | #if TARGET_OS_IOS
16 | resultVC = [self _topViewController:[[UIApplication sharedApplication].keyWindow rootViewController]];
17 | while (resultVC.presentedViewController) {
18 | resultVC = [self _topViewController:resultVC.presentedViewController];
19 | }
20 | #else
21 |
22 | #endif
23 | return resultVC;
24 | }
25 |
26 | + (UIViewController *)_topViewController:(UIViewController *)vc {
27 | if ([vc isKindOfClass:[UINavigationController class]]) {
28 | return [self _topViewController:[(UINavigationController *)vc topViewController]];
29 | } else if ([vc isKindOfClass:[UITabBarController class]]) {
30 | return [self _topViewController:[(UITabBarController *)vc selectedViewController]];
31 | } else {
32 | return vc;
33 | }
34 | return nil;
35 | }
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIWindow/UIWindow+Hierarchy.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWindow+Hierarchy.h
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWindow (Hierarchy)
12 |
13 | /*!
14 | @method topMostController
15 |
16 | @return Returns the current Top Most ViewController in hierarchy.
17 | */
18 | - (UIViewController *)topMostController;
19 |
20 | /*!
21 | @method currentViewController
22 |
23 | @return Returns the topViewController in stack of topMostController.
24 | */
25 | - (UIViewController *)currentViewController;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Pods/MYKit/MYKit/Classes/UIKit/UIWindow/UIWindow+Hierarchy.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIWindow+Hierarchy.m
3 | // MYKitDemo
4 | //
5 | // Created by sunjinshuai on 2017/9/7.
6 | // Copyright © 2017年 com.51fanxing. All rights reserved.
7 | //
8 |
9 | #import "UIWindow+Hierarchy.h"
10 |
11 | @implementation UIWindow (Hierarchy)
12 |
13 | - (UIViewController *)topMostController {
14 | UIViewController *topController = [self rootViewController];
15 |
16 | // Getting topMost ViewController
17 | while ([topController presentedViewController]) topController = [topController presentedViewController];
18 |
19 | // Returning topMost ViewController
20 | return topController;
21 | }
22 |
23 | - (UIViewController *)currentViewController {
24 | UIViewController *currentViewController = [self topMostController];
25 |
26 | while ([currentViewController isKindOfClass:[UINavigationController class]] && [(UINavigationController*)currentViewController topViewController])
27 | currentViewController = [(UINavigationController*)currentViewController topViewController];
28 |
29 | return currentViewController;
30 | }
31 |
32 | @end
33 |
--------------------------------------------------------------------------------
/Pods/MYKit/README.md:
--------------------------------------------------------------------------------
1 | # MYKit
2 |
3 | [](https://travis-ci.org/sunjinshuai/MYKit)
4 | [](https://cocoapods.org/pods/MYKit)
5 | [](https://cocoapods.org/pods/MYKit)
6 | [](https://cocoapods.org/pods/MYKit)
7 |
8 | ## Example
9 |
10 | To run the example project, clone the repo, and run `pod install` from the Example directory first.
11 |
12 | ## Requirements
13 |
14 | ## Installation
15 |
16 | MYKit is available through [CocoaPods](https://cocoapods.org). To install
17 | it, simply add the following line to your Podfile:
18 |
19 | ```ruby
20 | pod 'MYKit'
21 | ```
22 |
23 | ## Author
24 |
25 | sunjinshuai, sunjinshuai@aikucun.com
26 |
27 | ## License
28 |
29 | MYKit is available under the MIT license. See the LICENSE file for more info.
30 |
--------------------------------------------------------------------------------
/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - MBProgressHUD (1.1.0)
3 | - MYKit (1.1.3):
4 | - MYKit/Core (= 1.1.3)
5 | - MYKit/Core (1.1.3):
6 | - MYKit/Foundation
7 | - MYKit/SafeKit
8 | - MYKit/UIKit
9 | - MYKit/Foundation (1.1.3)
10 | - MYKit/SafeKit (1.1.3):
11 | - MYKit/Foundation
12 | - MYKit/UIKit (1.1.3):
13 | - MYKit/Foundation
14 |
15 | DEPENDENCIES:
16 | - MBProgressHUD
17 | - MYKit
18 |
19 | SPEC REPOS:
20 | https://github.com/cocoapods/specs.git:
21 | - MBProgressHUD
22 | - MYKit
23 |
24 | SPEC CHECKSUMS:
25 | MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
26 | MYKit: 36c106e574158ffbbf58cf1057f9ea71b713a653
27 |
28 | PODFILE CHECKSUM: 4fb032f5fa9f0ba11c944aef1a380d90439e03bf
29 |
30 | COCOAPODS: 1.6.1
31 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MBProgressHUD/MBProgressHUD-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_MBProgressHUD : NSObject
3 | @end
4 | @implementation PodsDummy_MBProgressHUD
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MBProgressHUD/MBProgressHUD-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MBProgressHUD/MBProgressHUD.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MBProgressHUD
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MYKit/MYKit-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_MYKit : NSObject
3 | @end
4 | @implementation PodsDummy_MYKit
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MYKit/MYKit-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #else
4 | #ifndef FOUNDATION_EXPORT
5 | #if defined(__cplusplus)
6 | #define FOUNDATION_EXPORT extern "C"
7 | #else
8 | #define FOUNDATION_EXPORT extern
9 | #endif
10 | #endif
11 | #endif
12 |
13 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/MYKit/MYKit.xcconfig:
--------------------------------------------------------------------------------
1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MYKit
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MYKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MYKit"
4 | PODS_BUILD_DIR = ${BUILD_DIR}
5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
6 | PODS_ROOT = ${SRCROOT}
7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MYKit
8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
9 | SKIP_INSTALL = YES
10 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-MYPerformanceKit/Pods-MYPerformanceKit-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_MYPerformanceKit : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_MYPerformanceKit
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-MYPerformanceKit/Pods-MYPerformanceKit.debug.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MYKit"
3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MYKit"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"MBProgressHUD" -l"MYKit" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
8 | PODS_ROOT = ${SRCROOT}/Pods
9 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-MYPerformanceKit/Pods-MYPerformanceKit.release.xcconfig:
--------------------------------------------------------------------------------
1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MYKit"
3 | LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MBProgressHUD" "${PODS_CONFIGURATION_BUILD_DIR}/MYKit"
4 | OTHER_LDFLAGS = $(inherited) -ObjC -l"MBProgressHUD" -l"MYKit" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
5 | PODS_BUILD_DIR = ${BUILD_DIR}
6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
8 | PODS_ROOT = ${SRCROOT}/Pods
9 |
--------------------------------------------------------------------------------