9 Bannings

尚未进行身份认证

不安分的人,做过后端(J2EE),11年转 iOS ,12年中~14年中创过业(跨界开火锅店..),对代码有洁癖,致力于写出优雅的代码,在多个公司负责过 iOS 架构,熟悉设计模式,热衷产品设计与交互,业余时间担任 CSDN iOS 版块版主 我喜欢现代化的生活,日新月异,科技发达,也带着我快速地成长进步。同时我也喜欢追求细致,品味生活,把学到的语言都能写的更优雅,细腻,像诗一样。用动态的心去学习,用静态的心去写。路漫漫其修远兮,吾将上下而求索。

等级
TA的排名 1k+

如何设计一个 iOS 控件?(iOS 控件完全解析)

>代码的等级:可编译、可运行、可测试、可读、可维护、可复用---#前言一个控件从外在特征来说,主要是封装这几点:>*交互方式*显示样式*数据使用对外在特征的封装,能让我们在多种环境下达到PM对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内;而一个好的控件除了有对外一致的体验之外,还有其内在特征:>*灵活性*低耦合*易拓展*易维护

2015-05-25 11:35:22

用 Houston 在本地调试远程通知

Houston的背景Houston在GitHub上的地址:https://github.com/nomad/Houston,作者又是MatttThompson,简直是惨无人道啊,又高产,又有质量Houston能让我们在本地、甚至终端很方便的调试远程通知。安装首先在终端安装:$geminstallhouston我第一次安装的时候报了错,但是第二次就安装成功了:...Installi

2015-05-03 02:04:07

仿网易云音乐的播放进度条

