摘要: 当需要实现一个自定义布局图片和标题的按钮时候,不知道有多少少年直接布局了UIButton,亦或是自定义一个UIView,然后以空白UIButton、UILabel、UIImageVew作为subViews。 两者其实都一样,因为UIButton的内部subViews中,就已经存在一个UILabel和 阅读全文
posted @ 2016-10-21 15:30 A_Long_Way 阅读(1294) 评论(0) 推荐(0) 编辑
摘要: Category使得开发过程中,减少了继承的使用,避免子类层级的膨胀。合理使用,可以在不侵入原类代码的基础上,写出漂亮的扩展内容。我更习惯称之为“分类”。 Category和Extension类似,都是对原类的扩展,区别是前者需要提供Category的名称,并且不直接支持属性;后者为匿名,多存在于类 阅读全文
posted @ 2016-10-13 14:56 A_Long_Way 阅读(1375) 评论(0) 推荐(0) 编辑
摘要: GCD即为Grand Central Dispatch的缩写,是一种主要用于异步处理任务的安全的高性能解决方案。 在此不对比其他异步处理技术,只记录GCD的使用及说明。 先记录一些必要的概念:线程,同步,异步,并行队列,串行队列 线程:程序中任务执行流的最小单元。一个应用程序,一般存在一个进程(拥有 阅读全文
posted @ 2016-09-30 17:25 A_Long_Way 阅读(527) 评论(0) 推荐(0) 编辑
摘要: 上一篇记录了利用系统私有变量和方法实现右滑返回手势功能:http://www.cnblogs.com/ALongWay/p/5893515.html 这篇继续记录另一种方案:利用UINavigationController的delegate方法。 核心代理方法有如下两个: 第一个代理方法,要求在视图 阅读全文
posted @ 2016-09-22 16:39 A_Long_Way 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: iOS7以后,导航控制器,自带了从屏幕左边缘右滑返回的手势功能。 但是,如果自定义了导航栏返回按钮,这项功能就失效了,需要自行实现。又如果需要修改手势触发范围,还是需要自行实现。 广泛应用的一种实现方案是,采用私有变量和Api,完成手势交互和返回功能,自定义手势触发条件和额外功能。 另一种实现方案是 阅读全文
posted @ 2016-09-21 19:25 A_Long_Way 阅读(2399) 评论(0) 推荐(0) 编辑
摘要: 记录状态栏和导航栏的设置和控制,统一在基类视图控制器中完成。 状态栏。 状态栏高度为20,iOS7以后背景完全透明。 样式枚举如下: typedef NS_ENUM(NSInteger, UIStatusBarStyle) { UIStatusBarStyleDefault = 0, // Dark 阅读全文
posted @ 2016-09-21 14:59 A_Long_Way 阅读(1797) 评论(0) 推荐(0) 编辑
摘要: 先记录数据持久化。 iOS客户端提供的常用数据持久化方案:NSUserDefaults代表的用户设置,NSKeydArchiver代表的归档,plist文件存储,SQLite数据库(包括上层使用的Core Data,FMDB)。 每种方案都有各自的应用场景和范围,不能一概而论。不过可以大致以数据储存 阅读全文
posted @ 2016-09-19 12:25 A_Long_Way 阅读(766) 评论(0) 推荐(1) 编辑
摘要: 先罗列一下工具类中提供的方法: 说明: 1.获取毛玻璃效果(高斯模糊)图像 在iOS8以后,提供了类UIBlurEffect、UIVisualEffectView,可以方便的生成高斯模糊的视图,然后只需要作为目标视图的subview即可看到效果。在iOS7上需要自行实现,不过苹果在WWDC 2013 阅读全文
posted @ 2016-09-13 19:35 A_Long_Way 阅读(1648) 评论(2) 推荐(0) 编辑
摘要: 记录字符串的处理,不是一个简单的工作。 NSString是代码中随处可见的类型,也是应用和处理繁多的对象,在此只记录需要常备的方法,并且加以说明。 说明: 1.计算字符串尺寸的方法,sizeWithFont系列方法已经被废物,建议改为boundingRectWithSize方法;NSAttribut 阅读全文
posted @ 2016-09-12 15:13 A_Long_Way 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累。 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长。如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发节奏。 当然,在每个项目开始的时候,不可能将全部工具都准备充分,只能依据个人的经验来评估需要提前准备 阅读全文
posted @ 2016-09-08 17:58 A_Long_Way 阅读(1975) 评论(0) 推荐(3) 编辑