|
1 | 1 | # RKOTools
|
2 | 2 |
|
3 |
| -自己平时写的一个小工具库,上传到GitHub中且支持CocoaPods,方便自己使用。不断更新完善中。 |
| 3 | +自己平时写的一个小工具库,上传到**GitHub**中且支持`CocoaPods`,方便自己使用。不断更新完善中。 |
| 4 | + |
| 5 | +**注意:**`1.3.4`之前的版本集成了自己写的一些控件,从`1.3.4`版本开始,这些控件不再集成到`RKOTools`库中了,将会单独提供并支持`CocoaPods`。该页面则做目录之用,将会列出所有控件。 |
4 | 6 |
|
5 | 7 | <p align="center">
|
6 |
| -<a href=""><img src="https://img.shields.io/badge/pod-v1.3.3-brightgreen.svg"></a> |
| 8 | +<a href=""><img src="https://img.shields.io/badge/pod-v1.3.4-brightgreen.svg"></a> |
7 | 9 | <a href=""><img src="https://img.shields.io/badge/ObjectiveC-compatible-orange.svg"></a>
|
8 | 10 | <a href=""><img src="https://img.shields.io/badge/platform-iOS%208.0%2B-ff69b5152950834.svg"></a>
|
9 | 11 | <a href="https://github.com/rakuyoMo/RKOTools/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg?style=flat"></a>
|
10 | 12 | </p>
|
11 | 13 |
|
12 | 14 | ## 目录
|
13 | 15 |
|
14 |
| -1. [RKOControl](#rkocontrol) |
15 |
| - 1. [RKONetworkAlert](#rkonetworkalert) |
16 |
| - 2. [RKOCell](#rkocell) |
17 |
| - 3. [RKOTextView](#rkotextview) |
18 |
| - 4. [RKOTopAlert](#rkotopalert) |
19 |
| - 5. [~~RKOTabBar~~](#rkotabbar) |
20 |
| -2. [RKOTools](#rkotools-1) |
| 16 | + |
| 17 | +1. [RKOTools](#rkotools-1) |
21 | 18 | 1. [NetWorkTool](#networktool)
|
22 | 19 | 2. [CloseKeyBoard](#closekeyboard)
|
23 | 20 | 3. [CollecionLog](#collecionlog)
|
24 | 21 | 4. [TopViewController](#topviewcontroller)
|
25 | 22 | 5. [CALayer+Additions](#calayeradditions)
|
26 |
| - 6. [~~FastFrame~~](#fastframe) |
| 23 | + 6. [ImageWithColor](#imagewithcolor) |
| 24 | + 7. [~~FastFrame~~](#fastframe) |
| 25 | +2. [RKOControl](#rkocontrol) |
| 26 | + 1. [RKONetworkAlert](#rkonetworkalert) |
| 27 | + 2. [RKOCell](#rkocell) |
| 28 | + 3. [RKOTextView](#rkotextview) |
| 29 | + 4. [RKOTopAlert](#rkotopalert) |
| 30 | + 5. [~~RKOTabBar~~](#rkotabbar) |
27 | 31 | 3. [BLOG](#blog)
|
28 | 32 |
|
29 |
| -## RKOControl |
30 |
| - |
31 |
| -下面几个都是封装的一些**小控件**。 |
32 |
| - |
33 |
| ---------------------------------------------------------------------- |
34 |
| - |
35 |
| -### RKONetworkAlert |
36 |
| - |
37 |
| -无网络时提醒的一个`Alert`小控件。接口部分非常简单,提供7个**宏定义**,用以修改`Alert`的尺寸以及持续时间。 |
38 |
| - |
39 |
| -```objc |
40 |
| -// Alert尺寸对应的宏。 |
41 |
| - |
42 |
| -#define ALTERSTR @"无网络连接" // 显示的文字 |
43 |
| -#define ALPHA 0.95 // 透明度 |
44 |
| -#define ALERTW 150 // 宽度 |
45 |
| -#define ALERTH 60 // 高度 |
46 |
| -#define RADIUS 5 // 圆角 |
47 |
| -#define DURATION 2 // 持续时间 |
48 |
| -#define OVERTIME 0.5f // 过度时间 |
49 |
| -``` |
50 |
| - |
51 |
| -仅需下面一个方法,便可弹出`Alert`弹窗: |
52 |
| - |
53 |
| -```objc |
54 |
| -/** |
55 |
| - 弹出提示弹窗。 |
56 |
| - */ |
57 |
| -+ (void)popAlert; |
58 |
| -``` |
59 |
| - |
60 |
| -方法内部采用`UIButton`实现,并使用**单例模式**设计。 |
61 |
| - |
62 |
| ---------------------------------------------------------------------- |
63 |
| - |
64 |
| -### RKOCell |
65 |
| - |
66 |
| -从`xib`或者自定义`Cell`中快速获取`Cell`的一个小工具。接口如下所示: |
67 |
| - |
68 |
| -```objc |
69 |
| -@interface RKOCell : UITableViewCell |
70 |
| - |
71 |
| -/** |
72 |
| - 快速获取 cell |
73 |
| - |
74 |
| - @param tableView 当前的tableView |
75 |
| - @return 一个普通的cell |
76 |
| - */ |
77 |
| -+ (instancetype)cell:(UITableView *)tableView; |
78 |
| - |
79 |
| -/** |
80 |
| - 从xib中获取cell |
81 |
| - |
82 |
| - @param tableView 当前的tableView |
83 |
| - @return 从xib中获取到的cell |
84 |
| - */ |
85 |
| -+ (instancetype)xibCell:(UITableView *)tableView; |
86 |
| - |
87 |
| -/** |
88 |
| - 获取一个空白的cell |
89 |
| - |
90 |
| - @param tableView 当前的tableView |
91 |
| - @return 一个空白的cell |
92 |
| - */ |
93 |
| -+ (id)blankCell:(UITableView *)tableView; |
94 |
| - |
95 |
| -@end |
96 |
| -``` |
97 |
| -
|
98 |
| ---------------------------------------------------------------------- |
99 |
| -
|
100 |
| -### RKOTextView |
101 |
| -
|
102 |
| -一个**近乎完美**的`UITextView`封装~~(肯定还有会有一些bug)~~ |
103 |
| -
|
104 |
| -提供以下功能,几乎涵盖目前市面上的基本需求: |
105 |
| - 1. 兼容`stroyboard/xib`以及纯代码。 |
106 |
| - 2. 根据内容自适应高度。 |
107 |
| - 3. 自定义占位符文字。 |
108 |
| - 4. 可以监听输入。 |
109 |
| - 5. 可以限制`TextView`显示的最大行数,在达到最大行数后滚动显示。 |
110 |
| - 6. 可以设置限制最大输入长度,并可以在达到最大字数时设置提醒。 |
111 |
| - 7. 在右侧提供一个清除按钮,可以设置显示时机,始终对于`TextView`垂直居中。 |
112 |
| - 8. 设置文字颜色和背景色的方法和原生`UITextView`没有区别。 |
113 |
| -
|
114 |
| -未来预计实现的功能如下: |
115 |
| -1. 限制输入的范围。 |
116 |
| -
|
117 |
| -#### 使用 |
118 |
| -
|
119 |
| -**基本使用方法如下所示:** |
120 |
| -
|
121 |
| -```objc |
122 |
| -[self.textView textViewStyleWithplaceholder:@"请输入待办内容..." maxLimitNumber:40 maxNumberOfLines:3 clearBtnMode:RKOTextFieldViewModeWhileEditing]; |
123 |
| -``` |
124 |
| - |
125 |
| -#### 接口 |
126 |
| - |
127 |
| -**提供如下几个便利的构造方法,以及样式设置方法** |
128 |
| - |
129 |
| -```objc |
130 |
| -/** |
131 |
| - 提供以下几个便捷方法,快速创建对象并设置其样式。 |
132 |
| - |
133 |
| - @param frame 视图大小及位置 |
134 |
| - @param placeholder 占位符文字 |
135 |
| - @param maxLimitNumber 最大的限制字数 |
136 |
| - @param maxNumberOfLines 最大的限制行数 |
137 |
| - @param clearBtnMode 清除按钮的样式 |
138 |
| - @return RKOTextView |
139 |
| - */ |
140 |
| -+ (RKOTextView *)textViewWithFrame:(CGRect)frame placeholder:(NSString *)placeholder maxLimitNumber:(NSInteger)maxLimitNumber maxNumberOfLines:(NSInteger)maxNumberOfLines clearBtnMode:(RKOTextFieldViewMode)clearBtnMode; |
141 |
| -- (instancetype)initWithFrame:(CGRect)frame placeholder:(NSString *)placeholder maxLimitNumber:(NSInteger)maxLimitNumber; |
142 |
| -- (instancetype)initWithFrame:(CGRect)frame placeholder:(NSString *)placeholder maxLimitNumber:(NSInteger)maxLimitNumber clearBtnMode:(RKOTextFieldViewMode)clearBtnMode; |
143 |
| - |
144 |
| -- (void)textViewStyleWithplaceholder:(NSString *)placeholder maxLimitNumber:(NSInteger)maxLimitNumber maxNumberOfLines:(NSInteger)maxNumberOfLines clearBtnMode:(RKOTextFieldViewMode)clearBtnMode; |
145 |
| -``` |
146 |
| - |
147 |
| -如果您需要**监听输入**,或者**在达到字数限制的时候提醒用户**,那您可以根据需要实现`RKOTextViewDelegate`协议中的**可选**方法。 |
148 |
| - |
149 |
| -```objc |
150 |
| -@protocol RKOTextViewDelegate <NSObject> |
151 |
| - |
152 |
| -@optional |
153 |
| -/** |
154 |
| - 如果您需要监听输入,请实现该方法。 |
155 |
| - */ |
156 |
| -- (void)textViewDidChange:(UITextView *)textView; |
157 |
| - |
158 |
| -/** |
159 |
| - 如果您需要当达到最大字数时弹出提示窗,请将弹出提示窗的代码写在该方法中 |
160 |
| - */ |
161 |
| -- (void)textViewPopAlertWhenMaxNumber:(UITextView *)textView; |
162 |
| - |
163 |
| -@end |
164 |
| -``` |
165 |
| -
|
166 |
| -除此之外,我们还暴露一些属性,方便单独设置: |
167 |
| -
|
168 |
| -```objc |
169 |
| -/** 占位符文字。 */ |
170 |
| -@property(nonatomic,copy) NSString *myPlaceholder; |
171 |
| -
|
172 |
| -/** 限定输入的字符数。 |
173 |
| - |
174 |
| - 注意:该属性优先于最大行数,即在达到最大字数却没有达到最大行数的情况下,无法继续输入。 */ |
175 |
| -@property (nonatomic, assign) NSInteger maxLimitNums; |
176 |
| -
|
177 |
| -/** TextView显示的最大行数。 */ |
178 |
| -@property (nonatomic, assign) NSUInteger maxNumberOfLines; |
179 |
| -
|
180 |
| -/** 清除按钮的显示时机 */ |
181 |
| -@property (nonatomic) RKOTextFieldViewMode clearBtnMode; |
182 |
| -``` |
183 |
| - |
184 |
| -清除按钮的**显示时机**参照`UITextField`设计: |
185 |
| - |
186 |
| -```objc |
187 |
| -/** 定义ClearButton显示的时机 */ |
188 |
| -typedef NS_ENUM(NSInteger, RKOTextFieldViewMode) { |
189 |
| - RKOTextFieldViewModeNever = 0, |
190 |
| - RKOTextFieldViewModeWhileEditing, |
191 |
| - RKOTextFieldViewModeUnlessEditing, |
192 |
| - RKOTextFieldViewModeAlways |
193 |
| -}; |
194 |
| -``` |
195 |
| -
|
196 |
| ---------------------------------------------------------------------- |
197 |
| -
|
198 |
| -### RKOTopAlert |
199 |
| -
|
200 |
| -自定义一个顶端的`Alert`提示窗。弹出时从顶端向下移动。 |
201 |
| -
|
202 |
| -可以设置**提示文字**、**文字颜色**、**背景颜色**。 |
203 |
| -
|
204 |
| -**高度**为`Status` + `NavigationBar`的高度。(不论您的`ViewController`是否添加到`NavigationController`中) |
205 |
| -
|
206 |
| -注意:该控件有以下几点**未进行测试**: |
207 |
| -1. 编写时考虑到了自定义`NavigationBar`,但因为时间原因未进行测试。 |
208 |
| -2. 自定义`NavigationBar`,但自定义`NavigationBar`隐藏时的效果。 |
209 |
| -3. 原生`NavigationBar`隐藏时的情况。 |
210 |
| -3. 隐藏`Status`时的效果。 |
211 |
| -
|
212 |
| -如果在您的项目中用到了以上几点未测试的功能,请将您的结果告诉我,帮助我完善该控件。 |
213 |
| -
|
214 |
| -#### 使用 |
215 |
| -
|
216 |
| -在需要弹出该提示窗的地方调用下面的方法 |
217 |
| -
|
218 |
| -```objc |
219 |
| -[RKOTopAlert popAlertViewWithText:@"已达最大字数限制" textColor:[UIColor colorWithRed:0.89 green:0.94 blue:0.95 alpha:1.00] ackgroundColor:[UIColor colorWithRed:0.88 green:0.25 blue:0.35 alpha:1.00] duration:2.5]; |
220 |
| -``` |
221 |
| - |
222 |
| -#### 接口 |
223 |
| - |
224 |
| -该提示窗提供一个方法用于设置样式并弹出提示窗。 |
225 |
| - |
226 |
| -```objc |
227 |
| -/** |
228 |
| - 设置提示窗的样式 |
229 |
| -
|
230 |
| - @param text 提示窗显示文字,不能为nil。为空则设置无效。 |
231 |
| - @param textColor 文字颜色 |
232 |
| - @param backgroundColor 提示窗背景颜色 |
233 |
| - @param duration 横幅持续显示的时间 |
234 |
| - */ |
235 |
| -+ (void)popAlertViewWithText:(NSString *)text |
236 |
| - textColor:(UIColor *)textColor |
237 |
| - ackgroundColor:(UIColor *)backgroundColor |
238 |
| - duration:(CGFloat)duration; |
239 |
| -``` |
240 |
| - |
241 |
| ---------------------------------------------------------------------- |
242 |
| - |
243 |
| -### RKOTabBar |
244 |
| - |
245 |
| -封装的一个`TabBar`,但是效果并是很好....想了想还是不放在这里了,几乎用不到,每次都要删除怪麻烦的。 |
246 |
| - |
247 |
| ---------------------------------------------------------------------- |
248 |
| - |
249 | 33 | ## RKOTools
|
250 | 34 |
|
251 | 35 | 这里是一些平时使用的一些**工具类**。
|
@@ -472,12 +256,52 @@ UIKIT_EXTERN NSString * const baseURL;
|
472 | 256 |
|
473 | 257 | ---------------------------------------------------------------------
|
474 | 258 |
|
| 259 | +### ImageWithColor |
| 260 | + |
| 261 | +`UIImage`的分类方法,可以根据某一颜色生成一张图片,方便设置`UIButton`的背景图。 |
| 262 | + |
| 263 | +使用时调用下面的方法,传入颜色即可。 |
| 264 | + |
| 265 | +```objc |
| 266 | ++ (UIImage *)imageWithColor:(UIColor *)color; |
| 267 | +``` |
| 268 | + |
| 269 | +--------------------------------------------------------------------- |
| 270 | + |
475 | 271 | ### FastFrame
|
476 | 272 |
|
477 | 273 | **因其与**`Masonry`**冲突,故从库中删除**。如果您有需要,可查找`1.1.0`版本的历史记录,查看相关代码与记录在`README`文件中的API说明。
|
478 | 274 |
|
479 | 275 | ---------------------------------------------------------------------
|
480 | 276 |
|
| 277 | +## RKOControl |
| 278 | + |
| 279 | +下面几个都是封装的一些**小控件**。具体介绍不再在该页面提供,请点击对应的**Github**页面查看。 |
| 280 | + |
| 281 | +--------------------------------------------------------------------- |
| 282 | + |
| 283 | +### RKONetworkAlert |
| 284 | + |
| 285 | +--------------------------------------------------------------------- |
| 286 | + |
| 287 | +### RKOCell |
| 288 | + |
| 289 | +--------------------------------------------------------------------- |
| 290 | + |
| 291 | +### RKOTextView |
| 292 | + |
| 293 | +--------------------------------------------------------------------- |
| 294 | + |
| 295 | +### RKOTopAlert |
| 296 | + |
| 297 | +--------------------------------------------------------------------- |
| 298 | + |
| 299 | +### RKOTabBar |
| 300 | + |
| 301 | +封装的一个`TabBar`,但是效果并是很好....想了想还是不放在这里了,几乎用不到,每次都要删除怪麻烦的。 |
| 302 | + |
| 303 | +--------------------------------------------------------------------- |
| 304 | + |
481 | 305 | ## BLOG
|
482 | 306 |
|
483 | 307 | 本人课余时间利用`HEXO`在GitHub上搭建的博客。未来部分工具会有对应的blog文章对应。在这里也把blog的地址贴出来吧:<br><br>
|
|
0 commit comments