啊神的技术博客

我的小博客,小智慧

一行代码搞定UITextField的输入格式限制

| 评论

ZASTextFieldFormat开发背景

在开发的过程中,每次写到UITextField,就不由得心里不爽,因为要考虑到各种输入限制,实现代理、通知等一些麻烦繁琐的东西,就心中不爽,所以才写了这个ZASTextFieldFormat简单的轮子,先暂时用着,等后期在慢慢优化完善。

ZASTextFieldFormat 简介

一行代码,设置UITextField的输入格式限制,比如手机号、身份证号、银行卡号格式以及输入字符类型个数的限制等;

接口说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

/**
 * ZASTextFieldFormatDelegate代理
 *
 */
@property (nonatomic, assign) id<ZASTextFieldFormatDelegate> zasDelegate;

/**
 * 设置浮点类型,只允许输入两位小数的浮点类型(default=NO)
 * 
 */
@property (nonatomic, assign) Boolean isFloat;

/**
 * 设置正则匹配模式(如果设置正则模式,则忽略其他格式限制)
 *
 */
@property (nonatomic, copy) NSString * pattern;

/**
 * 设置UITextFiled格式控制的入口 (注:这个入口必须被调用)
 * format=nil或者""则不限制格式, charactersInString=nil或者""则不限制字符, maxLimit=0则不限制个数
 *
 * 示例: 以手机号为例
 * @param format              格式,eg: ### #### ####
 * @param charactersInString  支持输入的字符,eg: 0123456789
 * @param maxLimit            最大输入限制个数,eg: 11
 * 结果输入:159 1234 5678
 */
 - (void)textFieldWithFormat:(NSString *)format charactersInString:(NSString *)charactersInString maxLimit:(NSInteger)maxLimit;

具体使用

使原有UITextField继承自ZASTextFieldFormat,然后调用如何接口即可;

1
[_tfPhone textFieldWithFormat:@"### #### ####" charactersInString:@"0123456789" maxLimit:11];

参考Demo

点击此处获取Demo

自动生成混淆文件(swift版)

| 评论

起因

你们都知道,AppStore审核机制,多款类似的APP,会被4.3拒绝,至于如何规避4.3,这里我只写如何给项目添加混淆代码(又叫垃圾代码),当然只添加垃圾代码,应该是规避不了4.3的,但至少可以迷惑机审,加大通过机审的概率,至于其他方法,不予多说。 我这里使用python脚本,自动生成swift垃圾文件代码,文件名随机,每个文件中含有少量变量,方法等。

实现原理

实现原理很简单,就是创建文件,向文件中,添加swift语言的字符串即可。

实现代码

获取代码Demo文件点击此处 以下为实现代码

工具篇之自定义检查版本更新提示弹框

| 评论

引言

对于一些app的更新弹框,使用系统自带的Alert弹框,文字排版总是对不齐,没有美观,像我这样有点强迫症的,看到都别扭,更别说去点击更新了,于是乎,就自己动手做了一个,不管怎么样,看着舒服多了。

此处不废话,看效果

使用

由于这个工具开发过于简单,我这里就不讲述如何开发实现的了,想要看具体实现的,我已在github上公开源码(ZASUpdateAlert),可自行查看去吐槽。

《三体》之读后随记

| 评论

《三体》启蒙

  对于宇宙,我始终有一种感触,却无法形容这种感触,它是那么的神秘莫测,那么的不可思议以至于我就算开发大脑的全部,也无法解读它。我喜欢宇宙,喜欢天体,喜欢那寂静无限深渊的星空,或许我是一个宇宙科幻迷,宇宙科幻迷当然要看看《三体》,看它是如何的来打开那灵魂深处的思想禁锢。

《三体》微感

   大约3977页,耗时58小时3分,我读完了《三体》的全部三部,页数是微信读书上面的页面,读纸质书,有时候会犯困也不那么方便,我喜欢电子书的方便快捷。读完三体后,让我脑洞大开,宇宙中真是无奇不有呀,什么三体人,什么水滴等等,都让我眼界大开,思想得到了扩展,心灵得到了升华。

第一部,涉及的宇宙比较少,可能没有多少引起我的注意,或许读的也间隔比较久,印象比较深的就是汪淼的那个时间,以及叶文洁与红岸基地,还有三体发射到地球的两个智子(三体人用质子,展开多维建造成的超级超级超级计算机);

第二部,地球人制定的面壁计划无疑是可笑而又无力的表现,罗辑也只是被绑架的救世主,却也在人们的地位起起伏伏,在这一部中,最震撼的,最有视觉冲击力的,应该就是那水滴攻击舰队的壮观场面了,我想拍成电影的话,如果能还原大刘的90%,应该就足以体现那旷世的震撼,这部中,让人深思的应该就是黑暗森林法则,让人感觉自己是多么的渺小,地球是多么的渺小,太阳系又是多么渺小,对于高级文明,摧毁太阳系也只需要发射一枚光粒武器而已。

Xcode修改版权Copyright、统一配置类前缀

| 评论

修改类的Copyright、类前缀

对于已经在项目中的文件,想要修改版权信息,使用全局替换就可以了,而对于新文件来说,想让Xcode帮你自动填充版权方,也是很方便的,之前都是傻瓜式的替换,现在发现了新大陆,就来这里记录下吧,具体操作流程如下图:
版权、前缀

顺便加点料,对于有些项目,需要为每个类加一个前缀,也是可以按照这个流程来做的,设置上图中的Class prefix就可以了,这样Xcode会在新建的类的时候自动填充这个前缀了。

React-Native初体验

| 评论

我的学习之React-Native

练习项目:https://github.com/ashen-zhao/react-native

目前还在学习阶段,日后有时间有精力了,再来补充这篇文章吧(偷笑中),又来欺骗自己了,啥时候来补充呀,这个还真不知道呀,谁让咱都是性情中人呢。

Xcode代码全黑的另一种解决办法

| 评论

Xcode代码全黑且没有智能提示,应该算是开发中最烦恼的事之一了吧,一旦遇到这样问题,之前除了Clean项目,删除DerivedData文件夹,然而这样并没有什么用,偶尔重启Xcode或许运气好的话,彩色世界就会回来了。

运气为什么好就能回来了,联想到Xcode比较吃内存,在联想到我苦逼的4g内存,估计Xcode代码全黑,可内存有联系呀,瞬间茅塞顿开呀,赶紧打开活动监视器,看到占用内存最多的 SourceKitService,大概百度了下SourceKitService这个进程,也没发现有什么比较严重的东东,就退出SourceKitService这个进程,回到Xcode发现,代码不再是全黑了,又回到彩色世界了,世界又是那么的美好,编程也变得快乐了

总结,Xcode代码全黑的另一种解决办法,就是打开活动监视器,退出SourceKitService进程,就可以了。

注:可能只针对内存比较小的电脑(另外:我的项目是swift项目)