半透明效果的实现
类似下图这样一个半透明效果的实现: 起因:我今天在推酷上面闲逛的时候,看到了这样一篇文章用 Swift 编写面向协议的视图,里面介绍的是一个颤动的效果,分别采用直接实现、category实现以及protocol extension实现,来表现swift面向协议的强大,推荐大家仔细看看。 在文章的末尾,附有一个链接,是透明视图控制器及背景遮罩,我点开看了一下,是一个采用protocol extension实现的类似图一的半透明的实现;只不过是swift的。 然后我仔细回想了一下,类似这种效果的需求在开发中不少,但是每次我实现都是自定义一个view然后用动画效果实现,现在想想这样不但繁琐,而且很low,有木有。 然后想想上面的那个实现,我把它翻译成OC的怎么样,能不能使用,OC里面是没有protocol extension的,那我就直接用category实现,至少比每次实现都重写方便。 then,here is the result. DimBackground-OC里面很简单,使用的时候只需要导入这两个文件,然后使用即可。 但是需要注意的是,要present出来的那个界面,这...
推送处理
我这两天都在改这么个东西: 需要根据推送消息,在下方的tabbar上显示提示红点。即:接收到推送消息,当点击推送消息时,跳转对应界面;点击程序图标进入程序时,显示提示的小红点。 前记我记得我之前做的推送处理,分为三种情况,这个我记得很清楚,因为我第一次面试在北京的车库咖啡,被人问到了这个问题,但是我没答出来,因为那时候我确实都没做过推送处理;后来进了第一家公司,有个好的产品,然后刚好有这个需求,然后就get了这个技能。 a. 程序在后台,接收到推送消息,点击推送消息,走的是 1234567// 程序在运行时接收到通知- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ ... [self receivePush:self.userInfo];} b. 程序在前台,接收到推送消息,弹窗提示/直接处理,对应的方法还是 1234567// 程序在运行时接收到通知- (void)appli...
开发中遇到的问题(二)
开发中遇到的问题,分享给大家,有则改之,无则加勉。1. UIScrollView加了category之后导致的手写输入时崩溃的问题—— [UIKBBlurredKeyView candidateList]上周更新的应用,这周上线了,然后昨天旁边的同事告诉我说,友盟上的崩溃信息,崩溃率1%点多了,赶紧查查吧。看了一下发现大部分的崩溃都是这个日志:[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance…,于是搜了一下 崩溃重现:切换到有输入的地方,点击输入,切换输入法到手写输入法(系统的,第三方的没事),然后输入,输入一个之后,第二个字就会崩溃。 原因:是因为给UIScrollView加了个category,是用于处理点击屏幕的事件的(触摸屏幕回收键盘),之前一直都是这么做的,也没问题,又或者又问题也没人反馈,😓,估计是投诉无门啊。。。。。而且我们测试的时候也没有测试手写输入法,因为没人会想到这还会有什么不同。苹果自己也没想到,所以我们就上线了,然后就有崩溃了。。。这坑爹的 解决:既然...
开发中遇到的问题(一)
刚入职新公司,遇到了几个问题,感觉需要记录一下,顺便分享。问题1 界面和代码对应由于刚入职,所以不知道哪个界面对应的代码是哪里,又加上项目比较老,比较大,如何才能快速找准界面和代码之间对应,这是第一个难题。 做法: 最开始,我是先走一遍app的所有界面,大概知道都有哪些,然后开始看代码命名,根据名字猜测可能是哪个界面,然后验证是否正确。但是随后发现这样很累,而且因为代码比较老,有些类重写了,老的都没有删除,命名又很像,所以有些根本没办法对应;而且这样效率很低,如果项目不大还好,但是项目大,时间又紧,那这样根本就行不通。 然后晚上下班,走在路上的时候,突然想起来之前看到的一篇博客,Method Swizzling 和 AOP 实践,这里面介绍用Method Swizzling来实现给每个界面加统计,然后我就想,既然都能给每个界面加统计了,那肯定也能打印每个界面的信息。所以,我就用Method Swizzling实现替换ViewWillAppear:方法,然后每次界面出现的时候都会打印当前类名。这样我只需要运行app,然后点击界面,然后就会打印当前类。很轻松就能找到界面对应...
莫空面试记2
莫空面试记2面试中被问到一个问题,如果让你统计页面,给每个页面做记录,你会怎么做? 然后我想想说, 以前的我的做法是,在每个界面的viewDidAppear里写记录的那个方法。 现在的我的做法是,声明个基类继承自UIViewController的,然后在这个类里写log的方法,然后所有的界面继承自这个类。 然后问,那要是我的界面有些是继承自UITableViewController呢,我说再写个UITableViewController的基类。那要是还有继承自UICollectionViewControoler、UITabBarViewController呢?然后,我就羞愧了。。。。。 我确实不知道还有什么方法,但是刚刚我在搜索runtime的时候,看到一篇博客,Method Swizzling 和 AOP 实践,泪牛满面。。。一模一样,一模一样,有木有,为什么我早点没有看到呢。 看了之后,感觉我好配合,把前面两种都说出来了 答案大家自己看上面那个链接吧,Method Swizzling 和 AOP这两个之前只是听过,今天算是涨知识了,没白过,嗯,分享给大家。 对了,...
理解Cookie和Session机制
理解Cookie和Session机制(上)https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=403993367&idx=2&sn=d6c11fad63cafb8afaabab51a6507a89&scene=0&key=710a5d99946419d9c2959d68fdaaf9fefb276b1dfb707052e9e1def60ab1db9691f7b24bb43dd723d649e208ef339525&ascene=0&uin=MTI3ODUzOTcwNQ%3D%3D&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.11.4+build(15E65)&version=11020201&pass_ticket=Q0hsg2ISdQypn0956Ro2s%2B6VV2Sd%2Fk9qG1eG4JdFJkvBwNb6grOfLnMgdhoF%2FthT 理解Cookie和Session机制(下)http...
iOS面试必备
备忘 内存管理 推送原理 viewController的生命周期,app的生命周期 事件响应链与传递链 数据库语句、CoreData 多线程 Runtime Runloop 动画 git、SVN 自动布局的实现,Masonry ReactiveCocoa
莫空面试记1
莫空面试记1下午去b站面试,被问了一个关于内存管理的问题,问了好多,但就这个印象深刻,因为其它的不会的就算了,或者忘记的也有情可原。但这个问题答称一坨屎就太揪心了。(满满的都是泪啊) 回来的路上手机没电了,然后就想起来这个,想想,我擦,我好像知道这个是什么,再想想,我果然知道,再想想自己当时说的,我想静静 看问题吧,理解就好,不要说格式错了,大概就这个 123456@AutoreleasePool { A = [[A alloc] init]; B = [[B alloc] init]; A.b = B; B.a = A;} 然后问,这个造成循环引用了吗,哪一步造成了,能给我解释一下吗? 然后我解释成一坨屎,面试官看不下去,说怎么改,就不会循环引用了? 然后我又说一坨屎。 现在想想,我当时怎么会那么说?好像是被吓到了,面试官说的是,假设我是一个没学过OC的人,只会C,然后给我解释一下;然后我就以为问的是高深的问题,然后就激动了。。。。 哎,满满的都是泪,不说了,看我回来的路上想出来的答案。 首先是造成循环引用了,这点是肯定的,然后是哪一步呢,...
iOS相关,过年回来电脑上的证书都失效了
我是转载的,原文链接:iOS相关,过年回来电脑上的证书都失效了,求大神! 我刚刚打包上传,出现这个问题,(图片也是别人的,我的改好了,忘记截图了😓),一直出现这个问题;崩溃啊,过完年第一天,还能不能愉快玩耍了。然后开始Google… 我按照上面的提示进行搜索,搜索出来的是 ,然后看了前两个,重新生成发布的描述文件,还不对,坑爹啊 这时,机智的我,看了一下keychain里的证书,发现是这样的(图还是别人的),擦,什么鬼,我就过个年,证书怎么就这样了,然后我google, 然后,看到第一条,热泪盈眶啊,一小时前,还有比我勤奋的,啊啊啊,救星啊,就是文章开头的那个链接 那么多方法,用哪个?我偷懒,然后用的是这个,然后打包成功了 等等,上传失败(图还是别人的,莫笑) fuck,什么鬼,然后我悄悄的把刚刚改的keychain所有东西再改回来,然后按照这个来修改,上传成功,YES!!! (不要骂我,采纳的这个果然是正确的。。。。) 悄悄的说一句,下面的那个步骤,我没按照一步一步来,我选中证书之后,直接搜索Apple Worldwide,然后出现两...
AutoLayout自适应label出现的问题
我在做最近一个项目,自适应label的时候,总是出现一个问题: 这让我很是郁闷,而且只有在6和6p上出现,开始我以为是我自适应的方式不对,但是重写了几遍之后,发现我没写错。。。。问题在哪,始终找不到. 今天在群里看到一小伙伴发关于自适应label的代码,求教了一下,然后找到了这个VerticallyAlignedLabel,然后兴高采烈的尝试,以为终于要解决了,结果发现,确实是向上对齐了,但是多余的部分还在; 那么问题是在哪?然后我就找啊找啊,然后我发现了这个Multiline UILabel height with Autolayout higher in landscape, stackoverflow上的问题,之前我一直搜中文,但是,搜不出来,换英文之后,终于有相似的问题出现了,我就说,肯定不止我一个人遇到(这么蠢😢),然后还有这个objc.io也出现了Intrinsic Content Size of Multi-Line Text, 然后我打算照着他们的方法修改; 他大爷的,我都没办法直接用他们的方法,因为我把view摘出来了,而且还是tableViewc...