CoreSupportLib
示例
要运行示例项目,首先克隆仓库,然后在 Example 目录下运行 pod install
要求
安装
CoreSupportLib 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 即可
pod 'CoreSupportLib'
作者
acct=0xE7A9BAE781B5E699BAE883BD, [email protected]
通过MIT许可提供CoreSupportLib。有关更多信息,请参阅LICENSE文件。
CoreSupportLib在MIT许可下可用。请参阅LICENSE文件以获取更多信息。
说明
-
-.推荐使用
- NSString+TXKit
- UITextView+TXKit UITextField+TXKit
- UIButton+TXKit
- UIImageView+TXKit
- UIImage+TXKit
- UIView+TXKit
- UIColor+TXKit
- UIViewController+Cloudox 设置导航栏背景透明度
-.其他
CoreSupportLib/CoreRouter
#import "TXRouter.h"
protocol KitPassValueDelegate <NSObject>
/**
* @Description 模块返回传值
* @param kitName 模块名字
* @param objc 返回值
*/
- (void)passFrom:(NSString *)kitName value:(id)objc;
@end
/*参数*/
FOUNDATION_EXPORT NSString * const viewControllerKey;
/** 路由 */
@interface TXRouter : NSObject
@property (nonatomic,copy)id<KitPassValueDelegate> delegate;
/** 路由管理器 */
+ (TXRouter *)router;
/**
* 创建对象
* @param className 类名字
*/
+ (id)createObjectWithClassName:(NSString *)className;
/**
* 创建对象
* @param className 类名字
* @param parameters 传递的参数
* 注意:必须实现"initWithParameters:(NSDictionary*)parameters"该方法
*/
+ (id)createObjectWithClassName:(NSString *)className parameters:(NSDictionary*)parameters;
/**
* 打开视图控制器
* @param vCName VC类名字
* @param parameters 传递的参数
* @param completionHandler 完成处理
* 注意:必须实现"initWithParameters:(NSDictionary*)parameters"该方法
*/
+ (void)openVC:(NSString*)vCName parameters:(NSDictionary*)parameters completionHandler:(void (^) (void))completionHandler;
/**
* 打开视图控制器
* @param vCName VC类名字
* @param parameters 传递的参数
* 注意:必须实现"initWithParameters:(NSDictionary*)parameters"该方法
*/
+ (void)openVC:(NSString*)vCName parameters:(NSDictionary*)parameters;
- (void)passFrom:(NSString *)kitName value:(id)objc;
CoreSupportLib/CoreBundle
#import "NSBundle+txSubBundle.h" #import "UIImage+txSubBundle.h"
NSBundle+txSubBundle
//服务于组件化的xib等资源的获取
+(instancetype)tx_subBundleWithBundleName:(NSString *)bundleName targetClass:(Class)targetClass;
UIImage+txSubBundle
//服务于组件化的图片等资源的获取
+ (instancetype)tx_imgWithName:(NSString *)name bundle:(NSString *)bundleName targetClass:(Class)targetClass;
CoreSupportLib/CoreCategory
#import "CoreCategoryConfig.h"
推荐
NSString+TXKit
/** 判断是否是有效的(非空/非空白)字符串 */
- (BOOL)tx_isValidString;
/** 判断是否包含指定字符串 */
- (BOOL)tx_containsString:(NSString *)string;
/* 修剪字符串(去掉头尾两边的空格和换行符)*/
- (NSString *)tx_stringByTrim;
/** md5加密(32位小写) */
- (nullable NSString *)tx_md5String;
/** md5加密(16位小写) */
- (nullable NSString *)tx_md5String16;
/**
* 获取文本的大小
*
* @param font 文本字体
* @param maxSize 文本区域的最大范围大小
* @param lineBreakMode 字符截断类型
*
* @return 文本大小
*/
- (CGSize)tx_getTextSize:(UIFont *)font maxSize:(CGSize)maxSize mode:(NSLineBreakMode)lineBreakMode;
/**
* 获取文本的宽度
* @param font 文本字体
* @param height 文本高度
* @return 文本宽度
*/
- (CGFloat)tx_getTextWidth:(UIFont *)font height:(CGFloat)height;
/**
* 获取文本的高度
* @param font 文本字体
* @param width 文本宽度
* @return 文本高度
*/
- (CGFloat)tx_getTextHeight:(UIFont *)font width:(CGFloat)width;
///==================================================
/// 正则表达式
///==================================================
/** 判断是否是有效的手机号 */
- (BOOL)tx_isValidPhoneNumber;
/** 判断是否是有效的用户密码 */
- (BOOL)tx_isValidPassword;
/** 判断是否是有效的用户名(20位的中文或英文)*/
- (BOOL)tx_isValidUserName;
/** 判断是否是有效的邮箱 */
- (BOOL)tx_isValidEmail;
/** 判断是否是有效的URL */
- (BOOL)isValidUrl;
/** 判断是否是有效的银行卡号 */
- (BOOL)tx_isValidBankNumber;
/** 判断是否是有效的身份证号 */
- (BOOL)tx_isValidIDCardNumber;
/** 判断是否是有效的IP地址 */
- (BOOL)tx_isValidIPAddress;
/** 判断是否是纯汉字 */
- (BOOL)tx_isValidChinese;
/** 判断是否是邮政编码 */
- (BOOL)tx_isValidPostalcode;
/** 判断是否是工商税号 */
- (BOOL)tx_isValidTaxNo;
/** 判断是否是车牌号 */
- (BOOL)tx_isCarNumber;
/** 通过身份证获取性别(1:男, 2:女) */
- (nullable NSNumber *)tx_getGenderFromIDCard;
/** 隐藏证件号指定位数字(如:360723********6341) */
- (nullable NSString *)tx_hideCharacters:(NSUInteger)location length:(NSUInteger)length;
UITextView+TXKit UITextField+TXKit
/*设置 UITextView 的最大输入长度*/
@property (nonatomic,assign)NSInteger inputLimit;
UIButton+TXKit
与UIButton+Layout比较推荐用这个
/**
* 设置button的文字和图片的布局样式,及间距
*
* @param style 文字和图片的布局样式
* @param space 文字和图片的间距
*/
- (void)tx_layoutButtonWithEdgeInsetsStyle:(TXButtonEdgeInsetsStyle)style
imageTitleSpace:(CGFloat)space;
UIImageView+TXKit
/** 通过 Graphics 和 BezierPath 设置圆角(推荐用这个)*/
- (void)tx_setGraphicsCornerRadius:(CGFloat)radius;
UIImage+TXKit
/** 显示原图(避免被系统渲染成蓝色) */
+ (nullable UIImage *)tx_originalImage:(NSString *)imageName;
/** 用颜色返回一张图片 */
+ (nullable UIImage *)tx_imageWithColor:(UIColor *)color;
/** 用颜色返回一张图片(指定图片大小) */
+ (nullable UIImage *)tx_imageWithColor:(UIColor *)color size:(CGSize)size;
/** 为UIImage添加滤镜效果 */
- (nullable UIImage *)tx_addFilter:(NSString *)filter;
/** 设置图片的透明度 */
- (nullable UIImage *)tx_alpha:(CGFloat)alpha;
/**
* 设置圆角图片
* @param radius 圆角半径
*/
- (nullable UIImage *)tx_imageByRoundCornerRadius:(CGFloat)radius;
/**
* 设置圆角图片
* @param radius 圆角半径
* @param borderWidth 边框宽度
* @param borderColor 边框颜色
*/
- (nullable UIImage *)tx_imageByRoundCornerRadius:(CGFloat)radius
borderWidth:(CGFloat)borderWidth
borderColor:(nullable UIColor *)borderColor;
UIView+TXKit
/** 返回视图的视图控制器(可能为nil) */
@property (nullable, nonatomic, readonly) UIViewController *viewController;
/**
* 设置视图view的部分圆角(绝对布局)
*
* @param corners 需要设置为圆角的角(枚举类型)
* @param radius 需要设置的圆角大小
*/
- (void)tx_setRoundedCorners:(UIRectCorner)corners
withRadius:(CGSize)radius;
/**
* 设置视图view的部分圆角(相对布局)
*
* @param corners 需要设置为圆角的角(枚举类型)
* @param radius 需要设置的圆角大小
* @param rect 需要设置的圆角view的rect
*/
- (void)tx_setRoundedCorners:(UIRectCorner)corners
withRadius:(CGSize)radius
viewRect:(CGRect)rect;
/**
* 设置视图view的阴影
*
* @param color 阴影颜色
* @param offset 阴影偏移量
* @param radius 阴影半径
*/
- (void)tx_setLayerShadow:(nullable UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius;
/** 删除所有子视图 */
- (void)tx_removeAllSubviews;
/** 创建屏幕快照 */
- (nullable UIImage *)tx_snapshotImage;
/** 创建屏幕快照pdf */
- (nullable NSData *)tx_snapshotPDF;
/** 当前视图控制器 */
- (UIViewController*)currentViewController;
UIColor+TXKit
/*
* 返回当前颜色的r值
*/
- (CGFloat)redValue;
/*
* 返回当前颜色的g值
*/
- (CGFloat)greenValue;
/*
* 返回当前颜色的b值
*/
- (CGFloat)blueValue;
/*
* 打印查看当前颜色的rgba值
*/
- (void)colorDetail;
/*
* 传入一个十六进制颜色字符串,转换为相应的颜色。(不带"#"号)
*/
+ (UIColor *)colorWithHexColorString:(NSString *)hexString;
/*
* 烟白色(F5F5F5)
* //黄绿色(9ACD32) 艾利斯兰(F0F8FF) 古董白(FAEBD7) 碧绿色(7FFFD4) 米色(F5F5DC) 紫罗兰色(8A2BE2)实木色(DEB887)
*/
+ (UIColor *)smokeWhiteColor;
// yellowGreenColor;aliceBlueColor;antiqueWhiteColor;aquaMarineColor;beigeColor;blueVioletColor;burlyWoodColor;
/*
* 随机创建一种颜色
*/
+ (UIColor *)randomColor;
/**
* 渐变颜色 关注
*/
+ (UIColor*)gradientFromColor:(UIColor*)fromColor toColor:(UIColor*)toColor withHeight:(CGFloat)height;
UIViewController+Cloudox
/*设置导航栏背景透明度*/
@property (copy, nonatomic) NSString * navigationAlpha;
其他:
UINavigationController+Cloudox
UINavigationController+Cloudox
/*设置导航栏背景透明度*/
- (void)setNeedsNavigationBackground:(CGFloat)alpha;
--------
UIButton+Layout
@property(nonatomic,assign)CGRect titleRect;
@property(nonatomic,assign)CGRect imageRect;
UIImageView+TXKit 1
/** 使用 CAShapeLayer 和 UIBezierPath 设置圆角 */
- (void)tx_setBezierPathCornerRadius:(CGFloat)radius;
UINavigationController+TXKit
/* 设置标题字体大小等
* @param titleSize 标题字体大小
* @param titleFontName 标题字体名称
* @param titleColor 标题颜色
* @param backgroundColor 背景颜色
* @param barStyle 状态栏类型
* 注意: 设置barStyle时要在Info.plist中添加"View controller-based status bar appearance"为YES。
*/
- (void)setTitleSize:(CGFloat)size
titleFontName:(NSString *)fontName
titleColor:(UIColor*)titleColor
backgroundColor:(UIColor*)backgroundColor
barStyle:(UIBarStyle)barStyle;
UITabBarController+TXKit
/* 设置TabBarItem
* @param tabbarItem tabbarItem
* @param title 标题
* @param titleSize 标题字体大小
* @param titleFontName 标题字体名称
* @param selectedImage 选中图标
* @param selectedTitleColor 选中字体颜色
* @param normalImage 未选中图标
* @param normalTitleColor 未选中字体颜色
*/
- (void)setTabBarItem:(UITabBarItem *)tabbarItem
title:(NSString *)title
titleSize:(CGFloat)size
titleFontName:(NSString *)fontName
selectedImage:(NSString *)selectedImage
selectedTitleColor:(UIColor *)selectColor
normalImage:(NSString *)unselectedImage
normalTitleColor:(UIColor *)unselectColor;
/*设置TabBar背景颜色*/
- (void)setTabBarBackgroundColor:(UIColor*)backgroundColor;
UIViewController+TXKit
/** 获取状态栏高度 */
- (CGFloat)statusBarHeight;
/** 获取导航栏+状态栏的高度 */
- (CGFloat)navigationBarHeight;
/** 获取TabBar高度 */
- (CGFloat)tabBarHeight;
CoreSupportLib/CoreMacros
#import "CoreMacrosConfig.h"
LogMacros
/*DEBUG打印日志*/
#if DEBUG
#define TXLog(s, ... ) NSLog( @"<FileName:%@ InThe:%dRow> Log:%@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define TXLog(s, ... )
#endif
SystemMacros
/** 当前版本系统版本(float) */
#define CURRENT_SYSTEM_VERSION_FLOAT ([[[UIDevice currentDevice] systemVersion] floatValue])
/** 当前版本系统版本(double) */
#define CURRENT_SYSTEM_VERSION_DOUBLE ([[[UIDevice currentDevice] systemVersion] doubleValue])
/** 当前版本系统版本 */
#define CURRENT_SYSTEM_VERSION ([[UIDevice currentDevice] systemVersion])
/** 当前App版本 */
#define CURRENT_APP_VERSION [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]
/** 当前App版本(build) */
#define CURRENT_APP_BUILD [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]
/** 当前App名称 */
#define CURRENT_APP_NAME [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]
/** 手机序列号 */
#define IDENTIFIER_NUMBER [[UIDevice currentDevice] uniqueIdentifier]
/** 手机别名 */
#define USER_PHONE_NAME [[UIDevice currentDevice] name]
/** 手机别名 */
#define PHONE_MODEL [[UIDevice currentDevice] model]
/** 当前语言 */
#define CURRENT_LANGUAGE ([[NSLocale preferredLanguages] objectAtIndex:0])
/** 当前屏幕宽 */
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
/** 当前屏幕高 */
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
/** 获取导航栏+状态栏的高度 */
#define NAVIGATIONBAR_STATUSBAR_HEIGHT self.navigationController.navigationBar.frame.size.height+[[UIApplication sharedApplication] statusBarFrame].size.height
/** TabBar高度 */
#define TABBAR_HEIGHT self.tabBarController.tabBar.frame.size.height
/** 状态栏高度 */
#define TX_STATUSBAR_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 44.0f : 20.0f)
/** 获取导航栏+状态栏的高度 */
#define TX_NAVIGATIONBAR_STATUSBAR_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 88.0f : 64.0f)
/** TabBar高度 */
#define TX_TABBAR_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 83.0f : 49.0f)
/** 顶部安全区域远离高度 */
#define TX_TOP_SAFE_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 44.0f : 0.0f)
/** 底部安全区域远离高度*/
#define TX_BOTTOM_SAFE_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 34.0f : 0.0f)
/*iPhoneX、XS、XSMax、XR的状态栏高度差值*/
#define TX_TOP_DIFFERENCE_HEIGHT (IPHONEX_XS || IPHONEXSMAX_XR ? 24.0f : 0.0f)
/** 是否是iPhone3GS_4_4S */
#define IPHONE3GS_4_4S (SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 480.0f ? YES : NO)
/** 是否是iPhone5_5C_5S_5SE */
#define IPHONE5_5C_5S_5SE (SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 568.0f ? YES : NO)
/** 是否是iPhone6_6S_7_8 */
#define IPHONE6_6S_7_8 (SCREEN_WIDTH== 375.0f && SCREEN_HEIGHT == 667.0f ? YES : NO)
/** 是否是iPhone6Plus_6SPlus_7Plus_8Plus */
#define IPHONE6PLUS_6SPLUS_7PLUS_8PLUS (SCREEN_WIDTH == 414.0f && SCREEN_HEIGHT == 736.0f ? YES: NO)
/** 是否是iPhoneX_XS */
#define IPHONEX_XS (SCREEN_WIDTH == 375.0f && SCREEN_HEIGHT == 812.0f ? YES : NO)
/** 是否是iPhoneXSMax_XR */
#define IPHONEXSMAX_XR (SCREEN_WIDTH == 414.0f && SCREEN_HEIGHT == 896.0f ? YES : NO)```