YPUIKit-ObjC 设计目的是为了快速搭建一个 iOS 项目,提高项目 UI 开发效率。
- 处理布局(YPKitDefines)
- 多样按钮(YPButton)
- 提示弹框(YPAlertView)
- 日志管理(YPLog)
- 弹框动画(YPPopupController)
- 多样输入框(YPTextView)
- 文件管理(YPFileBrowser)
- 常用分类(YPCategory)
需要使用 Cocoapods 将 YPUIKit-ObjC 集成到 Xcode 项目中去。在podfile文件中
pod 'YPUIKit-ObjC', '~> 1.1.0'
-
为了适配各iPhone屏幕尺寸,使用此类中定义宏,处理布局相关问题
// 是否是 ipad #define YP_IS_IPAD ([YPKitDefines instance].isIpad) // 导航栏宽高 #define YP_HEIGHT_NAV_STATUS ([YPKitDefines instance].statusBarSizeHeight) #define YP_HEIGHT_NAV_CONTENTVIEW ([YPKitDefines instance].navigationViewHeight) #define YP_HEIGHT_NAV_BAR (YP_HEIGHT_NAV_STATUS + YP_HEIGHT_NAV_CONTENTVIEW) // 屏幕宽高 #define YP_UI_SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width) #define YP_UI_SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height) // tab高度 #define YP_HEIGHT_IPHONEX_BOTTOM_MARGIN ([YPKitDefines instance].safeAreaInsets.bottom) #define YP_HEIGHT_TAB_BAR (YP_HEIGHT_IPHONEX_BOTTOM_MARGIN + 49) // 搜索search 高度 #define YP_HEIGHT_SEARCH_BAR 44
-
如果你觉得UIButton用起来麻烦,那就试试YPButton。
(左图片,右文字;左文字,右图片;上图片,下文字;上文字,下图片)
typedef enum : NSUInteger { YPButtonContentStyleHorizontal = 0, //左图标,右文本 YPButtonContentStyleVertical, //上图标,下文本 } YPButtonContentStyle; @interface YPButton : UIButton @property (nonatomic, assign) YPButtonContentStyle contentStyle; @property (nonatomic, assign) NSInteger interitemSpacing;//图标与文字之间的间距,默认是0px @property (nonatomic, assign) BOOL reverseContent;//是否逆转图标与文字的顺序,默认是NO:图标在左/上,文本在右/下 @property (nonatomic, assign) CGSize imageSize;//图片尺寸值,image.size,默认为(0,0),代表自动根据图片大小计算 @end
-
例子:弹出一个提示,"这是一个提示"
[YPAlertView alertText:@"这是一个提示"];
-
例子:如果你想缓存一些重要的调试日志
yplog_msg(@"---------------------信息消息-------------------------"); yplog_suc(@"---------------------成功消息-------------------------"); yplog_err(@"-------------------很重要的消息------------------------"); yplog_warn(@"--------------------警告消息-------------------------");
-
如果你想给UITextView设置占位符,又不想写很多代码。
@interface YPTextView : UITextView @property (nonatomic, assign) NSUInteger maxLength; @property (nonatomic, strong) NSString *placeholder; @property (nonatomic, strong) NSAttributedString *attributedPlaceholder; @end
-
项目中存在很多popup出来的试图。例如提示更新弹框、闪屏、选择器、交互弹框...等 可以继承 YPPopupController 来快速实现炫酷的弹框
typedef NS_ENUM(NSInteger, YPPopupControllerStyle){ YPPopupControllerStyleMiddle = 0, YPPopupControllerStyleBottom }; @interface YPPopupController : YPViewController @property (nonatomic, assign) BOOL isEnableTouchMove;//是否允许点击时退出 @property (nonatomic, readonly) YPPopupControllerStyle style; @property (nonatomic, readonly) UIView *contentView; + (instancetype)popupControllerWithStyle:(YPPopupControllerStyle)style; @end
-
例子:如果你需要一个轻量级非常适合开发者调试的文件浏览工具。
#import <YPFileBrowser/YPFileBrowser.h> - (void)showFileBrowserAction:(UIButton *)sender { // 创建YPFileBrowser对象 YPFileBrowser *fileBrowser = [[YPFileBrowser alloc] initWithPath:NSHomeDirectory()]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:fileBrowser]; nav.modalPresentationStyle = UIModalPresentationOverCurrentContext; [self presentViewController:nav animated:YES completion:nil]; }
支持QuickLook格式 后缀名字 文件 文档 txt、doc、xls、ppt、docx、xlsx、pptx 图像 jpg、png、pdf、tiff、swf 视频+音频 flv、rmvb、mp4、mvb、mp3、wma work文档 work 微软office work RTF格式 rtf PDF格式 pdf 文本文件 txt -
#ifndef YPCategoryHeader_h #define YPCategoryHeader_h // #import "NSData+YPExtension.h" // 用于 NSDate 对象与 NSString 对象之间相互转换;NSDate 与 NSDate之间的对比; #import "NSDate+YPExtension.h" // 用于 字符拼接;手机号、URL有效性正则判断;通过字符和字体获取宽度;md5生成; #import "NSString+YPExtension.h" // 用于 处理 NSTimer 循环引用的问题 #import "NSTimer+YPExtension.h" // 用于快速初始化; #import "UIButton+YPExtension.h" // 用于 UIColor与16进制相互转化;常见颜色; #import "UIColor+YPExtension.h" // 用于获取图片通道;仿射矩阵变换图片;二维码识别和生成;图片裁剪;UIColor <==> UIImage; 图片大小限制及压缩;Bundle 资源获取;图片尺寸相关;图片矫正;图片内存大小; #import "UIImage+YPExtension.h" // 用于快速初始化; #import "UILabel+YPExtension.h" // 用于头部顶部滚动处理;滚动到指定试图; #import "UIScrollView+YPExtension.h" // 用于刷新当前视图; #import "UITableViewCell+YPExtension.h" // 用于光标获取和设置;限制输入框最大长度; #import "UITextField+YPExtension.h" // 用于获取垂直或水平的最底部subview;获取当前subviews中class(UIView)类;生成试图截图;快速绘制圆角; #import "UIView+YPExtension.h" // 用于获取当前显示的控制器; #import "UIViewController+YPExtension.h" #endif /* YPCategoryHeader_h */
chenghengsheng, [email protected]
2023.07.27 1.2.0版本,主要优化一些组件,增加轮播图组件,增加单行多行输入框,增加图片选择器,图片持久化优化,UIImage 类扩展,增加 UINavigationBar 分类方便定制导航栏,增加选择器,时间选择器,增加内购功能,增加震动管理类,增加 YPKeychain 类,优化弹框 popup 试图,增加 NSObject 扩展;
2023.03.17 1.1.0版本,增加 YPLog 日志工具、增加 YPFileBrowser 文件预览工具;
2022.09.05 1.0.10版本,增加 YPTextView 用于UITextView增加占位符、限制最大输入长度;
2022.09.04 1.0.9版本,针对 YPPopupController 优化;feature: 针对popup优化,暴露contentView; 修改podspec s.module_name = 'YPUIKit';
2022.09.04 1.0.8版本,增加 YPPopupController 用于实现底部或中间弹出的弹框;
2022.08.06 1.0.7版本,处理头文件引用问题;
2022.08.06 1.0.6版本,添加一些常用分类(NSData、NSDate、NSTimer);
2022.08.05 1.0.5版本,移除一些无用依赖库;
2022.08.02 1.0.4版本,增加 YPAlertView 实现弹框提醒【不建议使用此版本】;
2022.07.14 1.0.3版本,新增 YPButton 处理图文布局【不建议使用此版本】;
2022.07.13 1.0.2版本,添加一些常用分类(UIViewController、UIView、UITextField、UITableViewCell、UIScrollView、UILabel、UIImage、UIColor、UIButton、NSString)【不建议使用此版本】;
2022.07.11 1.0.1版本,podspec 编写【不建议使用此版本】;
2022.07.11 1.0.0版本,新的版本从这里开始【不建议使用此版本】;