Some useful Objective-C ategories and Macro,that contain UIKit.framework、Foundation.framework、AVFoundation.framework、QuartzCore. framework、CoreTelephony.framework、WebKit.framework、MobileCoreServices.framework、Photos.framework、AssetsLibrary.framework、Accelerate.framework、ImageIO.framework、CoreText.framework、CoreGraphics.framework and so on,i wil…
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example
Pods/Pods.xcodeproj/xcuserdata/wenmobo.xcuserdatad/xcschemes
WBCategoryKit
.travis.yml
LICENSE
README.md
WBCategoryKit.podspec
_Pods.xcodeproj

README.md

WBCategoryKit

中文说明

Some useful Objective-C ategories and Macro,that contain UIKit.framework、Foundation.framework、AVFoundation.framework、QuartzCore. framework、CoreTelephony.framework、WebKit.framework、MobileCoreServices.framework、Photos.framework、AssetsLibrary.framework、Accelerate.framework、ImageIO.framework、CoreText.framework、CoreGraphics.framework and so on,i will continue to tidy up updates.

iOS 系统常用框架分类封装,开发常用宏定义,支持cocoapod集成,支持只集成子模块。持续更新中...

Requirements

  • iOS 8+
  • Xcode 8+

Installation

Cocoapods安装

  • 安装所有分类文件
pod 'WBCategoryKit'
  • 集成子组件
pod 'WBCategoryKit/UIKit'

或者

pod 'WBCategoryKit/UIKit/WKWebView'

手动集成

将需要的分类文件拖入工程即可。

Usage

Foundation

  • NSObject
//swizzle 类方法
+ (void)swizzleClassMethodWithOriginSel:(SEL)oriSel
                            swizzledSel:(SEL)swiSel
                              selfClass:(Class)selfClass;
//swizzle 实例方法 
+ (void)swizzleInstanceMethodWithOriginSel:(SEL)oriSel
                               swizzledSel:(SEL)swiSel
                                 selfClass:(Class)selfClass;
  • NSDate
//NSDateFormatter缓存 
- (NSDateFormatter *)wb_dateFormatterWithFormat:(NSString *)format;

//朋友圈时间格式

+ (NSString *)compareCurrentTimeWithTimeString:(NSString *)timeString;

Macro

//设置平方字体PingFangSC

#define kWB_PFR kWB_SYSTEM_VERSION_9_OR_LATER ? @"PingFangSC-Regular" : @"PingFang SC"
#define kWB_PFR_FONT(s) [UIFont fontWithName:kWB_PFR size:s]

//主线程安全执行

#ifndef dispatch_main_async_safe
#define dispatch_main_async_safe(block) dispatch_queue_async_safe(dispatch_get_main_queue(), block)
#endif

//同步锁

#define kWB_LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER);
#define kWB_UNLOCK(lock) dispatch_semaphore_signal(lock);

UIKit

  • WKWebView
//获取某个标签的结点个数
- (void)wb_nodeCountOfTag:(NSString *)tag
completedHandler:(void (^) (int tagCount))completedHandler;
//获取网页中的图片 
- (void)wb_getImages:(void (^) (NSArray *images))completedHandler;
//获取网页内容高度
- (void)wb_getScrollHeight:(void (^) (CGFloat scrollHeight))completedHandler;
//为所有图片添加点击事件
- (void)wb_addClickEventOnImg;
//根据id隐藏网页元素
- (void)wb_hiddenElementById:(NSString *)idString;
  • UIFont
//runtime字体适配
+ (UIFont *)_wb_systemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)_wb_boldSystemFontOfSize:(CGFloat)fontSize;
+ (UIFont *)_wb_fontWithName:(NSString *)fontName
                        size:(CGFloat)fontSize;

更多分类使用方法,请查看demo。

补充

本库主要是记录自己积累学习的一个过程,最初在github创建这个工程的时候,我就在自己的博客中写道将来有一天将本库制作成pod公有库,如今完成了本库的制作,虽然在制作过程中遇到了很多的问题,但还是很有成就感。如过在使用过程中,有任何建议或者问题,可以通过以下方式联系我,十分感谢。

author:wenbo
QQ:1050794513
email:1050794513@qq.com

喜欢就❤️下鼓励下吧。

更新

  • 2018-09-27(1.0.7):修改XR适配宏,删除按钮倒计时分类
  • 2018-09-05(1.0.2): 修改podspec文件,支持三级目录。

License

WBCategoryKit is available under the MIT license. See the LICENSE file for more info.