context
今天同学提了一个需求,希望在 NavigationController
管理的控制器中,实现 Push
出的控制器是横屏,然后前一个控制器是竖屏的.
听到这么说, 很简单的想到使用代码控制器屏幕方向,(当然,需要首先在项目的 plist中允许屏幕的多个方向)
记录自己的进步
今天同学提了一个需求,希望在 NavigationController
管理的控制器中,实现 Push
出的控制器是横屏,然后前一个控制器是竖屏的.
听到这么说, 很简单的想到使用代码控制器屏幕方向,(当然,需要首先在项目的 plist中允许屏幕的多个方向)
这两年移动互联网比较火,移动APP的开发人员也是比较紧缺。
面试了一个做APP的,能力很一般,态度也比较傲慢。最后感觉肯定不会用这个人了,但是出于验证自己想法的目的,还是很诚恳地以一个决定录取他的态度,和他交谈。
“刚才我问了你一些问题,可能比较偏,或者不是你所擅长的。我也是本着为公司负责的态度,问一些我们经常用到的问题。这一点请见谅。”,我说。
他说:“没事的,问的确实有点偏。实际工作中,根本用不到,用到了现查就行,网上好多例子,复制粘贴都能搞定!”。
我在开发中遇到一个问题, 就是传统的Target-Action
没法满足我的要求. 因为当按钮触发的瞬间, 控制器可能已经被销毁了. Target
没有了. 暂且不说这个设计的优劣, 单纯从技术方面,剖析一下是否可以实现一个按钮 ,这个按钮不依赖外部 Target
,而是依赖自己.
首先想到的是继承UIButton
,然后给Button
增加一个block
属性 ,然后内部执行block
代码.
但是这样要求我项目中所有使用UIButton的地方都需要修改 ,成本太高,遂放弃.
然后想到通过给UIButton
添加Category
的方式,完成需求. 之前曾经做个一个分类,就是让NSObject
携带一个字典,字典内部可以带上用户自定义的一些参数.解决了一些seletor
不能传递任意参数的问题. 所以,这次给Button
分类增加个属性,也没有什么问题:
今天把原来放在公司电脑上的博客拷贝回来 , 但是使用hexo n
命令的时候,提示如下:
1 | KennydeMacBook-Pro:guiqingblog.github.io kenny$ hexo n "利用Runtime实现自依赖按钮" |
打开 _post
目录,发现文件是创建了 .但是无缘故报错, 总觉的心理不舒服. 其实, 上次遇到过这个问题 ,经过很长时间的搜索, 终于在一个台湾同胞的博客上找到了方案,但是时间太久了,没找到 . 更可气的是 ,对这样的问题, 自己居然没有在 wiznote 或者博客上记录 !
无奈,只能重新搜索, 但是这次好运多了, 第一条就是相关内容, 是简书上一个书友写的,这里是原文,而且他也注明了来源,我进去一看,和之前的一样…
本身这个问题这次没有浪费时间,一分钟就解决了 . 但是反应出一个问题: 自己懒惰的问题 . 如果没有简书作者, 那自己岂不是又要花费半个小时,一个小时去找这个资料 ? 这样的时间成本谁来负责 ? 所以以后要求自己 ,觉得好的东西就要立刻记下来 ,决不能偷懒 !
在OC 中, 我经常使用 #Param
来给控制器划分代码结构 , 比如 ,一个控制器,我经常分为如下的结构:
1 | #pragma mark -life cycle |
这样的好处是, 每个控制器的结构都是规范的. 如图, 方法都分类了(对于我这样的Vim控 ,还能实现在标签之间的跳转)
今天需要用到一个正则,正则本身很简单,就是功能是限制UITextField
只能输入数字,仅仅限制键盘类型是不够的.
正则 ^[0-9]*$
,说到这里了,顺便记录一下,匹配中文的正则表达式是: [\u4e00-\u9fa5]
根据自己以前的知识,iOS有专门的正则表达式类. 一般的步骤是这样的: