├── .gitignore
├── .travis.yml
├── Category.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
├── xcshareddata
│ └── xcschemes
│ │ └── Category.xcscheme
└── xcuserdata
│ └── silence.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ └── xcschememanagement.plist
├── Category
├── AppDelegate.h
├── AppDelegate.m
├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ ├── AppIcon1024×1024.png
│ │ ├── AppIcon20x20@2x~ipad.png
│ │ ├── AppIcon20x20~ipad.png
│ │ ├── AppIcon29x29@2x~ipad.png
│ │ ├── AppIcon29x29~ipad.png
│ │ ├── AppIcon40x40@2x~ipad.png
│ │ ├── AppIcon60x60@2x.png
│ │ ├── AppIcon60x60@3x.png
│ │ ├── AppIcon76x76@2x~ipad.png
│ │ ├── AppIcon76x76~ipad.png
│ │ ├── AppIcon83.5x83.5@2x~ipad.png
│ │ └── Contents.json
├── Base.lproj
│ ├── LaunchScreen.storyboard
│ └── Main.storyboard
├── Info.plist
├── MineViewController.h
├── MineViewController.m
├── ViewController.h
├── ViewController.m
└── main.m
├── CategoryTests
├── EXTADTTest.h
├── EXTADTTest.m
├── EXTConcreteProtocolTest.h
├── EXTConcreteProtocolTest.m
├── EXTKeyPathCodingTest.h
├── EXTKeyPathCodingTest.m
├── EXTKeypathWeakWarningTest.h
├── EXTKeypathWeakWarningTest.m
├── EXTObjectiveCppCompileTest.h
├── EXTObjectiveCppCompileTest.mm
├── EXTRuntimeExtensionsTest.h
├── EXTRuntimeExtensionsTest.m
├── EXTRuntimeTestProtocol.h
├── EXTSafeCategoryTest.h
├── EXTSafeCategoryTest.m
├── EXTScopeTest.h
├── EXTScopeTest.m
├── EXTSelectorCheckingTest.h
├── EXTSelectorCheckingTest.m
├── EXTSynthesizeTest.h
├── EXTSynthesizeTest.m
├── Info.plist
└── NSStringColorTests.m
├── Classes
├── EXTObj
│ ├── EXTADT
│ │ ├── EXTADT.h
│ │ └── EXTADT.m
│ ├── EXTConcreteProtocol
│ │ ├── EXTConcreteProtocol.h
│ │ └── EXTConcreteProtocol.m
│ ├── EXTKeyPathCoding
│ │ └── EXTKeyPathCoding.h
│ ├── EXTNil
│ │ ├── EXTNil.h
│ │ └── EXTNil.m
│ ├── EXTObjc.h
│ ├── EXTSafeCategory
│ │ ├── EXTSafeCategory.h
│ │ └── EXTSafeCategory.m
│ ├── EXTScope
│ │ ├── EXTScope.h
│ │ └── EXTScope.m
│ ├── EXTSelectorChecking
│ │ ├── EXTSelectorChecking.h
│ │ └── EXTSelectorChecking.m
│ ├── EXTSynthesize
│ │ └── EXTSynthesize.h
│ ├── NSInvocation+EXT
│ │ ├── NSInvocation+EXT.h
│ │ └── NSInvocation+EXT.m
│ ├── NSMethodSignature+EXT
│ │ ├── NSMethodSignature+EXT.h
│ │ └── NSMethodSignature+EXT.m
│ └── RuntimeExtensions
│ │ ├── EXTRuntimeExtensions.h
│ │ ├── EXTRuntimeExtensions.m
│ │ └── metamacros.h
├── Foundation
│ ├── NSArchiver
│ │ ├── NSKeyedArchiver+Key.h
│ │ ├── NSKeyedArchiver+Key.m
│ │ ├── NSKeyedUnarchiver+Key.h
│ │ └── NSKeyedUnarchiver+Key.m
│ ├── NSArray
│ │ ├── NSArray+Block.h
│ │ ├── NSArray+Block.m
│ │ ├── NSArray+Contains.h
│ │ ├── NSArray+Contains.m
│ │ ├── NSArray+JSONEncode.h
│ │ ├── NSArray+JSONEncode.m
│ │ ├── NSArray+Plist.h
│ │ ├── NSArray+Plist.m
│ │ ├── NSArray+SafeAccess.h
│ │ └── NSArray+SafeAccess.m
│ ├── NSBundle
│ │ ├── NSBundle+AppInfo.h
│ │ └── NSBundle+AppInfo.m
│ ├── NSData
│ │ ├── NSData+APNSToken.h
│ │ ├── NSData+APNSToken.m
│ │ ├── NSData+Base64.h
│ │ ├── NSData+Base64.m
│ │ ├── NSData+Cache.h
│ │ ├── NSData+Cache.m
│ │ ├── NSData+Code.h
│ │ ├── NSData+Code.m
│ │ ├── NSData+DataCache.h
│ │ ├── NSData+DataCache.m
│ │ ├── NSData+Encrypt.h
│ │ ├── NSData+Encrypt.m
│ │ ├── NSData+Gzip.h
│ │ ├── NSData+Gzip.m
│ │ ├── NSData+Hash.h
│ │ ├── NSData+Hash.m
│ │ ├── NSData+zlib.h
│ │ └── NSData+zlib.m
│ ├── NSDate
│ │ ├── NSDate+Cupertino.h
│ │ ├── NSDate+Cupertino.m
│ │ ├── NSDate+Extension.h
│ │ ├── NSDate+Extension.m
│ │ ├── NSDate+Figure.h
│ │ ├── NSDate+Figure.m
│ │ ├── NSDate+Formatter.h
│ │ ├── NSDate+Formatter.m
│ │ ├── NSDate+Lunar.h
│ │ ├── NSDate+Lunar.m
│ │ ├── NSDate+Show.h
│ │ └── NSDate+Show.m
│ ├── NSDateFormatter
│ │ ├── NSDateFormatter+Make.h
│ │ └── NSDateFormatter+Make.m
│ ├── NSDecimalNumber
│ │ ├── NSDecimalNumber+Easy.h
│ │ └── NSDecimalNumber+Easy.m
│ ├── NSDictionary
│ │ ├── NSDictionary+Block.h
│ │ ├── NSDictionary+Block.m
│ │ ├── NSDictionary+JSONEncode.h
│ │ ├── NSDictionary+JSONEncode.m
│ │ ├── NSDictionary+Merge.h
│ │ ├── NSDictionary+Merge.m
│ │ ├── NSDictionary+Plist.h
│ │ ├── NSDictionary+Plist.m
│ │ ├── NSDictionary+SafeAccess.h
│ │ ├── NSDictionary+SafeAccess.m
│ │ ├── NSDictionary+URL.h
│ │ ├── NSDictionary+URL.m
│ │ ├── NSDictionary+XML.h
│ │ └── NSDictionary+XML.m
│ ├── NSFileHandle
│ │ ├── NSFileHandle+ReadLine.h
│ │ └── NSFileHandle+ReadLine.m
│ ├── NSFileManager
│ │ ├── NSFileManager+Hash.h
│ │ ├── NSFileManager+Hash.m
│ │ ├── NSFileManager+Helper.h
│ │ └── NSFileManager+Helper.m
│ ├── NSIndexPath
│ │ ├── NSIndexPath+Offset.h
│ │ └── NSIndexPath+Offset.m
│ ├── NSLog
│ │ ├── KKLog.h
│ │ ├── KKLog.m
│ │ └── LogUnicode.m
│ ├── NSNotificationCenter
│ │ ├── NSNotificationCenter+AutoRemove.h
│ │ ├── NSNotificationCenter+AutoRemove.m
│ │ ├── NSNotificationCenter+Thread.h
│ │ └── NSNotificationCenter+Thread.m
│ ├── NSNumber
│ │ ├── NSNumber+Display.h
│ │ ├── NSNumber+Display.m
│ │ ├── NSNumber+Roman.h
│ │ ├── NSNumber+Roman.m
│ │ ├── NSNumber+Round.h
│ │ └── NSNumber+Round.m
│ ├── NSObject
│ │ ├── NSObject+Aspect.h
│ │ ├── NSObject+Aspect.m
│ │ ├── NSObject+AutoCoding.h
│ │ ├── NSObject+AutoCoding.m
│ │ ├── NSObject+Block.h
│ │ ├── NSObject+Block.m
│ │ ├── NSObject+BlockTarget.h
│ │ ├── NSObject+BlockTarget.m
│ │ ├── NSObject+Dealloc.h
│ │ ├── NSObject+Dealloc.m
│ │ ├── NSObject+GCD.h
│ │ ├── NSObject+GCD.m
│ │ ├── NSObject+Parse.h
│ │ ├── NSObject+Parse.m
│ │ ├── NSObject+PerformSelector.h
│ │ ├── NSObject+PerformSelector.m
│ │ ├── NSObject+Property.h
│ │ ├── NSObject+Property.m
│ │ ├── NSObject+QuickAssociated.h
│ │ ├── NSObject+QuickAssociated.m
│ │ ├── NSObject+QuickCode.h
│ │ ├── NSObject+QuickCode.m
│ │ ├── NSObject+QuickCopy.h
│ │ ├── NSObject+QuickCopy.m
│ │ ├── NSObject+Reflect.h
│ │ ├── NSObject+Reflect.m
│ │ ├── NSObject+Runtime.h
│ │ ├── NSObject+Runtime.m
│ │ ├── NSObject+Semaphore.h
│ │ └── NSObject+Semaphore.m
│ ├── NSString
│ │ ├── NSString+AES.h
│ │ ├── NSString+AES.m
│ │ ├── NSString+AppInfo.h
│ │ ├── NSString+AppInfo.m
│ │ ├── NSString+Append.h
│ │ ├── NSString+Append.m
│ │ ├── NSString+AttributedBuilder.h
│ │ ├── NSString+AttributedBuilder.m
│ │ ├── NSString+Color.h
│ │ ├── NSString+Color.m
│ │ ├── NSString+Contains.h
│ │ ├── NSString+Contains.m
│ │ ├── NSString+Emoji.h
│ │ ├── NSString+Emoji.m
│ │ ├── NSString+HTML.h
│ │ ├── NSString+HTML.m
│ │ ├── NSString+Hash.h
│ │ ├── NSString+Hash.m
│ │ ├── NSString+JSONValue.h
│ │ ├── NSString+JSONValue.m
│ │ ├── NSString+MIME.h
│ │ ├── NSString+MIME.m
│ │ ├── NSString+Path.h
│ │ ├── NSString+Path.m
│ │ ├── NSString+PinYin.h
│ │ ├── NSString+PinYin.m
│ │ ├── NSString+QRcode.h
│ │ ├── NSString+QRcode.m
│ │ ├── NSString+Regex.h
│ │ ├── NSString+Regex.m
│ │ ├── NSString+Segmentation.h
│ │ ├── NSString+Segmentation.m
│ │ ├── NSString+Size.h
│ │ ├── NSString+Size.m
│ │ ├── NSString+Trims.h
│ │ ├── NSString+Trims.m
│ │ ├── NSString+URLEncode.h
│ │ ├── NSString+URLEncode.m
│ │ ├── NSString+VersionCompare.h
│ │ ├── NSString+VersionCompare.m
│ │ ├── NSString+XML.h
│ │ └── NSString+XML.m
│ ├── NSTimer
│ │ ├── NSTimer+Block.h
│ │ ├── NSTimer+Block.m
│ │ ├── NSTimer+Pause.h
│ │ └── NSTimer+Pause.m
│ ├── NSURL
│ │ ├── NSURL+QueryDictionary.h
│ │ └── NSURL+QueryDictionary.m
│ ├── NSURLProtocol
│ │ ├── NSURLProtocol+WKWebViewSupport.h
│ │ └── NSURLProtocol+WKWebViewSupport.m
│ ├── NSURLRequest
│ │ ├── NSURLRequest+Params.h
│ │ ├── NSURLRequest+Params.m
│ │ ├── NSURLRequest+Upload.h
│ │ └── NSURLRequest+Upload.m
│ ├── NSURLSession
│ │ ├── NSURLSession+SynchronousTask.h
│ │ └── NSURLSession+SynchronousTask.m
│ ├── NSUserDefaults
│ │ ├── NSUserDefaults+iCloudSync.h
│ │ └── NSUserDefaults+iCloudSync.m
│ └── SIFoundation.h
├── Macros
│ ├── SIARCMacro.h
│ ├── SIAutoLayoutMacro.h
│ ├── SIChainMacro.h
│ ├── SICollectionMacro.h
│ ├── SIColorMacro.h
│ ├── SICoreGraphicsMacro.h
│ ├── SIDeviceMacro.h
│ ├── SIExceptionMacro.h
│ ├── SIFRCMacro.h
│ ├── SIGCDMacro.h
│ ├── SILogMacro.h
│ ├── SIMacros.h
│ ├── SIMathMacro.h
│ ├── SINotificationMacro.h
│ ├── SIRuntimeMacro.h
│ ├── SISharedInstanceMacro.h
│ ├── SIShortcutsMacro.h
│ ├── SIUtilsMacro.h
│ ├── SIViewMacro.h
│ └── SIWarningMacro.h
├── Manager
│ ├── AppPurchase
│ │ ├── SIIAppPurchaseManager.h
│ │ └── SIIAppPurchaseManager.m
│ ├── AppVersion
│ │ ├── SIAppVersionManager.h
│ │ └── SIAppVersionManager.m
│ ├── Authorization
│ │ ├── SIAuthorizationManager.h
│ │ └── SIAuthorizationManager.m
│ ├── Bluetooth
│ │ ├── SIBluetoothManager.h
│ │ └── SIBluetoothManager.m
│ ├── CaptivePortalCheck
│ │ ├── SICaptivePortalCheckManager.h
│ │ └── SICaptivePortalCheckManager.m
│ ├── CountDownManager
│ │ ├── CountDownManager.h
│ │ └── CountDownManager.m
│ ├── Debug
│ │ ├── CallStack
│ │ │ ├── SICallStackManager.h
│ │ │ └── SICallStackManager.m
│ │ ├── Console
│ │ │ ├── SIConsoleManager.h
│ │ │ └── SIConsoleManager.m
│ │ └── FPS
│ │ │ ├── SIFPSManager.h
│ │ │ └── SIFPSManager.m
│ ├── Download
│ │ ├── SIDownloadManager.h
│ │ └── SIDownloadManager.m
│ ├── Keyboard
│ │ ├── SIKeyboardManager.h
│ │ └── SIKeyboardManager.m
│ ├── Keychain
│ │ ├── SIKeychainManager.h
│ │ └── SIKeychainManager.m
│ ├── Mediator
│ │ ├── SIMediatorManager.h
│ │ └── SIMediatorManager.m
│ ├── NetAccessibity
│ │ ├── SINetworkAccessibity.h
│ │ └── SINetworkAccessibity.m
│ ├── Proxy
│ │ ├── SIProxyManager.h
│ │ └── SIProxyManager.m
│ ├── Push
│ │ ├── SIPushNotificationManager.h
│ │ └── SIPushNotificationManager.m
│ ├── SIManager.h
│ ├── Sound
│ │ ├── SISoundManager.h
│ │ └── SISoundManager.m
│ └── TouchID
│ │ ├── SITouchIDManager.h
│ │ └── SITouchIDManager.m
├── QuartzCore
│ ├── CAAnimation
│ │ ├── CAAnimation+EasingEquations.h
│ │ └── CAAnimation+EasingEquations.m
│ ├── CALayer
│ │ ├── CALayer+Frame.h
│ │ ├── CALayer+Frame.m
│ │ ├── CALayer+Property.h
│ │ └── CALayer+Property.m
│ ├── CAMediaTimingFunction
│ │ ├── CAMediaTimingFunction+AdditionalEquations.h
│ │ └── CAMediaTimingFunction+AdditionalEquations.m
│ ├── CAShapeLayer
│ │ ├── CAShapeLayer+UIBezierPath.h
│ │ └── CAShapeLayer+UIBezierPath.m
│ ├── CATransaction
│ │ ├── CATransaction+AnimateWithDuration.h
│ │ └── CATransaction+AnimateWithDuration.m
│ └── SIQuartzCore.h
├── SICategory.h
└── UIKit
│ ├── NSLayoutConstraint
│ ├── NSLayoutConstraint+Extensions.h
│ ├── NSLayoutConstraint+Extensions.m
│ ├── NSLayoutConstraint+Refer.h
│ └── NSLayoutConstraint+Refer.m
│ ├── SIUIKit.h
│ ├── UIApplication
│ ├── UIApplication+AppInfo.h
│ ├── UIApplication+AppInfo.m
│ ├── UIApplication+Authority.h
│ ├── UIApplication+Authority.m
│ ├── UIApplication+KeyboardFrame.h
│ ├── UIApplication+KeyboardFrame.m
│ ├── UIApplication+Permissions.h
│ ├── UIApplication+Permissions.m
│ ├── UIApplication+UIDebug.h
│ └── UIApplication+UIDebug.m
│ ├── UIBarButtonItem
│ ├── UIBarButtonItem+Badge.h
│ ├── UIBarButtonItem+Badge.m
│ ├── UIBarButtonItem+Create.h
│ └── UIBarButtonItem+Create.m
│ ├── UIBezierPath
│ ├── UIBezierPath+BasicShapes.h
│ ├── UIBezierPath+BasicShapes.m
│ ├── UIBezierPath+Length.h
│ ├── UIBezierPath+Length.m
│ ├── UIBezierPath+SVGString.h
│ ├── UIBezierPath+SVGString.m
│ ├── UIBezierPath+Symbol.h
│ ├── UIBezierPath+Symbol.m
│ ├── UIBezierPath+TextPaths.h
│ └── UIBezierPath+TextPaths.m
│ ├── UIButton
│ ├── UIButton+BackgroundColor.h
│ ├── UIButton+BackgroundColor.m
│ ├── UIButton+Badge.h
│ ├── UIButton+Badge.m
│ ├── UIButton+Block.h
│ ├── UIButton+Block.m
│ ├── UIButton+ClickEdgeInsets.h
│ ├── UIButton+ClickEdgeInsets.m
│ ├── UIButton+CountDown.h
│ ├── UIButton+CountDown.m
│ ├── UIButton+ImagePosition.h
│ ├── UIButton+ImagePosition.m
│ ├── UIButton+Indicator.h
│ ├── UIButton+Indicator.m
│ ├── UIButton+Submitting.h
│ └── UIButton+Submitting.m
│ ├── UIColor
│ ├── UIColor+CSSColors.h
│ ├── UIColor+CSSColors.m
│ ├── UIColor+FPBrandColor.h
│ ├── UIColor+FPBrandColor.m
│ ├── UIColor+FlatColors.h
│ ├── UIColor+FlatColors.m
│ ├── UIColor+Make.h
│ ├── UIColor+Make.m
│ ├── UIColor+Random.h
│ └── UIColor+Random.m
│ ├── UIControl
│ ├── UIControl+ALActionBlocks.h
│ ├── UIControl+ALActionBlocks.m
│ ├── UIControl+Sound.h
│ └── UIControl+Sound.m
│ ├── UIDevice
│ ├── UIDevice+CPU.h
│ ├── UIDevice+CPU.m
│ ├── UIDevice+Device.h
│ ├── UIDevice+Device.m
│ ├── UIDevice+Disk.h
│ ├── UIDevice+Disk.m
│ ├── UIDevice+NetWork.h
│ └── UIDevice+NetWork.m
│ ├── UIFont
│ ├── UIFont+Load.h
│ ├── UIFont+Load.m
│ ├── UIFont+Make.h
│ ├── UIFont+Make.m
│ ├── UIFont+TTF.h
│ ├── UIFont+TTF.m
│ ├── UIFont+Traits.h
│ └── UIFont+Traits.m
│ ├── UIGestureRecognizer
│ ├── UIGestureRecognizer+ALActionBlocks.h
│ └── UIGestureRecognizer+ALActionBlocks.m
│ ├── UIImage
│ ├── UIImage+Alpha.h
│ ├── UIImage+Alpha.m
│ ├── UIImage+BetterFace.h
│ ├── UIImage+BetterFace.m
│ ├── UIImage+Capture.h
│ ├── UIImage+Capture.m
│ ├── UIImage+Color.h
│ ├── UIImage+Color.m
│ ├── UIImage+Compress.h
│ ├── UIImage+Compress.m
│ ├── UIImage+Effect.h
│ ├── UIImage+Effect.m
│ ├── UIImage+FileName.h
│ ├── UIImage+FileName.m
│ ├── UIImage+Fix.h
│ ├── UIImage+Fix.m
│ ├── UIImage+GIF.h
│ ├── UIImage+GIF.m
│ ├── UIImage+Make.h
│ ├── UIImage+Make.m
│ ├── UIImage+Merge.h
│ ├── UIImage+Merge.m
│ ├── UIImage+Modify.h
│ ├── UIImage+Modify.m
│ ├── UIImage+Rotate.h
│ ├── UIImage+Rotate.m
│ ├── UIImage+Sprite.h
│ ├── UIImage+Sprite.m
│ ├── UIImage+Tint.h
│ ├── UIImage+Tint.m
│ ├── UIImage+Video.h
│ └── UIImage+Video.m
│ ├── UIImageView
│ ├── UIImageView+CornerRadius.h
│ ├── UIImageView+CornerRadius.m
│ ├── UIImageView+GeometryConversion.h
│ ├── UIImageView+GeometryConversion.m
│ ├── UIImageView+Letters.h
│ ├── UIImageView+Letters.m
│ ├── UIImageView+Reflect.h
│ └── UIImageView+Reflect.m
│ ├── UILabel
│ ├── UILabel+AutoSize.h
│ ├── UILabel+AutoSize.m
│ ├── UILabel+AutomaticWriting.h
│ ├── UILabel+AutomaticWriting.m
│ ├── UILabel+ContenSize.h
│ ├── UILabel+ContenSize.m
│ ├── UILabel+Space.h
│ └── UILabel+Space.m
│ ├── UINavigationBar
│ ├── UINavigationBar+Appear.h
│ ├── UINavigationBar+Appear.m
│ ├── UINavigationBar+Awesome.h
│ └── UINavigationBar+Awesome.m
│ ├── UINavigationController
│ ├── UINavigationController+Appear.h
│ ├── UINavigationController+Appear.m
│ ├── UINavigationController+Hide.h
│ ├── UINavigationController+Hide.m
│ ├── UINavigationController+Stack.h
│ ├── UINavigationController+Stack.m
│ ├── UINavigationController+Transitions.h
│ └── UINavigationController+Transitions.m
│ ├── UINavigationItem
│ ├── UINavigationItem+Loading.h
│ ├── UINavigationItem+Loading.m
│ ├── UINavigationItem+Lock.h
│ ├── UINavigationItem+Lock.m
│ ├── UINavigationItem+Margin.h
│ └── UINavigationItem+Margin.m
│ ├── UIResponder
│ ├── UIResponder+Chain.h
│ ├── UIResponder+Chain.m
│ ├── UIResponder+FirstResponder.h
│ └── UIResponder+FirstResponder.m
│ ├── UIScreen
│ ├── UIScreen+Info.h
│ └── UIScreen+Info.m
│ ├── UIScrollView
│ ├── UIScrollView+Amplification.h
│ ├── UIScrollView+Amplification.m
│ ├── UIScrollView+Frame.h
│ ├── UIScrollView+Frame.m
│ ├── UIScrollView+PageNumber.h
│ ├── UIScrollView+PageNumber.m
│ ├── UIScrollView+SimpleScroll.h
│ └── UIScrollView+SimpleScroll.m
│ ├── UISlider
│ ├── UISlider+Tap.h
│ └── UISlider+Tap.m
│ ├── UITabBarController
│ ├── UITabBarController+Hide.h
│ └── UITabBarController+Hide.m
│ ├── UITableView
│ ├── UITableView+CellStyle.h
│ ├── UITableView+CellStyle.m
│ ├── UITableView+Placeholder.h
│ ├── UITableView+Placeholder.m
│ ├── UITableView+Update.h
│ ├── UITableView+Update.m
│ ├── UITableView+iOS7Style.h
│ └── UITableView+iOS7Style.m
│ ├── UITableViewCell
│ ├── UITableViewCell+NIB.h
│ └── UITableViewCell+NIB.m
│ ├── UITextField
│ ├── UITextField+InputLimit.h
│ ├── UITextField+InputLimit.m
│ ├── UITextField+Select.h
│ └── UITextField+Select.m
│ ├── UITextView
│ ├── UITextView+InputLimit.h
│ ├── UITextView+InputLimit.m
│ ├── UITextView+PlaceHolder.h
│ ├── UITextView+PlaceHolder.m
│ ├── UITextView+Select.h
│ └── UITextView+Select.m
│ ├── UIView
│ ├── UIView+Animation.h
│ ├── UIView+Animation.m
│ ├── UIView+Badge.h
│ ├── UIView+Badge.m
│ ├── UIView+BlockGesture.h
│ ├── UIView+BlockGesture.m
│ ├── UIView+Border.h
│ ├── UIView+Border.m
│ ├── UIView+Constraints.h
│ ├── UIView+Constraints.m
│ ├── UIView+Find.h
│ ├── UIView+Find.m
│ ├── UIView+Frame.h
│ ├── UIView+Frame.m
│ ├── UIView+Genie.h
│ ├── UIView+Genie.m
│ ├── UIView+NIB.h
│ ├── UIView+NIB.m
│ ├── UIView+Radius.h
│ ├── UIView+Radius.m
│ ├── UIView+Recursion.h
│ ├── UIView+Recursion.m
│ ├── UIView+RelativeLayout.h
│ ├── UIView+RelativeLayout.m
│ ├── UIView+Screenshot.h
│ ├── UIView+Screenshot.m
│ ├── UIView+Shake.h
│ ├── UIView+Shake.m
│ ├── UIView+Skeleton.h
│ ├── UIView+Skeleton.m
│ ├── UIView+SubtractMask.h
│ ├── UIView+SubtractMask.m
│ ├── UIView+Toast.h
│ ├── UIView+Toast.m
│ ├── UIView+ViewController.h
│ ├── UIView+ViewController.m
│ ├── UIView+ViewPath.h
│ ├── UIView+ViewPath.m
│ ├── UIView+draggable.h
│ └── UIView+draggable.m
│ ├── UIViewController
│ ├── UIViewController+Alert.h
│ ├── UIViewController+Alert.m
│ ├── UIViewController+BackAction.h
│ ├── UIViewController+BackAction.m
│ ├── UIViewController+KeyboardAnimation.h
│ ├── UIViewController+KeyboardAnimation.m
│ ├── UIViewController+MJPopupViewController.h
│ ├── UIViewController+MJPopupViewController.m
│ ├── UIViewController+RecursiveDescription.h
│ ├── UIViewController+RecursiveDescription.m
│ ├── UIViewController+Segues.h
│ ├── UIViewController+Segues.m
│ ├── UIViewController+TopBarMessage.h
│ ├── UIViewController+TopBarMessage.m
│ ├── UIViewController+TopViewController.h
│ ├── UIViewController+TopViewController.m
│ ├── UIViewController+Visible.h
│ └── UIViewController+Visible.m
│ └── UIWebView
│ ├── UIWebView+JavaScript.h
│ ├── UIWebView+JavaScript.m
│ ├── UIWebView+Load.h
│ ├── UIWebView+Load.m
│ ├── UIWebView+MetaParser.h
│ ├── UIWebView+MetaParser.m
│ ├── UIWebView+Style.h
│ ├── UIWebView+Style.m
│ ├── UIWebView+SwipeGesture.h
│ ├── UIWebView+SwipeGesture.m
│ ├── UIWebView+WebStorage.h
│ └── UIWebView+WebStorage.m
├── FrameWork
└── SICategory.framework
│ ├── Headers
│ ├── Modules
│ └── module.modulemap
│ ├── SICategory
│ └── Versions
│ ├── A
│ ├── Headers
│ │ ├── CAAnimation+EasingEquations.h
│ │ ├── CALayer+Frame.h
│ │ ├── CALayer+Property.h
│ │ ├── CAMediaTimingFunction+AdditionalEquations.h
│ │ ├── CAShapeLayer+UIBezierPath.h
│ │ ├── CATransaction+AnimateWithDuration.h
│ │ ├── EXTADT.h
│ │ ├── EXTConcreteProtocol.h
│ │ ├── EXTKeyPathCoding.h
│ │ ├── EXTNil.h
│ │ ├── EXTObjc.h
│ │ ├── EXTRuntimeExtensions.h
│ │ ├── EXTSafeCategory.h
│ │ ├── EXTScope.h
│ │ ├── EXTSelectorChecking.h
│ │ ├── EXTSynthesize.h
│ │ ├── KKLog.h
│ │ ├── NSArray+Block.h
│ │ ├── NSArray+Contains.h
│ │ ├── NSArray+JSONEncode.h
│ │ ├── NSArray+Plist.h
│ │ ├── NSArray+SafeAccess.h
│ │ ├── NSBundle+AppInfo.h
│ │ ├── NSData+APNSToken.h
│ │ ├── NSData+Base64.h
│ │ ├── NSData+Cache.h
│ │ ├── NSData+Code.h
│ │ ├── NSData+DataCache.h
│ │ ├── NSData+Encrypt.h
│ │ ├── NSData+Gzip.h
│ │ ├── NSData+Hash.h
│ │ ├── NSData+zlib.h
│ │ ├── NSDate+Cupertino.h
│ │ ├── NSDate+Extension.h
│ │ ├── NSDate+Figure.h
│ │ ├── NSDate+Formatter.h
│ │ ├── NSDate+Lunar.h
│ │ ├── NSDate+Show.h
│ │ ├── NSDateFormatter+Make.h
│ │ ├── NSDecimalNumber+Easy.h
│ │ ├── NSDictionary+Block.h
│ │ ├── NSDictionary+JSONEncode.h
│ │ ├── NSDictionary+Merge.h
│ │ ├── NSDictionary+Plist.h
│ │ ├── NSDictionary+SafeAccess.h
│ │ ├── NSDictionary+URL.h
│ │ ├── NSDictionary+XML.h
│ │ ├── NSFileHandle+ReadLine.h
│ │ ├── NSFileManager+Hash.h
│ │ ├── NSFileManager+Helper.h
│ │ ├── NSIndexPath+Offset.h
│ │ ├── NSInvocation+EXT.h
│ │ ├── NSKeyedArchiver+Key.h
│ │ ├── NSKeyedUnarchiver+Key.h
│ │ ├── NSLayoutConstraint+Extensions.h
│ │ ├── NSLayoutConstraint+Refer.h
│ │ ├── NSMethodSignature+EXT.h
│ │ ├── NSNotificationCenter+AutoRemove.h
│ │ ├── NSNotificationCenter+Thread.h
│ │ ├── NSNumber+Display.h
│ │ ├── NSNumber+Roman.h
│ │ ├── NSNumber+Round.h
│ │ ├── NSObject+Aspect.h
│ │ ├── NSObject+AutoCoding.h
│ │ ├── NSObject+Block.h
│ │ ├── NSObject+Dealloc.h
│ │ ├── NSObject+GCD.h
│ │ ├── NSObject+KVO.h
│ │ ├── NSObject+Parse.h
│ │ ├── NSObject+PerformSelector.h
│ │ ├── NSObject+Property.h
│ │ ├── NSObject+QuickAssociated.h
│ │ ├── NSObject+QuickCode.h
│ │ ├── NSObject+QuickCopy.h
│ │ ├── NSObject+Reflect.h
│ │ ├── NSObject+Runtime.h
│ │ ├── NSString+AES.h
│ │ ├── NSString+AppInfo.h
│ │ ├── NSString+Append.h
│ │ ├── NSString+AttributedBuilder.h
│ │ ├── NSString+Color.h
│ │ ├── NSString+Contains.h
│ │ ├── NSString+Emoji.h
│ │ ├── NSString+HTML.h
│ │ ├── NSString+Hash.h
│ │ ├── NSString+JSONValue.h
│ │ ├── NSString+MIME.h
│ │ ├── NSString+Path.h
│ │ ├── NSString+PinYin.h
│ │ ├── NSString+QRcode.h
│ │ ├── NSString+Regex.h
│ │ ├── NSString+Segmentation.h
│ │ ├── NSString+Size.h
│ │ ├── NSString+Trims.h
│ │ ├── NSString+URLEncode.h
│ │ ├── NSString+VersionCompare.h
│ │ ├── NSString+XML.h
│ │ ├── NSTimer+Block.h
│ │ ├── NSTimer+Pause.h
│ │ ├── NSURL+QueryDictionary.h
│ │ ├── NSURLRequest+Params.h
│ │ ├── NSURLRequest+Upload.h
│ │ ├── NSURLSession+SynchronousTask.h
│ │ ├── NSUserDefaults+iCloudSync.h
│ │ ├── SIARCMacro.h
│ │ ├── SIAppVersionManager.h
│ │ ├── SIAuthorizationManager.h
│ │ ├── SIAutoLayoutMacro.h
│ │ ├── SIBluetoothManager.h
│ │ ├── SICallStackManager.h
│ │ ├── SICategory.h
│ │ ├── SICollectionMacro.h
│ │ ├── SIColorMacro.h
│ │ ├── SIConsoleManager.h
│ │ ├── SICoreGraphicsMacro.h
│ │ ├── SIDeviceMacro.h
│ │ ├── SIDownloadManager.h
│ │ ├── SIExceptionMacro.h
│ │ ├── SIFPSManager.h
│ │ ├── SIFRCMacro.h
│ │ ├── SIFoundation.h
│ │ ├── SIGCDMacro.h
│ │ ├── SIIAppPurchaseManager.h
│ │ ├── SIKeyboardManager.h
│ │ ├── SIKeychainManager.h
│ │ ├── SILogMacro.h
│ │ ├── SIMacros.h
│ │ ├── SIManager.h
│ │ ├── SIMathMacro.h
│ │ ├── SIMediatorManager.h
│ │ ├── SINotificationMacro.h
│ │ ├── SIProxyManager.h
│ │ ├── SIPushNotificationManager.h
│ │ ├── SIQuartzCore.h
│ │ ├── SIRuntimeMacro.h
│ │ ├── SISharedInstanceMacro.h
│ │ ├── SIShortcutsMacro.h
│ │ ├── SISoundManager.h
│ │ ├── SITouchIDManager.h
│ │ ├── SIUIKit.h
│ │ ├── SIUtilsMacro.h
│ │ ├── SIViewMacro.h
│ │ ├── SIWarningMacro.h
│ │ ├── UIApplication+AppInfo.h
│ │ ├── UIApplication+Authority.h
│ │ ├── UIApplication+KeyboardFrame.h
│ │ ├── UIApplication+Permissions.h
│ │ ├── UIApplication+UIDebug.h
│ │ ├── UIBarButtonItem+Badge.h
│ │ ├── UIBarButtonItem+Create.h
│ │ ├── UIBezierPath+BasicShapes.h
│ │ ├── UIBezierPath+Length.h
│ │ ├── UIBezierPath+SVGString.h
│ │ ├── UIBezierPath+Symbol.h
│ │ ├── UIBezierPath+TextPaths.h
│ │ ├── UIButton+BackgroundColor.h
│ │ ├── UIButton+Badge.h
│ │ ├── UIButton+Block.h
│ │ ├── UIButton+ClickEdgeInsets.h
│ │ ├── UIButton+CountDown.h
│ │ ├── UIButton+ImagePosition.h
│ │ ├── UIButton+Indicator.h
│ │ ├── UIButton+Submitting.h
│ │ ├── UIColor+CSSColors.h
│ │ ├── UIColor+FPBrandColor.h
│ │ ├── UIColor+FlatColors.h
│ │ ├── UIColor+Make.h
│ │ ├── UIColor+Random.h
│ │ ├── UIControl+ALActionBlocks.h
│ │ ├── UIControl+Sound.h
│ │ ├── UIDevice+CPU.h
│ │ ├── UIDevice+Device.h
│ │ ├── UIDevice+Disk.h
│ │ ├── UIDevice+NetWork.h
│ │ ├── UIFont+Load.h
│ │ ├── UIFont+Make.h
│ │ ├── UIFont+TTF.h
│ │ ├── UIFont+Traits.h
│ │ ├── UIGestureRecognizer+ALActionBlocks.h
│ │ ├── UIImage+Alpha.h
│ │ ├── UIImage+BetterFace.h
│ │ ├── UIImage+Capture.h
│ │ ├── UIImage+Color.h
│ │ ├── UIImage+Compress.h
│ │ ├── UIImage+Effect.h
│ │ ├── UIImage+FileName.h
│ │ ├── UIImage+Fix.h
│ │ ├── UIImage+GIF.h
│ │ ├── UIImage+Make.h
│ │ ├── UIImage+Merge.h
│ │ ├── UIImage+Modify.h
│ │ ├── UIImage+Rotate.h
│ │ ├── UIImage+Sprite.h
│ │ ├── UIImage+Video.h
│ │ ├── UIImageView+GeometryConversion.h
│ │ ├── UIImageView+Letters.h
│ │ ├── UIImageView+Reflect.h
│ │ ├── UILabel+AutoSize.h
│ │ ├── UILabel+AutomaticWriting.h
│ │ ├── UILabel+ContenSize.h
│ │ ├── UILabel+Space.h
│ │ ├── UINavigationBar+Appear.h
│ │ ├── UINavigationBar+Awesome.h
│ │ ├── UINavigationController+Appear.h
│ │ ├── UINavigationController+Hide.h
│ │ ├── UINavigationController+Stack.h
│ │ ├── UINavigationController+Transitions.h
│ │ ├── UINavigationItem+Loading.h
│ │ ├── UINavigationItem+Lock.h
│ │ ├── UINavigationItem+Margin.h
│ │ ├── UIResponder+Chain.h
│ │ ├── UIResponder+FirstResponder.h
│ │ ├── UIScreen+Info.h
│ │ ├── UIScrollView+Amplification.h
│ │ ├── UIScrollView+Frame.h
│ │ ├── UIScrollView+PageNumber.h
│ │ ├── UIScrollView+SimpleScroll.h
│ │ ├── UISlider+Tap.h
│ │ ├── UITabBarController+Hide.h
│ │ ├── UITableView+CellStyle.h
│ │ ├── UITableView+Placeholder.h
│ │ ├── UITableView+Update.h
│ │ ├── UITableView+iOS7Style.h
│ │ ├── UITableViewCell+NIB.h
│ │ ├── UITextField+InputLimit.h
│ │ ├── UITextField+Select.h
│ │ ├── UITextView+InputLimit.h
│ │ ├── UITextView+PlaceHolder.h
│ │ ├── UITextView+Select.h
│ │ ├── UIView+Animation.h
│ │ ├── UIView+Badge.h
│ │ ├── UIView+BlockGesture.h
│ │ ├── UIView+Border.h
│ │ ├── UIView+Constraints.h
│ │ ├── UIView+Find.h
│ │ ├── UIView+Frame.h
│ │ ├── UIView+Genie.h
│ │ ├── UIView+NIB.h
│ │ ├── UIView+Radius.h
│ │ ├── UIView+Recursion.h
│ │ ├── UIView+RelativeLayout.h
│ │ ├── UIView+Screenshot.h
│ │ ├── UIView+Shake.h
│ │ ├── UIView+Skeleton.h
│ │ ├── UIView+SubtractMask.h
│ │ ├── UIView+Toast.h
│ │ ├── UIView+ViewController.h
│ │ ├── UIView+ViewPath.h
│ │ ├── UIView+draggable.h
│ │ ├── UIViewController+Alert.h
│ │ ├── UIViewController+BackAction.h
│ │ ├── UIViewController+KeyboardAnimation.h
│ │ ├── UIViewController+MJPopupViewController.h
│ │ ├── UIViewController+RecursiveDescription.h
│ │ ├── UIViewController+Segues.h
│ │ ├── UIViewController+TopBarMessage.h
│ │ ├── UIViewController+Visible.h
│ │ ├── UIWebView+JavaScript.h
│ │ ├── UIWebView+Load.h
│ │ ├── UIWebView+MetaParser.h
│ │ ├── UIWebView+Style.h
│ │ ├── UIWebView+SwipeGesture.h
│ │ ├── UIWebView+WebStorage.h
│ │ ├── UIWindow+Hierarchy.h
│ │ └── metamacros.h
│ └── SICategory
│ └── Current
├── LICENSE
├── Library
├── include
│ ├── CAAnimation+EasingEquations.h
│ ├── CALayer+Frame.h
│ ├── CALayer+Property.h
│ ├── CAMediaTimingFunction+AdditionalEquations.h
│ ├── CAShapeLayer+UIBezierPath.h
│ ├── CATransaction+AnimateWithDuration.h
│ ├── EXTADT.h
│ ├── EXTConcreteProtocol.h
│ ├── EXTKeyPathCoding.h
│ ├── EXTNil.h
│ ├── EXTObjc.h
│ ├── EXTRuntimeExtensions.h
│ ├── EXTSafeCategory.h
│ ├── EXTScope.h
│ ├── EXTSelectorChecking.h
│ ├── EXTSynthesize.h
│ ├── KKLog.h
│ ├── NSArray+Block.h
│ ├── NSArray+Contains.h
│ ├── NSArray+JSONEncode.h
│ ├── NSArray+Plist.h
│ ├── NSArray+SafeAccess.h
│ ├── NSBundle+AppInfo.h
│ ├── NSData+APNSToken.h
│ ├── NSData+Base64.h
│ ├── NSData+Cache.h
│ ├── NSData+Code.h
│ ├── NSData+DataCache.h
│ ├── NSData+Encrypt.h
│ ├── NSData+Gzip.h
│ ├── NSData+Hash.h
│ ├── NSData+zlib.h
│ ├── NSDate+Cupertino.h
│ ├── NSDate+Extension.h
│ ├── NSDate+Figure.h
│ ├── NSDate+Formatter.h
│ ├── NSDate+Lunar.h
│ ├── NSDate+Show.h
│ ├── NSDateFormatter+Make.h
│ ├── NSDecimalNumber+Easy.h
│ ├── NSDictionary+Block.h
│ ├── NSDictionary+JSONEncode.h
│ ├── NSDictionary+Merge.h
│ ├── NSDictionary+Plist.h
│ ├── NSDictionary+SafeAccess.h
│ ├── NSDictionary+URL.h
│ ├── NSDictionary+XML.h
│ ├── NSFileHandle+ReadLine.h
│ ├── NSFileManager+Hash.h
│ ├── NSFileManager+Helper.h
│ ├── NSIndexPath+Offset.h
│ ├── NSInvocation+EXT.h
│ ├── NSKeyedArchiver+Key.h
│ ├── NSKeyedUnarchiver+Key.h
│ ├── NSLayoutConstraint+Extensions.h
│ ├── NSLayoutConstraint+Refer.h
│ ├── NSMethodSignature+EXT.h
│ ├── NSNotificationCenter+AutoRemove.h
│ ├── NSNotificationCenter+Thread.h
│ ├── NSNumber+Display.h
│ ├── NSNumber+Roman.h
│ ├── NSNumber+Round.h
│ ├── NSObject+Aspect.h
│ ├── NSObject+AutoCoding.h
│ ├── NSObject+Block.h
│ ├── NSObject+Dealloc.h
│ ├── NSObject+GCD.h
│ ├── NSObject+KVO.h
│ ├── NSObject+Parse.h
│ ├── NSObject+PerformSelector.h
│ ├── NSObject+Property.h
│ ├── NSObject+QuickAssociated.h
│ ├── NSObject+QuickCode.h
│ ├── NSObject+QuickCopy.h
│ ├── NSObject+Reflect.h
│ ├── NSObject+Runtime.h
│ ├── NSString+AES.h
│ ├── NSString+AppInfo.h
│ ├── NSString+Append.h
│ ├── NSString+AttributedBuilder.h
│ ├── NSString+Color.h
│ ├── NSString+Contains.h
│ ├── NSString+Emoji.h
│ ├── NSString+HTML.h
│ ├── NSString+Hash.h
│ ├── NSString+JSONValue.h
│ ├── NSString+MIME.h
│ ├── NSString+Path.h
│ ├── NSString+PinYin.h
│ ├── NSString+QRcode.h
│ ├── NSString+Regex.h
│ ├── NSString+Segmentation.h
│ ├── NSString+Size.h
│ ├── NSString+Trims.h
│ ├── NSString+URLEncode.h
│ ├── NSString+VersionCompare.h
│ ├── NSString+XML.h
│ ├── NSTimer+Block.h
│ ├── NSTimer+Pause.h
│ ├── NSURL+QueryDictionary.h
│ ├── NSURLRequest+Params.h
│ ├── NSURLRequest+Upload.h
│ ├── NSURLSession+SynchronousTask.h
│ ├── NSUserDefaults+iCloudSync.h
│ ├── SIARCMacro.h
│ ├── SIAppVersionManager.h
│ ├── SIAuthorizationManager.h
│ ├── SIAutoLayoutMacro.h
│ ├── SIBluetoothManager.h
│ ├── SICallStackManager.h
│ ├── SICategory.h
│ ├── SICollectionMacro.h
│ ├── SIColorMacro.h
│ ├── SIConsoleManager.h
│ ├── SICoreGraphicsMacro.h
│ ├── SIDeviceMacro.h
│ ├── SIDownloadManager.h
│ ├── SIExceptionMacro.h
│ ├── SIFPSManager.h
│ ├── SIFRCMacro.h
│ ├── SIFoundation.h
│ ├── SIGCDMacro.h
│ ├── SIIAppPurchaseManager.h
│ ├── SIKeyboardManager.h
│ ├── SIKeychainManager.h
│ ├── SILogMacro.h
│ ├── SIMacros.h
│ ├── SIManager.h
│ ├── SIMathMacro.h
│ ├── SIMediatorManager.h
│ ├── SINotificationMacro.h
│ ├── SIProxyManager.h
│ ├── SIPushNotificationManager.h
│ ├── SIQuartzCore.h
│ ├── SIRuntimeMacro.h
│ ├── SISharedInstanceMacro.h
│ ├── SIShortcutsMacro.h
│ ├── SISoundManager.h
│ ├── SITouchIDManager.h
│ ├── SIUIKit.h
│ ├── SIUtilsMacro.h
│ ├── SIViewMacro.h
│ ├── SIWarningMacro.h
│ ├── UIApplication+AppInfo.h
│ ├── UIApplication+Authority.h
│ ├── UIApplication+KeyboardFrame.h
│ ├── UIApplication+Permissions.h
│ ├── UIApplication+UIDebug.h
│ ├── UIBarButtonItem+Badge.h
│ ├── UIBarButtonItem+Create.h
│ ├── UIBezierPath+BasicShapes.h
│ ├── UIBezierPath+Length.h
│ ├── UIBezierPath+SVGString.h
│ ├── UIBezierPath+Symbol.h
│ ├── UIBezierPath+TextPaths.h
│ ├── UIButton+BackgroundColor.h
│ ├── UIButton+Badge.h
│ ├── UIButton+Block.h
│ ├── UIButton+ClickEdgeInsets.h
│ ├── UIButton+CountDown.h
│ ├── UIButton+ImagePosition.h
│ ├── UIButton+Indicator.h
│ ├── UIButton+Submitting.h
│ ├── UIColor+CSSColors.h
│ ├── UIColor+FPBrandColor.h
│ ├── UIColor+FlatColors.h
│ ├── UIColor+Make.h
│ ├── UIColor+Random.h
│ ├── UIControl+ALActionBlocks.h
│ ├── UIControl+Sound.h
│ ├── UIDevice+CPU.h
│ ├── UIDevice+Device.h
│ ├── UIDevice+Disk.h
│ ├── UIDevice+NetWork.h
│ ├── UIFont+Load.h
│ ├── UIFont+Make.h
│ ├── UIFont+TTF.h
│ ├── UIFont+Traits.h
│ ├── UIGestureRecognizer+ALActionBlocks.h
│ ├── UIImage+Alpha.h
│ ├── UIImage+BetterFace.h
│ ├── UIImage+Capture.h
│ ├── UIImage+Color.h
│ ├── UIImage+Compress.h
│ ├── UIImage+Effect.h
│ ├── UIImage+FileName.h
│ ├── UIImage+Fix.h
│ ├── UIImage+GIF.h
│ ├── UIImage+Make.h
│ ├── UIImage+Merge.h
│ ├── UIImage+Modify.h
│ ├── UIImage+Rotate.h
│ ├── UIImage+Sprite.h
│ ├── UIImage+Video.h
│ ├── UIImageView+GeometryConversion.h
│ ├── UIImageView+Letters.h
│ ├── UIImageView+Reflect.h
│ ├── UILabel+AutoSize.h
│ ├── UILabel+AutomaticWriting.h
│ ├── UILabel+ContenSize.h
│ ├── UILabel+Space.h
│ ├── UINavigationBar+Appear.h
│ ├── UINavigationBar+Awesome.h
│ ├── UINavigationController+Appear.h
│ ├── UINavigationController+Hide.h
│ ├── UINavigationController+Stack.h
│ ├── UINavigationController+Transitions.h
│ ├── UINavigationItem+Loading.h
│ ├── UINavigationItem+Lock.h
│ ├── UINavigationItem+Margin.h
│ ├── UIResponder+Chain.h
│ ├── UIResponder+FirstResponder.h
│ ├── UIScreen+Info.h
│ ├── UIScrollView+Amplification.h
│ ├── UIScrollView+Frame.h
│ ├── UIScrollView+PageNumber.h
│ ├── UIScrollView+SimpleScroll.h
│ ├── UISlider+Tap.h
│ ├── UITabBarController+Hide.h
│ ├── UITableView+CellStyle.h
│ ├── UITableView+Placeholder.h
│ ├── UITableView+Update.h
│ ├── UITableView+iOS7Style.h
│ ├── UITableViewCell+NIB.h
│ ├── UITextField+InputLimit.h
│ ├── UITextField+Select.h
│ ├── UITextView+InputLimit.h
│ ├── UITextView+PlaceHolder.h
│ ├── UITextView+Select.h
│ ├── UIView+Animation.h
│ ├── UIView+Badge.h
│ ├── UIView+BlockGesture.h
│ ├── UIView+Border.h
│ ├── UIView+Constraints.h
│ ├── UIView+Find.h
│ ├── UIView+Frame.h
│ ├── UIView+Genie.h
│ ├── UIView+NIB.h
│ ├── UIView+Radius.h
│ ├── UIView+Recursion.h
│ ├── UIView+RelativeLayout.h
│ ├── UIView+Screenshot.h
│ ├── UIView+Shake.h
│ ├── UIView+Skeleton.h
│ ├── UIView+SubtractMask.h
│ ├── UIView+Toast.h
│ ├── UIView+ViewController.h
│ ├── UIView+ViewPath.h
│ ├── UIView+draggable.h
│ ├── UIViewController+Alert.h
│ ├── UIViewController+BackAction.h
│ ├── UIViewController+KeyboardAnimation.h
│ ├── UIViewController+MJPopupViewController.h
│ ├── UIViewController+RecursiveDescription.h
│ ├── UIViewController+Segues.h
│ ├── UIViewController+TopBarMessage.h
│ ├── UIViewController+Visible.h
│ ├── UIWebView+JavaScript.h
│ ├── UIWebView+Load.h
│ ├── UIWebView+MetaParser.h
│ ├── UIWebView+Style.h
│ ├── UIWebView+SwipeGesture.h
│ ├── UIWebView+WebStorage.h
│ ├── UIWindow+Hierarchy.h
│ └── metamacros.h
└── libSICategory.a
├── README.md
└── SICategory.podspec
/.travis.yml:
--------------------------------------------------------------------------------
1 | osx_image: xcode10
2 | language: objective-c
3 | xcode_project: Category.xcodeproj # path to your xcodeproj folder
4 | xcode_scheme: Category
5 | xcode_destination: platform=iOS Simulator,iOS=11.3,name=iPhone X
--------------------------------------------------------------------------------
/Category.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Category.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Category.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Category/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. 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 |
--------------------------------------------------------------------------------
/Category/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import "SIFPSManager.h"
11 |
12 | @interface AppDelegate ()
13 |
14 | @end
15 |
16 | @implementation AppDelegate
17 |
18 |
19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
20 | [[SIFPSManager sharedManager] open];
21 | return YES;
22 | }
23 |
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon1024×1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon1024×1024.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png
--------------------------------------------------------------------------------
/Category/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/Category/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png
--------------------------------------------------------------------------------
/Category/MineViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // MineViewController.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/29.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface MineViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/Category/MineViewController.m:
--------------------------------------------------------------------------------
1 |
2 | //
3 | // MineViewController.m
4 | // Category
5 | //
6 | // Created by Silence on 2017/5/29.
7 | // Copyright © 2017年 silence. All rights reserved.
8 | //
9 |
10 | #import "MineViewController.h"
11 | #import "UIViewController+BackAction.h"
12 |
13 | @interface MineViewController ()
14 |
15 | @end
16 |
17 | @implementation MineViewController
18 |
19 | - (void)viewDidLoad {
20 | [super viewDidLoad];
21 | [self backButtonTouched:^(UINavigationController *nav) {
22 | NSLog(@"点击了返回按钮") ;
23 | [nav popViewControllerAnimated:YES] ;
24 | }] ;
25 | }
26 | @end
27 |
--------------------------------------------------------------------------------
/Category/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/Category/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. 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 |
--------------------------------------------------------------------------------
/CategoryTests/EXTADTTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTADTTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 19.06.12.
6 | //
7 | //
8 |
9 | #import
10 | #import "EXTADT.h"
11 |
12 | @interface EXTADTTest : XCTestCase
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/CategoryTests/EXTKeyPathCodingTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTKeyPathCodingTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 19.06.12.
6 | //
7 | //
8 |
9 | #import
10 | #import "EXTKeyPathCoding.h"
11 |
12 | @interface EXTKeyPathCodingTest : XCTestCase
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/CategoryTests/EXTKeypathWeakWarningTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTKeypathWeakWarningTest.h
3 | // extobjc
4 | //
5 | // Created by Javier Soto on 6/23/14.
6 | //
7 | //
8 |
9 | #import
10 | #import "EXTKeyPathCoding.h"
11 |
12 | @interface EXTKeypathWeakWarningTest : XCTestCase
13 |
14 | @end
--------------------------------------------------------------------------------
/CategoryTests/EXTObjectiveCppCompileTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTObjectiveCppCompileTest.h
3 | // extobjc
4 | //
5 | // Created by Igor Kashkuta on 2013-04-01.
6 | // Released under the MIT license.
7 | //
8 |
9 | #import
10 | #import "extobjc.h"
11 |
12 | @interface EXTObjectiveCppCompileTest : XCTestCase
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/CategoryTests/EXTObjectiveCppCompileTest.mm:
--------------------------------------------------------------------------------
1 | //
2 | // EXTObjectiveCppCompileTest.mm
3 | // extobjc
4 | //
5 | // Created by Igor Kashkuta on 2013-04-01.
6 | // Released under the MIT license.
7 | //
8 |
9 | #import "EXTObjectiveCppCompileTest.h"
10 |
11 | @implementation EXTObjectiveCppCompileTest
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/CategoryTests/EXTRuntimeExtensionsTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTRuntimeExtensionsTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2011-03-06.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import
11 | #import
12 | #import "EXTRuntimeExtensions.h"
13 |
14 | @interface EXTRuntimeExtensionsTest : XCTestCase {
15 |
16 | }
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/CategoryTests/EXTRuntimeTestProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTRuntimeTestProtocol.h
3 | // extobjc
4 | //
5 | // Created by Clay Bridges on 8/5/13.
6 | //
7 | //
8 |
9 | #import
10 |
11 | @protocol EXTRuntimeTestProtocol
12 |
13 | @optional
14 | + (void)optionalClassMethod;
15 | - (void)optionalInstanceMethod;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/CategoryTests/EXTSafeCategoryTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTSafeCategoryTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2010-11-13.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import
11 | #import
12 |
13 | @interface EXTSafeCategoryTest : XCTestCase {
14 |
15 | }
16 |
17 | - (void)testSafeCategory;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/CategoryTests/EXTScopeTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTScopeTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2011-05-04.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import
11 | #import
12 | #import "EXTScope.h"
13 |
14 | @interface EXTScopeTest : XCTestCase {
15 | @private
16 |
17 | }
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/CategoryTests/EXTSelectorCheckingTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTSelectorCheckingTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 26.06.12.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import
11 | #import "EXTSelectorChecking.h"
12 |
13 | @interface EXTSelectorCheckingTest : XCTestCase
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/CategoryTests/EXTSynthesizeTest.h:
--------------------------------------------------------------------------------
1 | //
2 | // EXTSynthesizeTest.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2012-09-04.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import
11 |
12 | @interface EXTSynthesizeTest : XCTestCase
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Classes/EXTObj/EXTObjc.h:
--------------------------------------------------------------------------------
1 | //
2 | // extobjc.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2010-11-09.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import "EXTADT.h"
11 | #import "EXTConcreteProtocol.h"
12 | #import "EXTKeyPathCoding.h"
13 | #import "EXTNil.h"
14 | #import "EXTSafeCategory.h"
15 | #import "EXTScope.h"
16 | #import "EXTSelectorChecking.h"
17 | #import "EXTSynthesize.h"
18 | #import "NSInvocation+EXT.h"
19 | #import "NSMethodSignature+EXT.h"
20 |
21 |
--------------------------------------------------------------------------------
/Classes/EXTObj/EXTScope/EXTScope.m:
--------------------------------------------------------------------------------
1 | //
2 | // EXTScope.m
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2011-05-04.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import "EXTScope.h"
11 |
12 | void ext_executeCleanupBlock (__strong ext_cleanupBlock_t *block) {
13 | (*block)();
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/Classes/EXTObj/EXTSelectorChecking/EXTSelectorChecking.m:
--------------------------------------------------------------------------------
1 | //
2 | // EXTSelectorChecking.m
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 26.06.12.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import "EXTSelectorChecking.h"
11 |
12 | @implementation NSString (EXTCheckedSelectorAdditions)
13 | - (SEL)ext_toSelector {
14 | return NSSelectorFromString(self);
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSArray/NSArray+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (Contains)
12 |
13 |
14 | /**
15 | 是否包含所有数组中元素
16 |
17 | @param array 要寻找的Array
18 | @return 是否包含
19 | */
20 | -(BOOL)containsAll:(NSArray *)array;
21 |
22 |
23 | /**
24 | 是否包含其中任意一个元素
25 |
26 | @param array 要寻找的Array
27 | @return 是否包含
28 | */
29 | -(BOOL)containsAny:(NSArray *)array;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSArray/NSArray+Contains.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Contains.m
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import "NSArray+Contains.h"
10 |
11 | @implementation NSArray (Contains)
12 |
13 | -(BOOL)containsAll:(NSArray *)array{
14 | for( id obj in array ) {
15 | if( ![self containsObject:obj] ) {
16 | return false;
17 | }
18 | }
19 | return true;
20 | }
21 |
22 | -(BOOL)containsAny:(NSArray *)array{
23 | for( id obj in array ) {
24 | if( [self containsObject:obj] ) {
25 | return true;
26 | }
27 | }
28 | return false;
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSArray/NSArray+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (JSONEncode)
12 |
13 | /**
14 | 转换为JSON
15 |
16 | @return JSON Sting
17 | */
18 | - (NSString *)jsonStringEncoded;
19 |
20 | /**
21 | 返回格式化后JSON
22 |
23 | @return 格式化后的JSON String
24 | */
25 | - (NSString *)jsonPrettyStringEncoded;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSData/NSData+APNSToken.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+APNSToken.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (APNSToken)
12 |
13 | /**
14 | * 将APNS NSData类型token 格式化成字符串
15 | *
16 | * @return 整理过后的字符串token
17 | */
18 | - (NSString *)APNSToken;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSData/NSData+APNSToken.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+APNSToken.m
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import "NSData+APNSToken.h"
10 |
11 | @implementation NSData (APNSToken)
12 |
13 | - (NSString *)APNSToken {
14 | return [[[[self description]
15 | stringByReplacingOccurrencesOfString: @"<" withString: @""]
16 | stringByReplacingOccurrencesOfString: @">" withString: @""]
17 | stringByReplacingOccurrencesOfString: @" " withString: @""];
18 | }
19 |
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSData/NSData+Cache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Cache.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Cache)
12 |
13 | /**
14 | 根据key保存到磁盘里缓存起来
15 |
16 | @param key Key
17 | */
18 | - (void)saveDataCacheWithKey:(NSString *)key;
19 |
20 |
21 | /**
22 | 根据key取出缓存data
23 |
24 | @param key Key
25 | @return 对象数据
26 | */
27 | + (NSData *)getDataCacheWithKey:(NSString *)key;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSData/NSData+DataCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+DataCache.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (DataCache)
12 |
13 | /**
14 | * 将URL作为key保存到磁盘里缓存起来
15 | *
16 | * @param identifier url.absoluteString
17 | */
18 | - (void)saveDataCacheWithIdentifier:(NSString *)identifier;
19 |
20 | /**
21 | * 取出缓存data
22 | *
23 | * @param identifier url.absoluteString
24 | *
25 | * @return 缓存
26 | */
27 | + (NSData *)getDataCacheWithIdentifier:(NSString *)identifier;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSData/NSData+Encrypt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Encrypt.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Encrypt)
12 |
13 | /**利用AES加密数据*/
14 | - (NSData *)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
15 | /**利用AES解密数据*/
16 | - (NSData *)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
17 |
18 | /**利用3DES加密数据*/
19 | - (NSData *)encryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
20 | /**利用3DES解密数据*/
21 | - (NSData *)decryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSDate/NSDate+Cupertino.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+Cupertino.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDate (Cupertino)
12 |
13 | - (NSDate *)beginningOfDay;
14 | - (NSDate *)endOfDay;
15 |
16 | - (NSDate *)beginningOfWeek;
17 | - (NSDate *)endOfWeek;
18 |
19 | - (NSDate *)beginningOfMonth;
20 | - (NSDate *)endOfMonth;
21 |
22 |
23 | - (NSDate *)beginningOfYear;
24 | - (NSDate *)endOfYear;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSDictionary/NSDictionary+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (JSONEncode)
12 |
13 | /**
14 | JSON String Encoded
15 |
16 | @return JSON String
17 | */
18 | - (nullable NSString *)jsonStringEncoded;
19 |
20 |
21 | /**
22 | JSON PrettyString Encoded
23 |
24 | @return JSON Pretty String
25 | */
26 | - (nullable NSString *)jsonPrettyStringEncoded;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSDictionary/NSDictionary+Merge.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Merge.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (Merge)
12 |
13 | /** 合并两个NSDictionary */
14 | + (NSDictionary *)dictionaryByMerging:(NSDictionary *)dict1 with:(NSDictionary *)dict2;
15 |
16 | /** 并入一个NSDictionary */
17 | - (NSDictionary *)dictionaryByMergingWith:(NSDictionary *)dict;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSDictionary/NSDictionary+Plist.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Plist.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface NSDictionary (Plist)
13 |
14 | /// 根据Plist数据初始化字典
15 | + (instancetype)dictionaryWithPlistData:(NSData *)plist;
16 | /// 根绝Plist String初始化字典
17 | + (instancetype)dictionaryWithPlistString:(NSString *)plist;
18 |
19 | /// Plist 数据信息
20 | - (NSData *)plistData;
21 | /// Plist String
22 | - (NSString *)plistString;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSDictionary/NSDictionary+URL.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+URL.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (URL)
12 |
13 | /// 将url参数转换成NSDictionary
14 | + (NSDictionary *)dictionaryWithURLQuery:(NSString *)query;
15 | /// 将NSDictionary转换成url参数字符串
16 | - (NSString *)URLQueryString;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSFileHandle/NSFileHandle+ReadLine.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSFileHandle+ReadLine.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSFileHandle (ReadLine)
12 |
13 | /**
14 | * @brief A Cocoa / Objective-C NSFileHandle category that adds the ability to read a file line by line.
15 |
16 | *
17 | * @param theDelimier 分隔符
18 | *
19 | * @return An NSData* object is returned with the line if found, or nil if no more lines were found
20 | */
21 | - (NSData *)readLineWithDelimiter:(NSString *)theDelimier;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSIndexPath/NSIndexPath+Offset.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSIndexPath+Offset.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSIndexPath (Offset)
12 |
13 | /// previous row indexpath
14 | - (NSIndexPath *)previousRow;
15 |
16 | /// next row indexpath
17 | - (NSIndexPath *)nextRow;
18 |
19 | /// previous item indexpath
20 | - (NSIndexPath *)previousItem;
21 |
22 | /// next item indexpath
23 | - (NSIndexPath *)nextItem;
24 |
25 | /// next section indexpath
26 | - (NSIndexPath *)nextSection;
27 |
28 | /// previous section indexpath
29 | - (NSIndexPath *)previousSection;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSNotificationCenter/NSNotificationCenter+AutoRemove.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotificationCenter+AutoRemove.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNotificationCenter (AutoRemove)
12 |
13 | /// 设置是否自动移除监听
14 | + (void)setNotificationAutoRemoveEnable:(BOOL)enable;
15 | /// 获取自动移除监听是否开启
16 | + (BOOL)notificationAutoRemoveEnable;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSNumber/NSNumber+Display.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Display.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Display)
12 |
13 | /// 显示指定精读
14 | - (NSString *)displayNumberWithDigit:(NSInteger)digit;
15 |
16 | /// 显示百分比
17 | - (NSString *)displayPercentageWithDigit:(NSInteger)digit;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSNumber/NSNumber+Roman.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Roman.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Roman)
12 |
13 | /** 返回自己对应的罗马数字 */
14 | - (NSString *)romanNumeral;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSNumber/NSNumber+Round.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Round.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Round)
12 |
13 | /**
14 | * @brief 四舍五入
15 | * @param digit 限制最大位数
16 | * @return 结果
17 | */
18 | - (NSNumber*)roundWithDigit:(NSUInteger)digit;
19 |
20 | /**
21 | * @brief 取上整
22 | * @param digit 限制最大位数
23 | * @return 结果
24 | */
25 | - (NSNumber*)ceilWithDigit:(NSUInteger)digit;
26 |
27 | /**
28 | * @brief 取下整
29 | * @param digit 限制最大位数
30 | * @return 结果
31 | */
32 | - (NSNumber*)floorWithDigit:(NSUInteger)digit;
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+Block.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Block.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Block)
12 |
13 | + (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
14 | + (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
15 | - (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
16 | - (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
17 |
18 | + (void)cancelBlock:(id)block;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+Dealloc.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Dealloc.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/25.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^DeallocBlock)(void);
12 |
13 | @interface NSObject (Dealloc)
14 |
15 | - (void)executeAtDealloc:(DeallocBlock)block;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+Parse.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Parse.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Parse)
12 |
13 | /// 转换为String
14 | - (NSString *)toString;
15 |
16 | /// 转换为Number
17 | - (NSNumber *)toNumber;
18 |
19 | /// 转化为Dictionary
20 | - (NSDictionary *)toDictionary;
21 |
22 | /// 转换为Array
23 | - (NSArray *)toArray;
24 |
25 | /// 转换为Array
26 | - (NSArray *)toArrayOf:(Class)itemClass;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+PerformSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+PerformSelector.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/8/23.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (PerformSelector)
12 |
13 | - (id)performSelector:(SEL)aSelector withObjects:(NSArray *)objects;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+QuickCode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCode.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCode)
12 |
13 | /** 快速归档 */
14 | - (id)quickCoderWith:(NSCoder *)aDecoder ;
15 |
16 | /** 快速解档 */
17 | - (void)quickEncodeWithCoder:(NSCoder *)aCoder ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+QuickCopy.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCopy.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCopy)
12 |
13 | /** 快速浅复制目标的所有属性 */
14 | - (BOOL)quickCopy:(NSObject *)instance ;
15 |
16 | /** 快速深复制目标的所有属性 */
17 | - (BOOL)quickDeepCopy:(NSObject *)instance ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSObject/NSObject+Semaphore.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Semaphore.h
3 | // Category
4 | //
5 | // Created by Silence on 2020/1/8.
6 | // Copyright © 2020年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSObject (Semaphore)
14 |
15 | - (dispatch_semaphore_t)semaphoreWithKey:(void*)key;
16 |
17 | - (dispatch_semaphore_t)semaphoreWithKey:(void*)key andValue:(long)value;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+AES.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+AES.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/11/15.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (AES)
12 |
13 | /// 加密方法
14 | - (NSString *)encryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
15 |
16 | /// 解密方法
17 | - (NSString*)decryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
18 |
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+Append.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Append.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Append)
12 |
13 | - (NSString *)appendHomePath;
14 | - (NSString *)appendDocumentPath;
15 | - (NSString *)appendCachePath;
16 | - (NSString *)appendMainBundlePath;
17 | - (NSString *)appendTempPath;
18 | - (NSString *)appendPreferencesPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Contains)
12 |
13 | /**是否包含中文*/
14 | - (BOOL)isContainChinese;
15 |
16 | /**是否包含空格*/
17 | - (BOOL)isContainBlank;
18 |
19 | /**是否包含set*/
20 | - (BOOL)containsCharacterSet:(NSCharacterSet *)set;
21 |
22 | /**是否包含String*/
23 | - (BOOL)containsString:(NSString *)string;
24 |
25 | /**字符数量*/
26 | - (int)wordsCount;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+JSONValue.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+JSONValue.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (JSONValue)
12 |
13 | /// JSON String 转换为字典
14 | - (NSDictionary *)JSONDictionaryValue ;
15 |
16 | /// JSON String 转换为数组
17 | - (NSArray *)JSONArrayValue ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+MIME.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+MIME.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (MIME)
12 |
13 |
14 | /**
15 | 文件名的MIME
16 |
17 | @return MIME
18 | */
19 | - (NSString *)MIMEType;
20 |
21 | /**
22 | 根绝后辍名获取MIME Type
23 |
24 | @param extension 后辍名
25 | @return MIME
26 | */
27 | + (NSString *)MIMETypeForExtension:(NSString *)extension;
28 |
29 | /**
30 | MIMEDict信息
31 |
32 | @return MIMEDict字典
33 | */
34 | + (NSDictionary *)MIMEDict;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+QRcode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+QRcode.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class UIImage;
12 | @interface NSString (QRcode)
13 |
14 | /**
15 | String的二维码信息
16 |
17 | @return String的二维码图片
18 | */
19 | - (UIImage *)QRcode ;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSString/NSString+XML.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+XML.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (XML)
12 |
13 | /**
14 | * xml字符串转换成NSDictionary
15 | *
16 | * @return NSDictionary
17 | */
18 | -(NSDictionary *)XMLDictionary;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSTimer/NSTimer+Pause.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSTimer+Pause.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSTimer (Pause)
12 |
13 | /// 暂停NSTimer
14 | - (void)pauseTimer;
15 |
16 | /// 开始NSTimer
17 | - (void)resumeTimer;
18 |
19 | /// 延迟开始NSTimer
20 | - (void)resumeTimerAfterTimeInterval:(NSTimeInterval)interval;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSURLProtocol/NSURLProtocol+WKWebViewSupport.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSURLProtocol+WKWebViewSupport.h
3 | // Category
4 | //
5 | // Created by Silence on 2020/4/26.
6 | // Copyright © 2020年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface NSURLProtocol (WKWebViewSupport)
14 |
15 | + (void)wk_registerScheme:(NSString *)scheme;
16 | + (void)wk_unregisterScheme:(NSString *)scheme;
17 |
18 | @end
19 |
20 | NS_ASSUME_NONNULL_END
21 |
--------------------------------------------------------------------------------
/Classes/Foundation/NSUserDefaults/NSUserDefaults+iCloudSync.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSUserDefaults+iCloudSync.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSUserDefaults (iCloudSync)
12 |
13 | -(void)setValue:(id)value forKey:(NSString *)key iCloudSync:(BOOL)sync;
14 | -(void)setObject:(id)value forKey:(NSString *)key iCloudSync:(BOOL)sync;
15 |
16 | -(id)valueForKey:(NSString *)key iCloudSync:(BOOL)sync;
17 | -(id)objectForKey:(NSString *)key iCloudSync:(BOOL)sync;
18 |
19 | -(BOOL)synchronizeAlsoiCloudSync:(BOOL)sync;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Classes/Macros/SIARCMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIARCMacros.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | // 强弱引用
10 | #define WeakSelf __weak __typeof(self) weakSelf = self;
11 | #define StrongSelf __strong __typeof(weakSelf)strongSelf = weakSelf;
12 |
--------------------------------------------------------------------------------
/Classes/Macros/SICoreGraphicsMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SICoreGraphicsMacros.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #define CGizeMultiply(size, mult) CGSizeMake(size.width * mult, size.height * mult)
10 |
11 | #define CGizeWith320(size) CGizeMultiply(size, [UIScreen mainScreen].bounds.size.width / 320)
12 | #define CGizeWith375(size) CGizeMultiply(size, [UIScreen mainScreen].bounds.size.width / 375)
13 |
14 |
--------------------------------------------------------------------------------
/Classes/Macros/SIMathMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIMaths.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | // 度弧度转换
10 | #define DEGREES_TO_RADIANS(degrees) ((degrees*M_PI)/180.0)
11 | #define RADIANS_TO_DEGREES(radians) ((radians*180.0)/M_PI)
12 |
13 | // 随机Int
14 | #define RANDOM_INT(from,to) ((int)((from) + arc4random() % ((to)-(from) + 1)))
15 |
16 |
--------------------------------------------------------------------------------
/Classes/Manager/AppVersion/SIAppVersionManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIAppVersionManager.h
3 | // Category
4 | //
5 | // Created by Silence on 24/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SIAppVersionManager : NSObject
12 |
13 | /// 单例
14 | + (SIAppVersionManager *)sharedManager ;
15 |
16 | /// 检查新版本
17 | - (void)checkVersionWithAppID:(NSString *)appID showNewestMsg:(BOOL)showMsg;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/Manager/Debug/FPS/SIFPSManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIFPSManager.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/6.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SIFPSManager : UIWindow
12 |
13 | + (SIFPSManager *)sharedManager;
14 |
15 | - (void)open;
16 | - (void)close;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Classes/Manager/Proxy/SIProxyManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIProxyManager.h
3 | // Category
4 | //
5 | // Created by Silence on 2018/9/27.
6 | // Copyright © 2018年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 | /// 将消息进行分发
13 | @interface SIProxyManager : NSObject
14 |
15 | - (void)addTarger:(id)target;
16 | - (void)removeTarget:(id)target;
17 |
18 | @property (nonatomic,strong,readonly) NSPointerArray *targets;
19 |
20 | @end
21 |
22 | NS_ASSUME_NONNULL_END
23 |
--------------------------------------------------------------------------------
/Classes/QuartzCore/CALayer/CALayer+Frame.h:
--------------------------------------------------------------------------------
1 | //
2 | // CALayer+Frame.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CALayer (Frame)
12 |
13 | @property CGFloat top;
14 | @property CGFloat bottom;
15 | @property CGFloat left;
16 | @property CGFloat right;
17 |
18 | @property CGFloat centerX;
19 | @property CGFloat centerY;
20 |
21 | @property CGFloat height;
22 | @property CGFloat width;
23 |
24 | @property CGPoint center;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Classes/QuartzCore/CAShapeLayer/CAShapeLayer+UIBezierPath.h:
--------------------------------------------------------------------------------
1 | //
2 | // CAShapeLayer+UIBezierPath.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface CAShapeLayer (UIBezierPath)
13 |
14 | /**Update CAShapeLayer with UIBezierPath.*/
15 | - (void)updateWithBezierPath:(UIBezierPath *)path;
16 |
17 | /**Get UIBezierPath object, constructed from CAShapeLayer.*/
18 | - (UIBezierPath *)bezierPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/QuartzCore/SIQuartzCore.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIQuartzCore.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #ifndef SIQuartzCore_h
10 | #define SIQuartzCore_h
11 |
12 | #import "CALayer+Frame.h"
13 | #import "CALayer+Property.h"
14 |
15 | #import "CATransaction+AnimateWithDuration.h"
16 |
17 | #import "CAShapeLayer+UIBezierPath.h"
18 |
19 | #import "CAAnimation+EasingEquations.h"
20 |
21 | #import "CAMediaTimingFunction+AdditionalEquations.h"
22 |
23 | #endif /* SIQuartzCore_h */
24 |
--------------------------------------------------------------------------------
/Classes/SICategory.h:
--------------------------------------------------------------------------------
1 | //
2 | // SICategory.h
3 | // Category
4 | //
5 | // Created by Silence on 07/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #ifndef SICategory_h
10 | #define SICategory_h
11 |
12 | #import "SIFoundation.h"
13 | #import "SIUIKit.h"
14 | #import "SIMacros.h"
15 | #import "EXTObjc.h"
16 | #import "SIManager.h"
17 | #import "SIQuartzCore.h"
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIApplication/UIApplication+KeyboardFrame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+KeyboardFrame.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIApplication (KeyboardFrame)
12 |
13 | @property (nonatomic,readonly) CGRect keyboardFrame ; /// 键盘的Frame
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIApplication/UIApplication+UIDebug.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+UIDebug.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/27.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIApplication (UIDebug)
12 |
13 | /// 显示系统自带的UI调试插件(UIDebuggingInformationOverlay)
14 | + (void)showDebuggingInformationOverlay ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIBezierPath/UIBezierPath+BasicShapes.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+BasicShapes.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (BasicShapes)
12 |
13 | + (UIBezierPath *)heartShape:(CGRect)originalFrame;
14 | + (UIBezierPath *)userShape:(CGRect)originalFrame;
15 | + (UIBezierPath *)martiniShape:(CGRect)originalFrame;
16 | + (UIBezierPath *)beakerShape:(CGRect)originalFrame;
17 | + (UIBezierPath *)starShape:(CGRect)originalFrame;
18 | + (UIBezierPath *)stars:(NSUInteger)numberOfStars shapeInFrame:(CGRect)originalFrame;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIBezierPath/UIBezierPath+Length.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+Length.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (Length)
12 |
13 | - (CGFloat)length;
14 |
15 | - (CGPoint)pointAtPercentOfLength:(CGFloat)percent;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIBezierPath/UIBezierPath+SVGString.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+SVGString.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (SVGString)
12 |
13 | /// UIBezierPath转成SVG
14 | - (NSString*)SVGString;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+BackgroundColor.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+BackgroundColor.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (BackgroundColor)
12 |
13 |
14 | /**
15 | 给按钮设置背景颜色
16 |
17 | @param backgroundColor Color
18 | @param state 按钮的状态
19 | */
20 | - (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+Block.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Block.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^TouchedBlock)(id sender);
12 | @interface UIButton (Block)
13 |
14 | /// 给点击状态添加事件
15 | -(void)addActionHandler:(TouchedBlock)touchHandler;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+ClickEdgeInsets.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+ClickEdgeInsets.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /// 改变按钮的响应区域
12 | @interface UIButton (ClickEdgeInsets)
13 |
14 | /// 上左下右分别增加或减小多少 正数为增加 负数为减小
15 | @property (nonatomic, assign) UIEdgeInsets clickEdgeInsets;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+CountDown.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+CountDown.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (CountDown)
12 |
13 | /**
14 | 倒计时按钮
15 |
16 | @param timeout 总时间
17 | @param waitBlock 倒计时过程中可以再里面做一些操作
18 | @param finishBlock 完成时执行的block
19 | */
20 | - (void)startTime:(NSInteger)timeout waitBlock:(void(^)(NSInteger remainTime))waitBlock finishBlock:(void(^)(void))finishBlock;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+Indicator.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Indicator.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (Indicator)
12 |
13 | /// 显示菊花
14 | - (void)showIndicator;
15 |
16 | /// 隐藏菊花
17 | - (void)hideIndicator;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIButton/UIButton+Submitting.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Submitting.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (Submitting)
12 |
13 | /// 按钮点击后,禁用按钮并在按钮上显示ActivityIndicator,以及title 按钮上显示的文字
14 | - (void)beginSubmitting:(NSString *)title;
15 |
16 | /// 按钮点击后,恢复按钮点击前的状态
17 | - (void)endSubmitting;
18 |
19 | /// 按钮是否正在提交中
20 | @property(nonatomic, readonly, getter=isSubmitting) NSNumber *submitting;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIColor/UIColor+Random.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+Random.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIColor (Random)
12 |
13 | /// 随机颜色
14 | + (UIColor *)randomColor ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIColor/UIColor+Random.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+Random.m
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import "UIColor+Random.h"
10 |
11 | @implementation UIColor (Random)
12 |
13 | + (UIColor *)randomColor{
14 | NSInteger aRedValue = arc4random() % 255;
15 | NSInteger aGreenValue = arc4random() % 255;
16 | NSInteger aBlueValue = arc4random() % 255;
17 | UIColor *randColor = [UIColor colorWithRed:aRedValue / 255.0f green:aGreenValue / 255.0f blue:aBlueValue / 255.0f alpha:1.0f];
18 | return randColor;
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIControl/UIControl+Sound.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIControl+Sound.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIControl (Sound)
12 |
13 | /// 不同事件增加不同声音
14 | - (void)setSoundNamed:(NSString *)name forControlEvent:(UIControlEvents)controlEvent;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIDevice/UIDevice+CPU.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIDevice+CPU.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIDevice (CPU)
12 |
13 | @property (nonatomic,readonly) NSUInteger cpuNumber ; /// CPU核心数
14 | @property (nonatomic,readonly) NSUInteger cpuFrequency ; /// CPU频率
15 | @property (nonatomic,readonly) NSUInteger busFrequency ; /// BUS频率
16 |
17 | @property (nonatomic,readonly) float cpuUsage ; /// CPU利用率
18 | @property (nonatomic,readonly) NSArray *cpuUsagePerProcessor ;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIFont/UIFont+Load.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+Load.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIFont (Load)
12 |
13 | /// Load the font from file path. Support format:TTF,OTF.
14 | /// If return YES, font can be load use it PostScript Name: [UIFont fontWithName:...]
15 | + (BOOL)loadFontFromPath:(NSString *)path;
16 | + (void)unloadFontFromPath:(NSString *)path;
17 |
18 | + (UIFont *)loadFontFromData:(NSData *)data;
19 | + (BOOL)unloadFontFromData:(UIFont *)font;
20 |
21 | + (NSData *)dataFromFont:(UIFont *)font;
22 | + (NSData *)dataFromCGFont:(CGFontRef)cgFont;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIFont/UIFont+Make.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+Make.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface UIFont (Make)
13 |
14 | - (UIFont *)fontWithBold ;
15 | - (UIFont *)fontWithItalic ;
16 | - (UIFont *)fontWithBoldItalic ;
17 | - (UIFont *)fontWithNormal ;
18 |
19 | + (UIFont *)fontWithCTFont:(CTFontRef)CTFont;
20 | + (UIFont *)fontWithCGFont:(CGFontRef)CGFont size:(CGFloat)size;
21 |
22 | - (CTFontRef)CTFontRef ;
23 | - (CGFontRef)CGFontRef ;
24 |
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIFont/UIFont+TTF.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+TTF.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIFont (TTF)
12 |
13 | + (UIFont *)fontWithTTFAtPath:(NSString *)path size:(CGFloat)size;
14 | + (UIFont *)fontWithTTFAtURL:(NSURL *)URL size:(CGFloat)size;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIFont/UIFont+Traits.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+Traits.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIFont (Traits)
12 |
13 | @property (nonatomic, readonly) BOOL isBold;
14 | @property (nonatomic, readonly) BOOL isItalic;
15 | @property (nonatomic, readonly) BOOL isMonoSpace;
16 | @property (nonatomic, readonly) BOOL isColorGlyphs;
17 | @property (nonatomic, readonly) CGFloat fontWeight;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIGestureRecognizer/UIGestureRecognizer+ALActionBlocks.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIGestureRecognizer+ALActionBlocks.h
3 | // ALActionBlocks
4 | //
5 | // Created by Andy LaVoy on 10/17/13.
6 | // Copyright (c) 2013 Andy LaVoy. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "UIControl+ALActionBlocks.h"
11 |
12 | @interface UIGestureRecognizer (ALActionBlocks)
13 |
14 | + (instancetype)gestureRecognizerWithBlock:(ALActionBlock)actionBlock;
15 | - (void)setBlock:(ALActionBlock)actionBlock;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImage/UIImage+BetterFace.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+BetterFace.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSUInteger, Accuracy) {
12 | AccuracyLow = 0,
13 | AccuracyHigh,
14 | };
15 | @interface UIImage (BetterFace)
16 |
17 | - (UIImage *)betterFaceImageForSize:(CGSize)size
18 | accuracy:(Accuracy)accurary;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImage/UIImage+Capture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Capture.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Capture)
12 |
13 | /**
14 | 截取View生成图片
15 |
16 | @param view 视图
17 | @return 生成的图片
18 | */
19 | + (UIImage *)captureWithView:(UIView *)view ;
20 |
21 | /// 对图片进行缩放
22 | + (UIImage *)imageWithSize:(CGRect)myImageRect FromImage:(UIImage *)bigImage;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImage/UIImage+FileName.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+FileName.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (FileName)
12 |
13 | /// 根据main bundle中的文件名读取图片
14 | + (UIImage *)imageWithFileName:(NSString *)name;
15 |
16 | /// 根据指定bundle中的文件名读取图片
17 | + (UIImage *)imageWithFileName:(NSString *)name inBundle:(NSBundle*)bundle;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImage/UIImage+Merge.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Merge.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Merge)
12 |
13 | /**
14 | Merge Image
15 |
16 | @param firstImage 第一张图片
17 | @param secondImage 第二章图片
18 | @return Image
19 | */
20 | + (UIImage*)mergeImage:(UIImage*)firstImage withImage:(UIImage*)secondImage ;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImage/UIImage+Video.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Video.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Video)
12 |
13 | /// 获取视频的截图信息
14 | + (UIImage *)imageWithVideo:(NSString *)stringURL;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImageView/UIImageView+GeometryConversion.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+GeometryConversion.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (GeometryConversion)
12 |
13 | - (CGPoint)convertPointFromImage:(CGPoint)imagePoint;
14 | - (CGRect)convertRectFromImage:(CGRect)imageRect;
15 |
16 | - (CGPoint)convertPointFromView:(CGPoint)viewPoint;
17 | - (CGRect)convertRectFromView:(CGRect)viewRect;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIImageView/UIImageView+Reflect.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+Reflect.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (Reflect)
12 |
13 | /// 倒影
14 | - (void)reflect;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UILabel/UILabel+ContenSize.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+ContenSize.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UILabel (ContenSize)
12 |
13 |
14 | /**
15 | Content的Size
16 |
17 | @param width 限制宽度
18 | @return Size
19 | */
20 | - (CGSize)contentSizeForWidth:(CGFloat)width;
21 |
22 |
23 | /**
24 | Content Size
25 |
26 | @return Size
27 | */
28 | - (CGSize)contentSize;
29 |
30 |
31 | /**
32 | 是否被截断
33 |
34 | @return 是否被截断
35 | */
36 | - (BOOL)isTruncated;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/Classes/UIKit/UILabel/UILabel+Space.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+Space.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UILabel (Space)
12 |
13 | /// 设置字间距
14 | - (void)setColumnSpace:(CGFloat)columnSpace;
15 |
16 | /// 设置行距
17 | - (void)setRowSpace:(CGFloat)rowSpace;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Classes/UIKit/UINavigationBar/UINavigationBar+Appear.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+Appear.h
3 | // Category
4 | //
5 | // Created by Silence on 07/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (Appear)
12 |
13 | /// 隐藏阴影
14 | - (void)hideBottomShadow;
15 | /// 显示阴影
16 | - (void)showBottomShadow;
17 |
18 | /// 导航栏透明
19 | - (void)makeTransparent;
20 | /// 默认导航栏
21 | - (void)makeDefault;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Classes/UIKit/UINavigationBar/UINavigationBar+Awesome.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+Awesome.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (Awesome)
12 |
13 | - (void)setBackgroundColor:(UIColor *)backgroundColor;
14 | - (void)setElementsAlpha:(CGFloat)alpha;
15 | - (void)setTranslationY:(CGFloat)translationY;
16 | - (void)reset;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Classes/UIKit/UINavigationController/UINavigationController+Hide.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Hide.h
3 | // HIdeDemo
4 | //
5 | // Created by Silence on 17/01/2017.
6 | // Copyright © 2017 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationController (Hide)
12 |
13 | @property (nonatomic,getter=isNavBarHidden,readonly) BOOL navBarHidden ; /// 导航栏是否隐藏
14 |
15 |
16 | /**
17 | 设置NavBar隐藏
18 |
19 | @param hidden Hidden
20 | @param animated 是否有动画
21 | @param completion 完成回调
22 | */
23 | - (void)setNavBarHidden:(BOOL)hidden
24 | animated:(BOOL)animated
25 | completion:(void (^)(BOOL finished))completion;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Classes/UIKit/UINavigationItem/UINavigationItem+Lock.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Lock.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationItem (Lock)
12 |
13 | /**
14 | * @brief 锁定RightItem
15 | *
16 | * @param lock 是否锁定
17 | */
18 | - (void)lockRightItem:(BOOL)lock;
19 | /**
20 | * @brief 锁定LeftItem
21 | *
22 | * @param lock 是否锁定
23 | */
24 | - (void)lockLeftItem:(BOOL)lock;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIResponder/UIResponder+Chain.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Chain.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. 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 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIResponder/UIResponder+FirstResponder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+FirstResponder.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIResponder (FirstResponder)
12 |
13 | /**
14 | * @brief 当前第一响应者
15 | *
16 | * @return 当前第一响应者
17 | */
18 | + (id)currentFirstResponder;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIResponder/UIResponder+FirstResponder.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+FirstResponder.m
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import "UIResponder+FirstResponder.h"
10 |
11 | static __weak id currentFirstResponder;
12 | @implementation UIResponder (FirstResponder)
13 |
14 | + (id)currentFirstResponder {
15 | currentFirstResponder = nil;
16 | [[UIApplication sharedApplication] sendAction:@selector(findCurrentFirstResponder:) to:nil from:nil forEvent:nil];
17 | return currentFirstResponder;
18 | }
19 |
20 | - (void)findCurrentFirstResponder:(id)sender {
21 | currentFirstResponder = self;
22 | }
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIScrollView/UIScrollView+Amplification.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+Amplification.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (Amplification)
12 |
13 | @property (nonatomic, strong) UIView *bigView;
14 | @property (nonatomic, strong) UIView *headerView;
15 | -(void)setBigView:(UIView *)bigView withHeaderView:(UIView *)headerView;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIScrollView/UIScrollView+PageNumber.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+PageNumber.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (PageNumber)
12 |
13 | -(NSInteger)totalPages;
14 |
15 | -(void)setPageNumber:(NSInteger)pageNumber animated:(BOOL)animated;
16 | -(void)setPageNumber:(NSInteger)pageNumber;
17 | -(NSInteger)pageNumber;
18 |
19 | -(BOOL)isLastPage;
20 | -(BOOL)isFirstPage;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIScrollView/UIScrollView+SimpleScroll.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+SimpleScroll.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (SimpleScroll)
12 |
13 | - (void)scrollToTop;
14 | - (void)scrollToBottom;
15 | - (void)scrollToLeft;
16 | - (void)scrollToRight;
17 |
18 | - (void)scrollToTopAnimated:(BOOL)animated;
19 | - (void)scrollToBottomAnimated:(BOOL)animated;
20 | - (void)scrollToLeftAnimated:(BOOL)animated;
21 | - (void)scrollToRightAnimated:(BOOL)animated;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Classes/UIKit/UISlider/UISlider+Tap.h:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+Tap.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/12.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UISlider (Tap)
12 |
13 | /// 单击手势,会自动到对应比例
14 | - (void)addTapGestureWithTarget: (id)target action: (SEL)action;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITabBarController/UITabBarController+Hide.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarController+Hide.h
3 | // HIdeDemo
4 | //
5 | // Created by Silence on 17/01/2017.
6 | // Copyright © 2017 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITabBarController (Hide)
12 |
13 | @property (nonatomic,getter=isTabBarHidden,readonly) BOOL tabBarHidden ;
14 |
15 |
16 | /**
17 | 设置Tabbar隐藏
18 |
19 | @param hidden 是否隐藏
20 | @param animated 是否有动画
21 | @param completion 返回回调
22 | */
23 | - (void)setTabBarHidden:(BOOL)hidden
24 | animated:(BOOL)animated
25 | completion:(void (^)(BOOL finished))completion;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITableView/UITableView+Placeholder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+Placeholder.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/20.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^PlaceholderClickBlock)(UIView *view);
12 |
13 | @interface UITableView (Placeholder)
14 |
15 | @property (nonatomic, assign) BOOL showPlaceholder;
16 |
17 | @property (nonatomic, copy) PlaceholderClickBlock placeholderClickBlock;
18 | @property (nonatomic, copy) NSString *placeholderText;
19 | @property (nonatomic, copy) UIImage *placeholderImage;
20 | @property (nonatomic, copy) UIView *placeholderCustomView;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITableView/UITableView+iOS7Style.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+iOS7Style.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableView (iOS7Style)
12 |
13 | /**
14 | * @brief ios7设置页面的UITableViewCell样式
15 | *
16 | * @param cell cell
17 | * @param indexPath indexPath
18 | */
19 | -(void)applyiOS7SettingsStyleGrouping:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITableViewCell/UITableViewCell+NIB.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableViewCell+NIB.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableViewCell (NIB)
12 |
13 | /// 加载同类名的nib
14 | + (UINib*)nib;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITableViewCell/UITableViewCell+NIB.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITableViewCell+NIB.m
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import "UITableViewCell+NIB.h"
10 |
11 | @implementation UITableViewCell (NIB)
12 |
13 | + (UINib *)nib {
14 | return [UINib nibWithNibName:NSStringFromClass([self class]) bundle:nil];
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITextField/UITextField+InputLimit.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+InputLimit.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (InputLimit)
12 |
13 | @property (assign, nonatomic) NSInteger maxLength ; // <= 0无限制
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITextField/UITextField+Select.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+Select.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (Select)
12 |
13 | /**
14 | * 当前选中的字符串范围
15 | *
16 | * @return NSRange
17 | */
18 | - (NSRange)selectedRange;
19 | /**
20 | * 选中所有文字
21 | */
22 | - (void)selectAllText;
23 | /**
24 | * 选中指定范围的文字
25 | *
26 | * @param range NSRange范围
27 | */
28 | - (void)setSelectedRange:(NSRange)range;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITextView/UITextView+InputLimit.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+InputLimit.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextView (InputLimit)
12 |
13 | @property (assign, nonatomic) NSInteger maxLength;//if <=0, no limit
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Classes/UIKit/UITextView/UITextView+Select.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+Select.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextView (Select)
12 |
13 | /// 当前选中的字符串范围
14 | - (NSRange)selectedRange;
15 |
16 | /// 选中所有文字
17 | - (void)selectAllText;
18 |
19 | /// 选中指定范围的文字
20 | - (void)setSelectedRange:(NSRange)range;
21 |
22 | /// 用于计算textview输入情况下的字符数,解决实现限制字符数时,计算不准的问题
23 | - (NSInteger)getInputLengthWithText:(NSString *)text;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+BlockGesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+BlockGesture.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^GestureActionBlock)(UIGestureRecognizer *gestureRecoginzer);
12 |
13 | @interface UIView (BlockGesture)
14 |
15 | /// 添加点击手势
16 | - (void)addTapActionWithBlock:(GestureActionBlock)block;
17 | /// 添加长按手势
18 | - (void)addLongPressActionWithBlock:(GestureActionBlock)block;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+Find.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Find.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Find)
12 |
13 | /// 找到指定类名的第一个subView
14 | - (UIView *)findSubViewWithClass:(Class)clazz;
15 |
16 | /// 找到指定类名的所有subview
17 | - (NSArray *)findAllSubViewsWithClass:(Class)clazz;
18 |
19 | /// 找到当前view所在的viewcontroler
20 | - (UIViewController *)viewController;
21 |
22 | /// 所有的子控件,包括子控件的子控件
23 | - (NSArray *)allSubviews;
24 |
25 | /// 移除所有的子控件
26 | - (void)removeAllSubviews;
27 |
28 | /// 找到view上的第一响应者
29 | - (UIView *)findFirstResponder;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+Frame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Frame.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Frame)
12 |
13 | @property (nonatomic, assign) CGPoint origin;
14 | @property (nonatomic, assign) CGSize size;
15 |
16 | @property (nonatomic) CGFloat centerX;
17 | @property (nonatomic) CGFloat centerY;
18 |
19 | @property (nonatomic) CGFloat top;
20 | @property (nonatomic) CGFloat bottom;
21 | @property (nonatomic) CGFloat right;
22 | @property (nonatomic) CGFloat left;
23 |
24 | @property (nonatomic) CGFloat width;
25 | @property (nonatomic) CGFloat height;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+NIB.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+NIB.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (NIB)
12 |
13 | + (UINib *)loadNib;
14 | + (UINib *)loadNibNamed:(NSString*)nibName;
15 | + (UINib *)loadNibNamed:(NSString*)nibName bundle:(NSBundle *)bundle;
16 |
17 | + (instancetype)loadInstanceFromNib;
18 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName;
19 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner;
20 | + (instancetype)loadInstanceFromNibWithName:(NSString *)nibName owner:(id)owner bundle:(NSBundle *)bundle;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+Radius.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+IBnspectable.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /** View的XIB可视化扩展类> */
12 | @interface UIView (Radius)
13 |
14 | /// 给UIView 设置圆角
15 | @property (assign,nonatomic) NSInteger cornerRadius;
16 | @property (assign,nonatomic) BOOL masksToBounds;
17 |
18 |
19 | ///设置 view的 边框颜色(选择器和Hex颜色)以及 边框的宽度
20 | @property (assign,nonatomic) NSInteger borderWidth;
21 | @property (strong,nonatomic) UIColor *borderColor;
22 |
23 | - (void)setLayerShadow:(UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+Recursion.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Recursion.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^SubviewBlock) (UIView* view);
12 | typedef void (^SuperviewBlock) (UIView* superview);
13 | @interface UIView (Recursion)
14 |
15 | - (UIView*)findViewRecursively:(BOOL(^)(UIView* subview, BOOL* stop))recurse;
16 |
17 |
18 | -(void)runBlockOnAllSubviews:(SubviewBlock)block;
19 | -(void)runBlockOnAllSuperviews:(SuperviewBlock)block;
20 | -(void)enableAllControlsInViewHierarchy;
21 | -(void)disableAllControlsInViewHierarchy;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+Screenshot.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Screenshot.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Screenshot)
12 |
13 | /// 截取当前View
14 | - (nullable UIImage *)snapshotImage;
15 |
16 | - (nullable UIImage *)snapshotImageAfterScreenUpdates:(BOOL)afterUpdates;
17 | /// 截取当前View为PDF
18 | - (nullable NSData *)snapshotPDF;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+SubtractMask.h:
--------------------------------------------------------------------------------
1 | //
2 | // SubtractMask.h
3 | // Category
4 | //
5 | // Created by Silence on 2018/11/20.
6 | // Copyright © 2018年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (SubtractMask)
14 |
15 | /**
16 | 设置镂空遮罩视图,该方法本质上是设置maskView
17 | 如果寄宿图的内容有更新,需要手动再调用setter方法
18 |
19 | @param view 遮罩视图
20 | */
21 | - (void)setSubtractMaskView:(UIView *)view;
22 |
23 | /**
24 | 获取镂空遮罩视图,用于动态修改遮罩的一些属性
25 |
26 | @return 遮罩视图
27 | */
28 | - (UIView *)subtractMaskView;
29 |
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/13.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (ViewController)
12 |
13 | /// 所在的ViewController
14 | - (UIViewController *)viewController ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIView/UIView+ViewPath.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewPath.h
3 | // ViewPathDemo
4 | //
5 | // Created by Silence on 2019/4/8.
6 | // Copyright © 2019年 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (ViewPath)
14 |
15 | @property (nonatomic, readonly) NSString *viewPath;
16 |
17 | @property (nonatomic ,readonly) NSString *viewID;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+BackAction.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+BackAction.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/29.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^SIBackAction)(UINavigationController *vc);
12 |
13 | @interface UIViewController (BackAction)
14 |
15 | -(void)backButtonTouched:(SIBackAction)backButtonHandler;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+RecursiveDescription.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+RecursiveDescription.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (RecursiveDescription)
12 |
13 | /**
14 | * @brief 视图层级
15 | *
16 | * @return 视图层级字符串
17 | */
18 | -(NSString*)recursiveDescription;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+Segues.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Segues.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/22.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^UIViewControllerSeguesPrepareCallback)(UIViewController* target);
12 |
13 | @interface UIViewController (Segues)
14 |
15 | - (void)performSegueWithIdentifier:(NSString *)identifier prepareCallback:(UIViewControllerSeguesPrepareCallback)callback;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+TopViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+TopViewController.h
3 | // Category
4 | //
5 | // Created by Silence on 2019/8/5.
6 | // Copyright © 2019年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (TopViewController)
12 |
13 | - (UIViewController * _Nullable)topViewController;
14 | - (void)presentViewControllerOnTopAnimated:(BOOL)flag completion:(void (^ _Nullable)(void))completion;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+Visible.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Visible.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (Visible)
12 |
13 | - (BOOL)isVisible;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIViewController/UIViewController+Visible.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Visible.m
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import "UIViewController+Visible.h"
10 |
11 | @implementation UIViewController (Visible)
12 |
13 | - (BOOL)isVisible {
14 | return [self isViewLoaded] && self.view.window;
15 | }
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIWebView/UIWebView+MetaParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+MetaParser.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWebView (MetaParser)
12 |
13 | ///获取网页meta信息
14 | -(NSArray *)getMetaData;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Classes/UIKit/UIWebView/UIWebView+SwipeGesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+SwipeGesture.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWebView (SwipeGesture)
12 |
13 | - (void)useSwipeGesture ;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module SICategory {
2 | umbrella header "SICategory.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/SICategory:
--------------------------------------------------------------------------------
1 | Versions/Current/SICategory
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/CALayer+Frame.h:
--------------------------------------------------------------------------------
1 | //
2 | // CALayer+Frame.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CALayer (Frame)
12 |
13 | @property CGFloat top;
14 | @property CGFloat bottom;
15 | @property CGFloat left;
16 | @property CGFloat right;
17 |
18 | @property CGFloat centerX;
19 | @property CGFloat centerY;
20 |
21 | @property CGFloat height;
22 | @property CGFloat width;
23 |
24 | @property CGPoint center;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/CAShapeLayer+UIBezierPath.h:
--------------------------------------------------------------------------------
1 | //
2 | // CAShapeLayer+UIBezierPath.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface CAShapeLayer (UIBezierPath)
13 |
14 | /**Update CAShapeLayer with UIBezierPath.*/
15 | - (void)updateWithBezierPath:(UIBezierPath *)path;
16 |
17 | /**Get UIBezierPath object, constructed from CAShapeLayer.*/
18 | - (UIBezierPath *)bezierPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/EXTObjc.h:
--------------------------------------------------------------------------------
1 | //
2 | // extobjc.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2010-11-09.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import "EXTADT.h"
11 | #import "EXTConcreteProtocol.h"
12 | #import "EXTKeyPathCoding.h"
13 | #import "EXTNil.h"
14 | #import "EXTSafeCategory.h"
15 | #import "EXTScope.h"
16 | #import "EXTSelectorChecking.h"
17 | #import "EXTSynthesize.h"
18 | #import "NSInvocation+EXT.h"
19 | #import "NSMethodSignature+EXT.h"
20 |
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSArray+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (Contains)
12 |
13 |
14 | /**
15 | 是否包含所有数组中元素
16 |
17 | @param array 要寻找的Array
18 | @return 是否包含
19 | */
20 | -(BOOL)containsAll:(NSArray *)array;
21 |
22 |
23 | /**
24 | 是否包含其中任意一个元素
25 |
26 | @param array 要寻找的Array
27 | @return 是否包含
28 | */
29 | -(BOOL)containsAny:(NSArray *)array;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSArray+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (JSONEncode)
12 |
13 | /**
14 | 转换为JSON
15 |
16 | @return JSON Sting
17 | */
18 | - (NSString *)jsonStringEncoded;
19 |
20 | /**
21 | 返回格式化后JSON
22 |
23 | @return 格式化后的JSON String
24 | */
25 | - (NSString *)jsonPrettyStringEncoded;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSData+APNSToken.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+APNSToken.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (APNSToken)
12 |
13 | /**
14 | * 将APNS NSData类型token 格式化成字符串
15 | *
16 | * @return 整理过后的字符串token
17 | */
18 | - (NSString *)APNSToken;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSData+Cache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Cache.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Cache)
12 |
13 | /**
14 | 根据key保存到磁盘里缓存起来
15 |
16 | @param key Key
17 | */
18 | - (void)saveDataCacheWithKey:(NSString *)key;
19 |
20 |
21 | /**
22 | 根据key取出缓存data
23 |
24 | @param key Key
25 | @return 对象数据
26 | */
27 | + (NSData *)getDataCacheWithKey:(NSString *)key;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSData+DataCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+DataCache.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (DataCache)
12 |
13 | /**
14 | * 将URL作为key保存到磁盘里缓存起来
15 | *
16 | * @param identifier url.absoluteString
17 | */
18 | - (void)saveDataCacheWithIdentifier:(NSString *)identifier;
19 |
20 | /**
21 | * 取出缓存data
22 | *
23 | * @param identifier url.absoluteString
24 | *
25 | * @return 缓存
26 | */
27 | + (NSData *)getDataCacheWithIdentifier:(NSString *)identifier;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSData+Encrypt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Encrypt.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Encrypt)
12 |
13 | /**利用AES加密数据*/
14 | - (NSData *)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
15 | /**利用AES解密数据*/
16 | - (NSData *)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
17 |
18 | /**利用3DES加密数据*/
19 | - (NSData *)encryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
20 | /**利用3DES解密数据*/
21 | - (NSData *)decryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSDate+Cupertino.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+Cupertino.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDate (Cupertino)
12 |
13 | - (NSDate *)beginningOfDay;
14 | - (NSDate *)endOfDay;
15 |
16 | - (NSDate *)beginningOfWeek;
17 | - (NSDate *)endOfWeek;
18 |
19 | - (NSDate *)beginningOfMonth;
20 | - (NSDate *)endOfMonth;
21 |
22 |
23 | - (NSDate *)beginningOfYear;
24 | - (NSDate *)endOfYear;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSDictionary+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (JSONEncode)
12 |
13 | /**
14 | JSON String Encoded
15 |
16 | @return JSON String
17 | */
18 | - (nullable NSString *)jsonStringEncoded;
19 |
20 |
21 | /**
22 | JSON PrettyString Encoded
23 |
24 | @return JSON Pretty String
25 | */
26 | - (nullable NSString *)jsonPrettyStringEncoded;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSDictionary+Merge.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Merge.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (Merge)
12 |
13 | /** 合并两个NSDictionary */
14 | + (NSDictionary *)dictionaryByMerging:(NSDictionary *)dict1 with:(NSDictionary *)dict2;
15 |
16 | /** 并入一个NSDictionary */
17 | - (NSDictionary *)dictionaryByMergingWith:(NSDictionary *)dict;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSDictionary+Plist.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Plist.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface NSDictionary (Plist)
13 |
14 | /// 根据Plist数据初始化字典
15 | + (instancetype)dictionaryWithPlistData:(NSData *)plist;
16 | /// 根绝Plist String初始化字典
17 | + (instancetype)dictionaryWithPlistString:(NSString *)plist;
18 |
19 | /// Plist 数据信息
20 | - (NSData *)plistData;
21 | /// Plist String
22 | - (NSString *)plistString;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSDictionary+URL.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+URL.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (URL)
12 |
13 | /// 将url参数转换成NSDictionary
14 | + (NSDictionary *)dictionaryWithURLQuery:(NSString *)query;
15 | /// 将NSDictionary转换成url参数字符串
16 | - (NSString *)URLQueryString;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSFileHandle+ReadLine.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSFileHandle+ReadLine.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSFileHandle (ReadLine)
12 |
13 | /**
14 | * @brief A Cocoa / Objective-C NSFileHandle category that adds the ability to read a file line by line.
15 |
16 | *
17 | * @param theDelimier 分隔符
18 | *
19 | * @return An NSData* object is returned with the line if found, or nil if no more lines were found
20 | */
21 | - (NSData *)readLineWithDelimiter:(NSString *)theDelimier;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSNotificationCenter+AutoRemove.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotificationCenter+AutoRemove.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNotificationCenter (AutoRemove)
12 |
13 | /// 设置是否自动移除监听
14 | + (void)setNotificationAutoRemoveEnable:(BOOL)enable;
15 | /// 获取自动移除监听是否开启
16 | + (BOOL)notificationAutoRemoveEnable;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSNumber+Display.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Display.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Display)
12 |
13 | /// 显示指定精读
14 | - (NSString *)displayNumberWithDigit:(NSInteger)digit;
15 |
16 | /// 显示百分比
17 | - (NSString *)displayPercentageWithDigit:(NSInteger)digit;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSNumber+Roman.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Roman.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Roman)
12 |
13 | /** 返回自己对应的罗马数字 */
14 | - (NSString *)romanNumeral;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+Block.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Block.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Block)
12 |
13 | + (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
14 | + (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
15 | - (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
16 | - (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
17 |
18 | + (void)cancelBlock:(id)block;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+Dealloc.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Dealloc.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/25.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^DeallocBlock)(void);
12 |
13 | @interface NSObject (Dealloc)
14 |
15 | - (void)executeAtDealloc:(DeallocBlock)block;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+Parse.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Parse.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Parse)
12 |
13 | /// 转换为String
14 | - (NSString *)toString;
15 |
16 | /// 转换为Number
17 | - (NSNumber *)toNumber;
18 |
19 | /// 转化为Dictionary
20 | - (NSDictionary *)toDictionary;
21 |
22 | /// 转换为Array
23 | - (NSArray *)toArray;
24 |
25 | /// 转换为Array
26 | - (NSArray *)toArrayOf:(Class)itemClass;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+PerformSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+PerformSelector.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/8/23.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (PerformSelector)
12 |
13 | - (id)performSelector:(SEL)aSelector withObjects:(NSArray *)objects;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+QuickCode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCode.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCode)
12 |
13 | /** 快速归档 */
14 | - (id)quickCoderWith:(NSCoder *)aDecoder ;
15 |
16 | /** 快速解档 */
17 | - (void)quickEncodeWithCoder:(NSCoder *)aCoder ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSObject+QuickCopy.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCopy.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCopy)
12 |
13 | /** 快速浅复制目标的所有属性 */
14 | - (BOOL)quickCopy:(NSObject *)instance ;
15 |
16 | /** 快速深复制目标的所有属性 */
17 | - (BOOL)quickDeepCopy:(NSObject *)instance ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+AES.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+AES.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/11/15.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (AES)
12 |
13 | /// 加密方法
14 | - (NSString *)encryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
15 |
16 | /// 解密方法
17 | - (NSString*)decryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
18 |
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+Append.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Append.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Append)
12 |
13 | - (NSString *)appendHomePath;
14 | - (NSString *)appendDocumentPath;
15 | - (NSString *)appendCachePath;
16 | - (NSString *)appendMainBundlePath;
17 | - (NSString *)appendTempPath;
18 | - (NSString *)appendPreferencesPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Contains)
12 |
13 | /**是否包含中文*/
14 | - (BOOL)isContainChinese;
15 |
16 | /**是否包含空格*/
17 | - (BOOL)isContainBlank;
18 |
19 | /**是否包含set*/
20 | - (BOOL)containsCharacterSet:(NSCharacterSet *)set;
21 |
22 | /**是否包含String*/
23 | - (BOOL)containsString:(NSString *)string;
24 |
25 | /**字符数量*/
26 | - (int)wordsCount;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+JSONValue.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+JSONValue.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (JSONValue)
12 |
13 | /// JSON String 转换为字典
14 | - (NSDictionary *)JSONDictionaryValue ;
15 |
16 | /// JSON String 转换为数组
17 | - (NSArray *)JSONArrayValue ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+MIME.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+MIME.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (MIME)
12 |
13 |
14 | /**
15 | 文件名的MIME
16 |
17 | @return MIME
18 | */
19 | - (NSString *)MIMEType;
20 |
21 | /**
22 | 根绝后辍名获取MIME Type
23 |
24 | @param extension 后辍名
25 | @return MIME
26 | */
27 | + (NSString *)MIMETypeForExtension:(NSString *)extension;
28 |
29 | /**
30 | MIMEDict信息
31 |
32 | @return MIMEDict字典
33 | */
34 | + (NSDictionary *)MIMEDict;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+QRcode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+QRcode.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class UIImage;
12 | @interface NSString (QRcode)
13 |
14 | /**
15 | String的二维码信息
16 |
17 | @return String的二维码图片
18 | */
19 | - (UIImage *)QRcode ;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSString+XML.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+XML.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (XML)
12 |
13 | /**
14 | * xml字符串转换成NSDictionary
15 | *
16 | * @return NSDictionary
17 | */
18 | -(NSDictionary *)XMLDictionary;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSTimer+Pause.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSTimer+Pause.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSTimer (Pause)
12 |
13 | /// 暂停NSTimer
14 | - (void)pauseTimer;
15 |
16 | /// 开始NSTimer
17 | - (void)resumeTimer;
18 |
19 | /// 延迟开始NSTimer
20 | - (void)resumeTimerAfterTimeInterval:(NSTimeInterval)interval;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/NSUserDefaults+iCloudSync.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSUserDefaults+iCloudSync.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSUserDefaults (iCloudSync)
12 |
13 | -(void)setValue:(id)value forKey:(NSString *)key iCloudSync:(BOOL)sync;
14 | -(void)setObject:(id)value forKey:(NSString *)key iCloudSync:(BOOL)sync;
15 |
16 | -(id)valueForKey:(NSString *)key iCloudSync:(BOOL)sync;
17 | -(id)objectForKey:(NSString *)key iCloudSync:(BOOL)sync;
18 |
19 | -(BOOL)synchronizeAlsoiCloudSync:(BOOL)sync;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIARCMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIARCMacros.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | // 强弱引用
10 | #define WeakSelf __weak __typeof(self) weakSelf = self;
11 | #define StrongSelf __strong __typeof(weakSelf)strongSelf = weakSelf;
12 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIAppVersionManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIAppVersionManager.h
3 | // Category
4 | //
5 | // Created by Silence on 24/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SIAppVersionManager : NSObject
12 |
13 | /// 单例
14 | + (SIAppVersionManager *)sharedManager ;
15 |
16 | /// 检查新版本
17 | - (void)checkVersionWithAppID:(NSString *)appID showNewestMsg:(BOOL)showMsg;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SICategory.h:
--------------------------------------------------------------------------------
1 | //
2 | // SICategory.h
3 | // Category
4 | //
5 | // Created by Silence on 07/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #ifndef SICategory_h
10 | #define SICategory_h
11 |
12 | #import "SIFoundation.h"
13 | #import "SIUIKit.h"
14 | #import "SIMacros.h"
15 | #import "EXTObjc.h"
16 | #import "SIManager.h"
17 | #import "SIQuartzCore.h"
18 |
19 | #endif
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SICoreGraphicsMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SICoreGraphicsMacros.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #define CGizeMultiply(size, mult) CGSizeMake(size.width * mult, size.height * mult)
10 |
11 | #define CGizeWith320(size) CGizeMultiply(size, [UIScreen mainScreen].bounds.size.width / 320)
12 | #define CGizeWith375(size) CGizeMultiply(size, [UIScreen mainScreen].bounds.size.width / 375)
13 |
14 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIFPSManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIFPSManager.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/6.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SIFPSManager : UIWindow
12 |
13 | + (SIFPSManager *)sharedManager;
14 |
15 | - (void)open;
16 | - (void)close;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIMathMacro.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIMaths.h
3 | // Category
4 | //
5 | // Created by Silence on 16/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | // 度弧度转换
10 | #define DEGREES_TO_RADIANS(degrees) ((degrees*M_PI)/180.0)
11 | #define RADIANS_TO_DEGREES(radians) ((radians*180.0)/M_PI)
12 |
13 | // 随机Int
14 | #define RANDOM_INT(from,to) ((int)((from) + arc4random() % ((to)-(from) + 1)))
15 |
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIProxyManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIProxyManager.h
3 | // Category
4 | //
5 | // Created by Silence on 2018/9/27.
6 | // Copyright © 2018年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 | /// 将消息进行分发
13 | @interface SIProxyManager : NSObject
14 |
15 | - (void)addTarger:(id)target;
16 | - (void)removeTarget:(id)target;
17 |
18 | @property (nonatomic,strong,readonly) NSPointerArray *targets;
19 |
20 | @end
21 |
22 | NS_ASSUME_NONNULL_END
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/SIQuartzCore.h:
--------------------------------------------------------------------------------
1 | //
2 | // SIQuartzCore.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #ifndef SIQuartzCore_h
10 | #define SIQuartzCore_h
11 |
12 | #import "CALayer+Frame.h"
13 | #import "CALayer+Property.h"
14 |
15 | #import "CATransaction+AnimateWithDuration.h"
16 |
17 | #import "CAShapeLayer+UIBezierPath.h"
18 |
19 | #import "CAAnimation+EasingEquations.h"
20 |
21 | #import "CAMediaTimingFunction+AdditionalEquations.h"
22 |
23 | #endif /* SIQuartzCore_h */
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIApplication+KeyboardFrame.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+KeyboardFrame.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIApplication (KeyboardFrame)
12 |
13 | @property (nonatomic,readonly) CGRect keyboardFrame ; /// 键盘的Frame
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIApplication+UIDebug.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIApplication+UIDebug.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/27.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIApplication (UIDebug)
12 |
13 | /// 显示系统自带的UI调试插件(UIDebuggingInformationOverlay)
14 | + (void)showDebuggingInformationOverlay ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIBezierPath+BasicShapes.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+BasicShapes.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (BasicShapes)
12 |
13 | + (UIBezierPath *)heartShape:(CGRect)originalFrame;
14 | + (UIBezierPath *)userShape:(CGRect)originalFrame;
15 | + (UIBezierPath *)martiniShape:(CGRect)originalFrame;
16 | + (UIBezierPath *)beakerShape:(CGRect)originalFrame;
17 | + (UIBezierPath *)starShape:(CGRect)originalFrame;
18 | + (UIBezierPath *)stars:(NSUInteger)numberOfStars shapeInFrame:(CGRect)originalFrame;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIBezierPath+Length.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+Length.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (Length)
12 |
13 | - (CGFloat)length;
14 |
15 | - (CGPoint)pointAtPercentOfLength:(CGFloat)percent;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIBezierPath+SVGString.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIBezierPath+SVGString.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIBezierPath (SVGString)
12 |
13 | /// UIBezierPath转成SVG
14 | - (NSString*)SVGString;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+BackgroundColor.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+BackgroundColor.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (BackgroundColor)
12 |
13 |
14 | /**
15 | 给按钮设置背景颜色
16 |
17 | @param backgroundColor Color
18 | @param state 按钮的状态
19 | */
20 | - (void)setBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+Block.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Block.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^TouchedBlock)(id sender);
12 | @interface UIButton (Block)
13 |
14 | /// 给点击状态添加事件
15 | -(void)addActionHandler:(TouchedBlock)touchHandler;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+ClickEdgeInsets.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+ClickEdgeInsets.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /// 改变按钮的响应区域
12 | @interface UIButton (ClickEdgeInsets)
13 |
14 | /// 上左下右分别增加或减小多少 正数为增加 负数为减小
15 | @property (nonatomic, assign) UIEdgeInsets clickEdgeInsets;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+CountDown.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+CountDown.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (CountDown)
12 |
13 | /**
14 | 倒计时按钮
15 |
16 | @param timeout 总时间
17 | @param waitBlock 倒计时过程中可以再里面做一些操作
18 | @param finishBlock 完成时执行的block
19 | */
20 | - (void)startTime:(NSInteger)timeout waitBlock:(void(^)(NSInteger remainTime))waitBlock finishBlock:(void(^)(void))finishBlock;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+Indicator.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Indicator.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (Indicator)
12 |
13 | /// 显示菊花
14 | - (void)showIndicator;
15 |
16 | /// 隐藏菊花
17 | - (void)hideIndicator;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIButton+Submitting.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIButton+Submitting.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIButton (Submitting)
12 |
13 | /// 按钮点击后,禁用按钮并在按钮上显示ActivityIndicator,以及title 按钮上显示的文字
14 | - (void)beginSubmitting:(NSString *)title;
15 |
16 | /// 按钮点击后,恢复按钮点击前的状态
17 | - (void)endSubmitting;
18 |
19 | /// 按钮是否正在提交中
20 | @property(nonatomic, readonly, getter=isSubmitting) NSNumber *submitting;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIColor+Random.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIColor+Random.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIColor (Random)
12 |
13 | /// 随机颜色
14 | + (UIColor *)randomColor ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIControl+Sound.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIControl+Sound.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIControl (Sound)
12 |
13 | /// 不同事件增加不同声音
14 | - (void)setSoundNamed:(NSString *)name forControlEvent:(UIControlEvents)controlEvent;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIDevice+CPU.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIDevice+CPU.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIDevice (CPU)
12 |
13 | @property (nonatomic,readonly) NSUInteger cpuNumber ; /// CPU核心数
14 | @property (nonatomic,readonly) NSUInteger cpuFrequency ; /// CPU频率
15 | @property (nonatomic,readonly) NSUInteger busFrequency ; /// BUS频率
16 |
17 | @property (nonatomic,readonly) float cpuUsage ; /// CPU利用率
18 | @property (nonatomic,readonly) NSArray *cpuUsagePerProcessor ;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIFont+Make.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+Make.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface UIFont (Make)
13 |
14 | - (UIFont *)fontWithBold ;
15 | - (UIFont *)fontWithItalic ;
16 | - (UIFont *)fontWithBoldItalic ;
17 | - (UIFont *)fontWithNormal ;
18 |
19 | + (UIFont *)fontWithCTFont:(CTFontRef)CTFont;
20 | + (UIFont *)fontWithCGFont:(CGFontRef)CGFont size:(CGFloat)size;
21 |
22 | - (CTFontRef)CTFontRef ;
23 | - (CGFontRef)CGFontRef ;
24 |
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIFont+TTF.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+TTF.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIFont (TTF)
12 |
13 | + (UIFont *)fontWithTTFAtPath:(NSString *)path size:(CGFloat)size;
14 | + (UIFont *)fontWithTTFAtURL:(NSURL *)URL size:(CGFloat)size;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIFont+Traits.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIFont+Traits.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIFont (Traits)
12 |
13 | @property (nonatomic, readonly) BOOL isBold;
14 | @property (nonatomic, readonly) BOOL isItalic;
15 | @property (nonatomic, readonly) BOOL isMonoSpace;
16 | @property (nonatomic, readonly) BOOL isColorGlyphs;
17 | @property (nonatomic, readonly) CGFloat fontWeight;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIGestureRecognizer+ALActionBlocks.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIGestureRecognizer+ALActionBlocks.h
3 | // ALActionBlocks
4 | //
5 | // Created by Andy LaVoy on 10/17/13.
6 | // Copyright (c) 2013 Andy LaVoy. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "UIControl+ALActionBlocks.h"
11 |
12 | @interface UIGestureRecognizer (ALActionBlocks)
13 |
14 | + (instancetype)gestureRecognizerWithBlock:(ALActionBlock)actionBlock;
15 | - (void)setBlock:(ALActionBlock)actionBlock;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImage+BetterFace.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+BetterFace.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef NS_ENUM(NSUInteger, Accuracy) {
12 | AccuracyLow = 0,
13 | AccuracyHigh,
14 | };
15 | @interface UIImage (BetterFace)
16 |
17 | - (UIImage *)betterFaceImageForSize:(CGSize)size
18 | accuracy:(Accuracy)accurary;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImage+Capture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Capture.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Capture)
12 |
13 | /**
14 | 截取View生成图片
15 |
16 | @param view 视图
17 | @return 生成的图片
18 | */
19 | + (UIImage *)captureWithView:(UIView *)view ;
20 |
21 | /// 对图片进行缩放
22 | + (UIImage *)imageWithSize:(CGRect)myImageRect FromImage:(UIImage *)bigImage;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImage+FileName.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+FileName.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (FileName)
12 |
13 | /// 根据main bundle中的文件名读取图片
14 | + (UIImage *)imageWithFileName:(NSString *)name;
15 |
16 | /// 根据指定bundle中的文件名读取图片
17 | + (UIImage *)imageWithFileName:(NSString *)name inBundle:(NSBundle*)bundle;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImage+Merge.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Merge.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Merge)
12 |
13 | /**
14 | Merge Image
15 |
16 | @param firstImage 第一张图片
17 | @param secondImage 第二章图片
18 | @return Image
19 | */
20 | + (UIImage*)mergeImage:(UIImage*)firstImage withImage:(UIImage*)secondImage ;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImage+Video.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Video.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/14.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImage (Video)
12 |
13 | /// 获取视频的截图信息
14 | + (UIImage *)imageWithVideo:(NSString *)stringURL;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImageView+GeometryConversion.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+GeometryConversion.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (GeometryConversion)
12 |
13 | - (CGPoint)convertPointFromImage:(CGPoint)imagePoint;
14 | - (CGRect)convertRectFromImage:(CGRect)imageRect;
15 |
16 | - (CGPoint)convertPointFromView:(CGPoint)viewPoint;
17 | - (CGRect)convertRectFromView:(CGRect)viewRect;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIImageView+Reflect.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+Reflect.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIImageView (Reflect)
12 |
13 | /// 倒影
14 | - (void)reflect;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UILabel+ContenSize.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+ContenSize.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UILabel (ContenSize)
12 |
13 |
14 | /**
15 | Content的Size
16 |
17 | @param width 限制宽度
18 | @return Size
19 | */
20 | - (CGSize)contentSizeForWidth:(CGFloat)width;
21 |
22 |
23 | /**
24 | Content Size
25 |
26 | @return Size
27 | */
28 | - (CGSize)contentSize;
29 |
30 |
31 | /**
32 | 是否被截断
33 |
34 | @return 是否被截断
35 | */
36 | - (BOOL)isTruncated;
37 |
38 | @end
39 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UILabel+Space.h:
--------------------------------------------------------------------------------
1 | //
2 | // UILabel+Space.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UILabel (Space)
12 |
13 | /// 设置字间距
14 | - (void)setColumnSpace:(CGFloat)columnSpace;
15 |
16 | /// 设置行距
17 | - (void)setRowSpace:(CGFloat)rowSpace;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UINavigationBar+Appear.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+Appear.h
3 | // Category
4 | //
5 | // Created by Silence on 07/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (Appear)
12 |
13 | /// 隐藏阴影
14 | - (void)hideBottomShadow;
15 | /// 显示阴影
16 | - (void)showBottomShadow;
17 |
18 | /// 导航栏透明
19 | - (void)makeTransparent;
20 | /// 默认导航栏
21 | - (void)makeDefault;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UINavigationBar+Awesome.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationBar+Awesome.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationBar (Awesome)
12 |
13 | - (void)setBackgroundColor:(UIColor *)backgroundColor;
14 | - (void)setElementsAlpha:(CGFloat)alpha;
15 | - (void)setTranslationY:(CGFloat)translationY;
16 | - (void)reset;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UINavigationController+Hide.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationController+Hide.h
3 | // HIdeDemo
4 | //
5 | // Created by Silence on 17/01/2017.
6 | // Copyright © 2017 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationController (Hide)
12 |
13 | @property (nonatomic,getter=isNavBarHidden,readonly) BOOL navBarHidden ; /// 导航栏是否隐藏
14 |
15 |
16 | /**
17 | 设置NavBar隐藏
18 |
19 | @param hidden Hidden
20 | @param animated 是否有动画
21 | @param completion 完成回调
22 | */
23 | - (void)setNavBarHidden:(BOOL)hidden
24 | animated:(BOOL)animated
25 | completion:(void (^)(BOOL finished))completion;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UINavigationItem+Lock.h:
--------------------------------------------------------------------------------
1 | //
2 | // UINavigationItem+Lock.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UINavigationItem (Lock)
12 |
13 | /**
14 | * @brief 锁定RightItem
15 | *
16 | * @param lock 是否锁定
17 | */
18 | - (void)lockRightItem:(BOOL)lock;
19 | /**
20 | * @brief 锁定LeftItem
21 | *
22 | * @param lock 是否锁定
23 | */
24 | - (void)lockLeftItem:(BOOL)lock;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIResponder+Chain.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+Chain.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. 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 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIResponder+FirstResponder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIResponder+FirstResponder.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIResponder (FirstResponder)
12 |
13 | /**
14 | * @brief 当前第一响应者
15 | *
16 | * @return 当前第一响应者
17 | */
18 | + (id)currentFirstResponder;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIScrollView+Amplification.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+Amplification.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (Amplification)
12 |
13 | @property (nonatomic, strong) UIView *bigView;
14 | @property (nonatomic, strong) UIView *headerView;
15 | -(void)setBigView:(UIView *)bigView withHeaderView:(UIView *)headerView;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIScrollView+PageNumber.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+PageNumber.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (PageNumber)
12 |
13 | -(NSInteger)totalPages;
14 |
15 | -(void)setPageNumber:(NSInteger)pageNumber animated:(BOOL)animated;
16 | -(void)setPageNumber:(NSInteger)pageNumber;
17 | -(NSInteger)pageNumber;
18 |
19 | -(BOOL)isLastPage;
20 | -(BOOL)isFirstPage;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIScrollView+SimpleScroll.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+SimpleScroll.h
3 | // Category
4 | //
5 | // Created by Silence on 04/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (SimpleScroll)
12 |
13 | - (void)scrollToTop;
14 | - (void)scrollToBottom;
15 | - (void)scrollToLeft;
16 | - (void)scrollToRight;
17 |
18 | - (void)scrollToTopAnimated:(BOOL)animated;
19 | - (void)scrollToBottomAnimated:(BOOL)animated;
20 | - (void)scrollToLeftAnimated:(BOOL)animated;
21 | - (void)scrollToRightAnimated:(BOOL)animated;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UISlider+Tap.h:
--------------------------------------------------------------------------------
1 | //
2 | // UISlider+Tap.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/12.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UISlider (Tap)
12 |
13 | /// 单击手势,会自动到对应比例
14 | - (void)addTapGestureWithTarget: (id)target action: (SEL)action;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITabBarController+Hide.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITabBarController+Hide.h
3 | // HIdeDemo
4 | //
5 | // Created by Silence on 17/01/2017.
6 | // Copyright © 2017 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITabBarController (Hide)
12 |
13 | @property (nonatomic,getter=isTabBarHidden,readonly) BOOL tabBarHidden ;
14 |
15 |
16 | /**
17 | 设置Tabbar隐藏
18 |
19 | @param hidden 是否隐藏
20 | @param animated 是否有动画
21 | @param completion 返回回调
22 | */
23 | - (void)setTabBarHidden:(BOOL)hidden
24 | animated:(BOOL)animated
25 | completion:(void (^)(BOOL finished))completion;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITableView+Placeholder.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+Placeholder.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/20.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^PlaceholderClickBlock)(UIView *view);
12 |
13 | @interface UITableView (Placeholder)
14 |
15 | @property (nonatomic, assign) BOOL showPlaceholder;
16 |
17 | @property (nonatomic, copy) PlaceholderClickBlock placeholderClickBlock;
18 | @property (nonatomic, copy) NSString *placeholderText;
19 | @property (nonatomic, copy) UIImage *placeholderImage;
20 | @property (nonatomic, copy) UIView *placeholderCustomView;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITableView+iOS7Style.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+iOS7Style.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/21.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableView (iOS7Style)
12 |
13 | /**
14 | * @brief ios7设置页面的UITableViewCell样式
15 | *
16 | * @param cell cell
17 | * @param indexPath indexPath
18 | */
19 | -(void)applyiOS7SettingsStyleGrouping:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITableViewCell+NIB.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableViewCell+NIB.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableViewCell (NIB)
12 |
13 | /// 加载同类名的nib
14 | + (UINib*)nib;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITextField+InputLimit.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+InputLimit.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (InputLimit)
12 |
13 | @property (assign, nonatomic) NSInteger maxLength ; // <= 0无限制
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITextField+Select.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextField+Select.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextField (Select)
12 |
13 | /**
14 | * 当前选中的字符串范围
15 | *
16 | * @return NSRange
17 | */
18 | - (NSRange)selectedRange;
19 | /**
20 | * 选中所有文字
21 | */
22 | - (void)selectAllText;
23 | /**
24 | * 选中指定范围的文字
25 | *
26 | * @param range NSRange范围
27 | */
28 | - (void)setSelectedRange:(NSRange)range;
29 |
30 | @end
31 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITextView+InputLimit.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+InputLimit.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextView (InputLimit)
12 |
13 | @property (assign, nonatomic) NSInteger maxLength;//if <=0, no limit
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UITextView+Select.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITextView+Select.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITextView (Select)
12 |
13 | /// 当前选中的字符串范围
14 | - (NSRange)selectedRange;
15 |
16 | /// 选中所有文字
17 | - (void)selectAllText;
18 |
19 | /// 选中指定范围的文字
20 | - (void)setSelectedRange:(NSRange)range;
21 |
22 | /// 用于计算textview输入情况下的字符数,解决实现限制字符数时,计算不准的问题
23 | - (NSInteger)getInputLengthWithText:(NSString *)text;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+BlockGesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+BlockGesture.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^GestureActionBlock)(UIGestureRecognizer *gestureRecoginzer);
12 |
13 | @interface UIView (BlockGesture)
14 |
15 | /// 添加点击手势
16 | - (void)addTapActionWithBlock:(GestureActionBlock)block;
17 | /// 添加长按手势
18 | - (void)addLongPressActionWithBlock:(GestureActionBlock)block;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+Find.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Find.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Find)
12 |
13 | /// 找到指定类名的第一个subView
14 | - (UIView *)findSubViewWithClass:(Class)clazz;
15 |
16 | /// 找到指定类名的所有subview
17 | - (NSArray *)findAllSubViewsWithClass:(Class)clazz;
18 |
19 | /// 找到当前view所在的viewcontroler
20 | - (UIViewController *)viewController;
21 |
22 | /// 所有的子控件,包括子控件的子控件
23 | - (NSArray *)allSubviews;
24 |
25 | /// 移除所有的子控件
26 | - (void)removeAllSubviews;
27 |
28 | /// 找到view上的第一响应者
29 | - (UIView *)findFirstResponder;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+Radius.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+IBnspectable.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /** View的XIB可视化扩展类> */
12 | @interface UIView (Radius)
13 |
14 | /// 给UIView 设置圆角
15 | @property (assign,nonatomic) NSInteger cornerRadius;
16 | @property (assign,nonatomic) BOOL masksToBounds;
17 |
18 |
19 | ///设置 view的 边框颜色(选择器和Hex颜色)以及 边框的宽度
20 | @property (assign,nonatomic) NSInteger borderWidth;
21 | @property (strong,nonatomic) UIColor *borderColor;
22 |
23 | - (void)setLayerShadow:(UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius;
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+Recursion.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Recursion.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^SubviewBlock) (UIView* view);
12 | typedef void (^SuperviewBlock) (UIView* superview);
13 | @interface UIView (Recursion)
14 |
15 | - (UIView*)findViewRecursively:(BOOL(^)(UIView* subview, BOOL* stop))recurse;
16 |
17 |
18 | -(void)runBlockOnAllSubviews:(SubviewBlock)block;
19 | -(void)runBlockOnAllSuperviews:(SuperviewBlock)block;
20 | -(void)enableAllControlsInViewHierarchy;
21 | -(void)disableAllControlsInViewHierarchy;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+Screenshot.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Screenshot.h
3 | // Category
4 | //
5 | // Created by Silence on 02/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Screenshot)
12 |
13 | /// 截取当前View
14 | - (nullable UIImage *)snapshotImage;
15 |
16 | - (nullable UIImage *)snapshotImageAfterScreenUpdates:(BOOL)afterUpdates;
17 | /// 截取当前View为PDF
18 | - (nullable NSData *)snapshotPDF;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+SubtractMask.h:
--------------------------------------------------------------------------------
1 | //
2 | // SubtractMask.h
3 | // Category
4 | //
5 | // Created by Silence on 2018/11/20.
6 | // Copyright © 2018年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (SubtractMask)
14 |
15 | /**
16 | 设置镂空遮罩视图,该方法本质上是设置maskView
17 | 如果寄宿图的内容有更新,需要手动再调用setter方法
18 |
19 | @param view 遮罩视图
20 | */
21 | - (void)setSubtractMaskView:(UIView *)view;
22 |
23 | /**
24 | 获取镂空遮罩视图,用于动态修改遮罩的一些属性
25 |
26 | @return 遮罩视图
27 | */
28 | - (UIView *)subtractMaskView;
29 |
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewController.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/13.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (ViewController)
12 |
13 | /// 所在的ViewController
14 | - (UIViewController *)viewController ;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIView+ViewPath.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+ViewPath.h
3 | // ViewPathDemo
4 | //
5 | // Created by Silence on 2019/4/8.
6 | // Copyright © 2019年 Silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface UIView (ViewPath)
14 |
15 | @property (nonatomic, readonly) NSString *viewPath;
16 |
17 | @property (nonatomic ,readonly) NSString *viewID;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIViewController+BackAction.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+BackAction.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/29.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void (^SIBackAction)(UINavigationController *vc);
12 |
13 | @interface UIViewController (BackAction)
14 |
15 | -(void)backButtonTouched:(SIBackAction)backButtonHandler;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIViewController+RecursiveDescription.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+RecursiveDescription.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (RecursiveDescription)
12 |
13 | /**
14 | * @brief 视图层级
15 | *
16 | * @return 视图层级字符串
17 | */
18 | -(NSString*)recursiveDescription;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIViewController+Segues.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Segues.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/22.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^UIViewControllerSeguesPrepareCallback)(UIViewController* target);
12 |
13 | @interface UIViewController (Segues)
14 |
15 | - (void)performSegueWithIdentifier:(NSString *)identifier prepareCallback:(UIViewControllerSeguesPrepareCallback)callback;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIViewController+Visible.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIViewController+Visible.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIViewController (Visible)
12 |
13 | - (BOOL)isVisible;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIWebView+MetaParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+MetaParser.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWebView (MetaParser)
12 |
13 | ///获取网页meta信息
14 | -(NSArray *)getMetaData;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIWebView+SwipeGesture.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWebView+SwipeGesture.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/28.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIWebView (SwipeGesture)
12 |
13 | - (void)useSwipeGesture ;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/Headers/UIWindow+Hierarchy.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIWindow+Hierarchy.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. 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 |
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/A/SICategory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/silence0201/iOS-Category/b8f3c5408c4438aecd6a919d82c0a377144b62c8/FrameWork/SICategory.framework/Versions/A/SICategory
--------------------------------------------------------------------------------
/FrameWork/SICategory.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/Library/include/CALayer+Frame.h:
--------------------------------------------------------------------------------
1 | //
2 | // CALayer+Frame.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface CALayer (Frame)
12 |
13 | @property CGFloat top;
14 | @property CGFloat bottom;
15 | @property CGFloat left;
16 | @property CGFloat right;
17 |
18 | @property CGFloat centerX;
19 | @property CGFloat centerY;
20 |
21 | @property CGFloat height;
22 | @property CGFloat width;
23 |
24 | @property CGPoint center;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Library/include/CAShapeLayer+UIBezierPath.h:
--------------------------------------------------------------------------------
1 | //
2 | // CAShapeLayer+UIBezierPath.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/4/24.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | @interface CAShapeLayer (UIBezierPath)
13 |
14 | /**Update CAShapeLayer with UIBezierPath.*/
15 | - (void)updateWithBezierPath:(UIBezierPath *)path;
16 |
17 | /**Get UIBezierPath object, constructed from CAShapeLayer.*/
18 | - (UIBezierPath *)bezierPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Library/include/EXTObjc.h:
--------------------------------------------------------------------------------
1 | //
2 | // extobjc.h
3 | // extobjc
4 | //
5 | // Created by Justin Spahr-Summers on 2010-11-09.
6 | // Copyright (C) 2012 Justin Spahr-Summers.
7 | // Released under the MIT license.
8 | //
9 |
10 | #import "EXTADT.h"
11 | #import "EXTConcreteProtocol.h"
12 | #import "EXTKeyPathCoding.h"
13 | #import "EXTNil.h"
14 | #import "EXTSafeCategory.h"
15 | #import "EXTScope.h"
16 | #import "EXTSelectorChecking.h"
17 | #import "EXTSynthesize.h"
18 | #import "NSInvocation+EXT.h"
19 | #import "NSMethodSignature+EXT.h"
20 |
21 |
--------------------------------------------------------------------------------
/Library/include/NSArray+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (Contains)
12 |
13 |
14 | /**
15 | 是否包含所有数组中元素
16 |
17 | @param array 要寻找的Array
18 | @return 是否包含
19 | */
20 | -(BOOL)containsAll:(NSArray *)array;
21 |
22 |
23 | /**
24 | 是否包含其中任意一个元素
25 |
26 | @param array 要寻找的Array
27 | @return 是否包含
28 | */
29 | -(BOOL)containsAny:(NSArray *)array;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Library/include/NSArray+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSArray+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSArray (JSONEncode)
12 |
13 | /**
14 | 转换为JSON
15 |
16 | @return JSON Sting
17 | */
18 | - (NSString *)jsonStringEncoded;
19 |
20 | /**
21 | 返回格式化后JSON
22 |
23 | @return 格式化后的JSON String
24 | */
25 | - (NSString *)jsonPrettyStringEncoded;
26 |
27 | @end
28 |
--------------------------------------------------------------------------------
/Library/include/NSData+APNSToken.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+APNSToken.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (APNSToken)
12 |
13 | /**
14 | * 将APNS NSData类型token 格式化成字符串
15 | *
16 | * @return 整理过后的字符串token
17 | */
18 | - (NSString *)APNSToken;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Library/include/NSData+Cache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Cache.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Cache)
12 |
13 | /**
14 | 根据key保存到磁盘里缓存起来
15 |
16 | @param key Key
17 | */
18 | - (void)saveDataCacheWithKey:(NSString *)key;
19 |
20 |
21 | /**
22 | 根据key取出缓存data
23 |
24 | @param key Key
25 | @return 对象数据
26 | */
27 | + (NSData *)getDataCacheWithKey:(NSString *)key;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Library/include/NSData+DataCache.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+DataCache.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (DataCache)
12 |
13 | /**
14 | * 将URL作为key保存到磁盘里缓存起来
15 | *
16 | * @param identifier url.absoluteString
17 | */
18 | - (void)saveDataCacheWithIdentifier:(NSString *)identifier;
19 |
20 | /**
21 | * 取出缓存data
22 | *
23 | * @param identifier url.absoluteString
24 | *
25 | * @return 缓存
26 | */
27 | + (NSData *)getDataCacheWithIdentifier:(NSString *)identifier;
28 |
29 | @end
30 |
--------------------------------------------------------------------------------
/Library/include/NSData+Encrypt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSData+Encrypt.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSData (Encrypt)
12 |
13 | /**利用AES加密数据*/
14 | - (NSData *)encryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
15 | /**利用AES解密数据*/
16 | - (NSData *)decryptedWithAESUsingKey:(NSString*)key andIV:(NSData*)iv;
17 |
18 | /**利用3DES加密数据*/
19 | - (NSData *)encryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
20 | /**利用3DES解密数据*/
21 | - (NSData *)decryptedWith3DESUsingKey:(NSString*)key andIV:(NSData*)iv;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Library/include/NSDate+Cupertino.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDate+Cupertino.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDate (Cupertino)
12 |
13 | - (NSDate *)beginningOfDay;
14 | - (NSDate *)endOfDay;
15 |
16 | - (NSDate *)beginningOfWeek;
17 | - (NSDate *)endOfWeek;
18 |
19 | - (NSDate *)beginningOfMonth;
20 | - (NSDate *)endOfMonth;
21 |
22 |
23 | - (NSDate *)beginningOfYear;
24 | - (NSDate *)endOfYear;
25 |
26 | @end
27 |
--------------------------------------------------------------------------------
/Library/include/NSDictionary+JSONEncode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+JSONEncode.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (JSONEncode)
12 |
13 | /**
14 | JSON String Encoded
15 |
16 | @return JSON String
17 | */
18 | - (nullable NSString *)jsonStringEncoded;
19 |
20 |
21 | /**
22 | JSON PrettyString Encoded
23 |
24 | @return JSON Pretty String
25 | */
26 | - (nullable NSString *)jsonPrettyStringEncoded;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Library/include/NSDictionary+Merge.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Merge.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (Merge)
12 |
13 | /** 合并两个NSDictionary */
14 | + (NSDictionary *)dictionaryByMerging:(NSDictionary *)dict1 with:(NSDictionary *)dict2;
15 |
16 | /** 并入一个NSDictionary */
17 | - (NSDictionary *)dictionaryByMergingWith:(NSDictionary *)dict;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Library/include/NSDictionary+Plist.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+Plist.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | @interface NSDictionary (Plist)
13 |
14 | /// 根据Plist数据初始化字典
15 | + (instancetype)dictionaryWithPlistData:(NSData *)plist;
16 | /// 根绝Plist String初始化字典
17 | + (instancetype)dictionaryWithPlistString:(NSString *)plist;
18 |
19 | /// Plist 数据信息
20 | - (NSData *)plistData;
21 | /// Plist String
22 | - (NSString *)plistString;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Library/include/NSDictionary+URL.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSDictionary+URL.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSDictionary (URL)
12 |
13 | /// 将url参数转换成NSDictionary
14 | + (NSDictionary *)dictionaryWithURLQuery:(NSString *)query;
15 | /// 将NSDictionary转换成url参数字符串
16 | - (NSString *)URLQueryString;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Library/include/NSFileHandle+ReadLine.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSFileHandle+ReadLine.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSFileHandle (ReadLine)
12 |
13 | /**
14 | * @brief A Cocoa / Objective-C NSFileHandle category that adds the ability to read a file line by line.
15 |
16 | *
17 | * @param theDelimier 分隔符
18 | *
19 | * @return An NSData* object is returned with the line if found, or nil if no more lines were found
20 | */
21 | - (NSData *)readLineWithDelimiter:(NSString *)theDelimier;
22 |
23 | @end
24 |
--------------------------------------------------------------------------------
/Library/include/NSIndexPath+Offset.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSIndexPath+Offset.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSIndexPath (Offset)
12 |
13 | /// previous row indexpath
14 | - (NSIndexPath *)previousRow;
15 |
16 | /// next row indexpath
17 | - (NSIndexPath *)nextRow;
18 |
19 | /// previous item indexpath
20 | - (NSIndexPath *)previousItem;
21 |
22 | /// next item indexpath
23 | - (NSIndexPath *)nextItem;
24 |
25 | /// next section indexpath
26 | - (NSIndexPath *)nextSection;
27 |
28 | /// previous section indexpath
29 | - (NSIndexPath *)previousSection;
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/Library/include/NSNotificationCenter+AutoRemove.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotificationCenter+AutoRemove.h
3 | // Category
4 | //
5 | // Created by Silence on 01/01/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNotificationCenter (AutoRemove)
12 |
13 | /// 设置是否自动移除监听
14 | + (void)setNotificationAutoRemoveEnable:(BOOL)enable;
15 | /// 获取自动移除监听是否开启
16 | + (BOOL)notificationAutoRemoveEnable;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/Library/include/NSNumber+Display.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Display.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Display)
12 |
13 | /// 显示指定精读
14 | - (NSString *)displayNumberWithDigit:(NSInteger)digit;
15 |
16 | /// 显示百分比
17 | - (NSString *)displayPercentageWithDigit:(NSInteger)digit;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Library/include/NSNumber+Roman.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Roman.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Roman)
12 |
13 | /** 返回自己对应的罗马数字 */
14 | - (NSString *)romanNumeral;
15 |
16 | @end
17 |
--------------------------------------------------------------------------------
/Library/include/NSNumber+Round.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNumber+Round.h
3 | // Category
4 | //
5 | // Created by Silence on 31/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSNumber (Round)
12 |
13 | /**
14 | * @brief 四舍五入
15 | * @param digit 限制最大位数
16 | * @return 结果
17 | */
18 | - (NSNumber*)roundWithDigit:(NSUInteger)digit;
19 |
20 | /**
21 | * @brief 取上整
22 | * @param digit 限制最大位数
23 | * @return 结果
24 | */
25 | - (NSNumber*)ceilWithDigit:(NSUInteger)digit;
26 |
27 | /**
28 | * @brief 取下整
29 | * @param digit 限制最大位数
30 | * @return 结果
31 | */
32 | - (NSNumber*)floorWithDigit:(NSUInteger)digit;
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/Library/include/NSObject+Block.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Block.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Block)
12 |
13 | + (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
14 | + (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
15 | - (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
16 | - (id)performBlock:(void (^)(id arg))block withObject:(id)anObject afterDelay:(NSTimeInterval)delay;
17 |
18 | + (void)cancelBlock:(id)block;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Library/include/NSObject+Dealloc.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Dealloc.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/5/25.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | typedef void(^DeallocBlock)(void);
12 |
13 | @interface NSObject (Dealloc)
14 |
15 | - (void)executeAtDealloc:(DeallocBlock)block;
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Library/include/NSObject+Parse.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+Parse.h
3 | // Category
4 | //
5 | // Created by Silence on 19/02/2017.
6 | // Copyright © 2017 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (Parse)
12 |
13 | /// 转换为String
14 | - (NSString *)toString;
15 |
16 | /// 转换为Number
17 | - (NSNumber *)toNumber;
18 |
19 | /// 转化为Dictionary
20 | - (NSDictionary *)toDictionary;
21 |
22 | /// 转换为Array
23 | - (NSArray *)toArray;
24 |
25 | /// 转换为Array
26 | - (NSArray *)toArrayOf:(Class)itemClass;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Library/include/NSObject+PerformSelector.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+PerformSelector.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/8/23.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (PerformSelector)
12 |
13 | - (id)performSelector:(SEL)aSelector withObjects:(NSArray *)objects;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/Library/include/NSObject+QuickCode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCode.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCode)
12 |
13 | /** 快速归档 */
14 | - (id)quickCoderWith:(NSCoder *)aDecoder ;
15 |
16 | /** 快速解档 */
17 | - (void)quickEncodeWithCoder:(NSCoder *)aCoder ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Library/include/NSObject+QuickCopy.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QuickCopy.h
3 | // Category
4 | //
5 | // Created by Silence on 30/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSObject (QuickCopy)
12 |
13 | /** 快速浅复制目标的所有属性 */
14 | - (BOOL)quickCopy:(NSObject *)instance ;
15 |
16 | /** 快速深复制目标的所有属性 */
17 | - (BOOL)quickDeepCopy:(NSObject *)instance ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Library/include/NSString+AES.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+AES.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/11/15.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (AES)
12 |
13 | /// 加密方法
14 | - (NSString *)encryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
15 |
16 | /// 解密方法
17 | - (NSString*)decryptWithAESwithKey:(NSString *)key ivParameter:(NSString *)ivParameter;
18 |
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Library/include/NSString+Append.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Append.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/12/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Append)
12 |
13 | - (NSString *)appendHomePath;
14 | - (NSString *)appendDocumentPath;
15 | - (NSString *)appendCachePath;
16 | - (NSString *)appendMainBundlePath;
17 | - (NSString *)appendTempPath;
18 | - (NSString *)appendPreferencesPath;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/Library/include/NSString+Contains.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+Contains.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (Contains)
12 |
13 | /**是否包含中文*/
14 | - (BOOL)isContainChinese;
15 |
16 | /**是否包含空格*/
17 | - (BOOL)isContainBlank;
18 |
19 | /**是否包含set*/
20 | - (BOOL)containsCharacterSet:(NSCharacterSet *)set;
21 |
22 | /**是否包含String*/
23 | - (BOOL)containsString:(NSString *)string;
24 |
25 | /**字符数量*/
26 | - (int)wordsCount;
27 |
28 | @end
29 |
--------------------------------------------------------------------------------
/Library/include/NSString+JSONValue.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+JSONValue.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (JSONValue)
12 |
13 | /// JSON String 转换为字典
14 | - (NSDictionary *)JSONDictionaryValue ;
15 |
16 | /// JSON String 转换为数组
17 | - (NSArray *)JSONArrayValue ;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/Library/include/NSString+MIME.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+MIME.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface NSString (MIME)
12 |
13 |
14 | /**
15 | 文件名的MIME
16 |
17 | @return MIME
18 | */
19 | - (NSString *)MIMEType;
20 |
21 | /**
22 | 根绝后辍名获取MIME Type
23 |
24 | @param extension 后辍名
25 | @return MIME
26 | */
27 | + (NSString *)MIMETypeForExtension:(NSString *)extension;
28 |
29 | /**
30 | MIMEDict信息
31 |
32 | @return MIMEDict字典
33 | */
34 | + (NSDictionary *)MIMEDict;
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/Library/include/NSString+QRcode.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+QRcode.h
3 | // Category
4 | //
5 | // Created by Silence on 29/12/2016.
6 | // Copyright © 2016 silence. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @class UIImage;
12 | @interface NSString (QRcode)
13 |
14 | /**
15 | String的二维码信息
16 |
17 | @return String的二维码图片
18 | */
19 | - (UIImage *)QRcode ;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/Library/include/NSString+XML.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+XML.h
3 | // Category
4 | //
5 | // Created by Silence on 2017/3/18.
6 | // Copyright © 2017年 silence. All rights reserved.
7 | //
8 |
9 | #import