仿网易云音乐的播放进度条,有三种状态:播放、暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善:DKPlayerBar是继承于UIControl的,如果想获取播放\暂停的事件建议用标准的addTarget方法:[playerBaraddTarget:selfaction:@selector(playOrPause)forControlEvents:UIC

2015-05-02 16:00:23

Swift 绘图板功能完善以及终极优化

转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/45289475。前文总结接着这篇:Swift全功能的绘图板开发,虽然在上一篇中我们已经完成了这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色能设置背景色或者背景图但是还有一个非常重要的功能没

2015-04-30 23:45:13

聊聊 iOS 开发

做开发到一定程度后就会面临“转职”,是转向更深的技术还是工程管理值得考虑啊。。行业现状虽然近几年有大量的开发者涌入移动端,社会上的各种培训机构也越来越多,但是优秀的iOS开发者在行业内仍然很少,这一方面是由于创业者很多,另一方面是因为技术更新换代很快,而且开发也需要长时间的经验积累,以近几年的WWDC大会为例,11年发布的iOS5与iOS4相比简直就是跨越性的更新,虽然用户可能感

2015-04-24 22:43:07

《像外行一样思考,像专家一样实践》---产生创新的过程

科学工作者申明某件事情可行的时候,基本上他不会错,但当他说不可能的时候,他很可能错了。发现极限的唯一方法就是超越极限,尝试向稍微超越这个极限的领域迈进、冒险。无论是哪种技术,只要它是非常先进的,那看起来都跟魔术没什么区别。

2015-04-18 21:38:45

《Head First 设计模式》整理

对《HeadFirst设计模式》中的常用设计模式的整理,其实很多模式我们在开发中都有用到,但是在此之前没有一种理论基础支撑自己,有了这些知识后,更有利于做好程序的设计工作,以及遇到一些设计问题时知道如何取舍。策略模式作用通过组合不同的算法,为系统提供运行时动态地改变行为的功能,使系统具有更大的弹性。定义定义了算法族,把它们分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客

2015-04-11 00:56:51

TestFlight Beta 备忘

用iTunesConnect提供的TestFlight功能可以确保我们在设备上测试的版本和AppStore上将要发行的版本是同一个。TestFlight仅支持iOS8及后续版本,并且需要从AppStore里安装TestFlightapp。分为内部测试和外部测试两种:内部测试每个应用最多25位测试者,需要把测试者的AppleID添加到开发者账号里,苹果为会测试者创建一个iT

2015-04-07 13:30:36

Swift 全功能的绘图板开发

转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/43836789。要做一个全功能的绘图板,至少要支持以下这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色和填充颜色能设置背景色或者背景图…我们先做一些基础性的工作,比如创建工程。工程搭建

2015-03-29 21:20:44

Swift Core Data 图片存储与读取Demo

实体的模型定义:实体的class定义:@objc(ImageEntity)classImageEntity:NSManagedObject{@NSManagedvarimageData:NSData}存储:@IBActionfuncsaveImageToCoreData(){letdelegate=UIApplication.sharedAppli

2015-03-20 23:08:37

Swift Nullability and Objective-C

通过Bridging-Header文件,Swift可以与Objective-C无缝调用,但是Swift与Objective-C有一个很大的不同点:Swift支持Optional类型。比如NSView和NSView?,在Objective-C里对此只有一种表示,即NSView*,既可以用来表示该View为nil、也能表示为非nil,此时Swift编译器是无法确定这个NSView是不是Optional类型的

2015-03-18 18:59:51

FMDB 在多线程中的使用

在App中保持一个FMDatabaseQueue的实例,并在所有的线程中都只使用这一个实例。[FMDatabaseQueuedatabaseQueueWithPath:path]FMDatabaseQueue虽然看似一个队列,实际上它本身并不是,它通过内部创建一个Serial的dispatch_queue_t来处理通过inDatabase和inTransaction传入的Blocks

2015-03-12 16:05:50

Xcode 插件失效的临时解决方案

对还没有支持Xcode6.2的插件有效,Alcatraz的新版已经支持。进入到插件目录~/Library/ApplicationSupport/Developer/Shared/Xcode/Plugins显示插件的包内容编辑Info.plist文件展开DVTPlugInCompatibilityUUIDs添加一个新的item:A16FF353-8441-459E-A50C-B071

2015-03-11 11:24:18

iOS Core Data的returnsObjectsAsFaults属性

这个属性是用来做优化的,但是有时候反而会降低性能,我跟你打个简单的比方,假如你有一个Department对象,它和Employee对象是一对多的关系(比如一个部门有100个员工),当你加载Department的时候,它包含的所有Employee也被加载了,此时如果returnsObjectsAsFaults为YES,则员工们不会被添加到内存中。

2015-03-08 10:15:29

iOS id类型的方法调用

用id类型调用了count方法,此时编译器会遍历所有的可见头的count方法,编译器当然会找到多个定义,因为count方法在NSArray,NSSet等等这些类上也有实现,而且我的TestCounter的count方法返回的是一个TestCounter对象,这和NSArray,NSSet等的count方法返回NSUInteger类型不一样,所以编译器会给你一个异常。

2015-03-08 09:43:01

Introduction to the Volatile Keyword

IntroductiontotheVolatileKeywordTheuseofvolatileispoorlyunderstoodbymanyprogrammers.Thisisnotsurprising,asmostCtextsdismissitinasentenceortwo.

2015-03-02 11:49:00

让Xcode自动更新Build版本

我们每天都要打包给测试,每天都要改Build比较麻烦,幸运的是可以通过Shell脚本来省略这个过程。在Xcode工程里选择对应的Target,在BuildPhases里点击“NewRunScriptPhases”

2015-02-03 17:36:08

iOS8 用UITableViewRowAction实现Cell自定义滑动操作

在iOS8以前,如果想自定义一个UITableViewCell的滑动操作是一件比较麻烦的事情,系统只支持删除,如果我们想加上一个类似于“置顶”的操作需要处理不少逻辑,而进入iOS8以后,系统提供了UITableViewRowAction以及新的delegate方法,使得自定义一些操作变得非常容易,如果想加上一个置顶,只需要这样

2015-01-25 21:48:44

我的2014-转行转行再转行,坚守互联网

2014年的1月1号,直到用餐的客人全部走完,关完店回到家已经是凌晨了,想想以前在北京的时候,女友让我回家带点大葱,我买成了韭菜,后来居然开了一家餐饮店,还主做采购,变化真是挺大啊。

2015-01-24 22:34:21

iOS 7、iOS 8屏幕适配

在iOS8中,[UIScreenbounds]、[UIScreenapplicationFrame]、Statusbar、Keyboard这些frame都是根据设备真实方向来返回frame的,而在iOS7中,不过是横屏还是竖屏,iOS总是返回竖屏的frame

2015-01-20 13:24:00

查看更多

CSDN身份
  • 论坛版主
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 红花
    红花
    子板块内专家分月排名榜第一
  • 黄花
    黄花
    子板块内专家分月排名榜第二
  • 蓝花
    蓝花
    子板块内专家分月排名榜第三
  • 优秀版主
    优秀版主
    优秀小版主