随笔分类 -  2016

摘要:Base项目是在Xcode7上创建的,升级Xcode8以后,编译时候提示错误: The file “base.app” couldn’t be opened because you don’t have permission to view it. 应该是由于Build Settings->Buil 阅读全文
posted @ 2016-11-18 11:18 A_Long_Way 阅读(490) 评论(0) 推荐(0)
摘要:从iOS 8起,就有了App Extension。Extension的种类至今也扩充到了19种,应用也很广泛,值得重点关注起来。 Extension几乎可以看做一个内嵌的独立App,拥有独立的BundleID、证书、概要配置文件、进程空间、沙盒等等。只是需要打包在App内,类似于寄生在宿主App内, 阅读全文
posted @ 2016-11-16 18:12 A_Long_Way 阅读(2175) 评论(0) 推荐(0)
摘要:今天升级了Xcode 8.1,准备在iOS10.0.2的iPhone 6 Plus上调试,提示:Unable to read from device。 查看文件路径:"~/Library/Developer/Xcode/iOS DeviceSupport",将会发现该文件夹下对应设备的文件夹是空的, 阅读全文
posted @ 2016-11-07 14:44 A_Long_Way 阅读(500) 评论(0) 推荐(0)
摘要:本篇记录星级评分组件的创建过程以及CALayer的运用。 为了实现一个星级评分的组件,使用了CALayer,涉及到mask、CGPathRef、UIBezierPath、动画和一个计算多角星关键节点的算法。 CALayer管理基于图像的内容,并让我们可以在内容上添加动画。UIView及其子类拥有一个 阅读全文
posted @ 2016-11-04 17:54 A_Long_Way 阅读(1360) 评论(0) 推荐(0)
摘要:使用UICollectionView,需要使用UICollectionViewLayout控制UICollectionViewCell布局,虽然UICollectionViewLayout提供了高度自定义空间,但是对于日常使用显得太繁琐,于是常见使用UICollectionViewFlowLayou 阅读全文
posted @ 2016-11-01 16:11 A_Long_Way 阅读(4522) 评论(0) 推荐(0)
摘要:当需要实现一个自定义布局图片和标题的按钮时候,不知道有多少少年直接布局了UIButton,亦或是自定义一个UIView,然后以空白UIButton、UILabel、UIImageVew作为subViews。 两者其实都一样,因为UIButton的内部subViews中,就已经存在一个UILabel和 阅读全文
posted @ 2016-10-21 15:30 A_Long_Way 阅读(1381) 评论(0) 推荐(0)
摘要:Category使得开发过程中,减少了继承的使用,避免子类层级的膨胀。合理使用,可以在不侵入原类代码的基础上,写出漂亮的扩展内容。我更习惯称之为“分类”。 Category和Extension类似,都是对原类的扩展,区别是前者需要提供Category的名称,并且不直接支持属性;后者为匿名,多存在于类 阅读全文
posted @ 2016-10-13 14:56 A_Long_Way 阅读(1476) 评论(0) 推荐(0)
摘要:GCD即为Grand Central Dispatch的缩写,是一种主要用于异步处理任务的安全的高性能解决方案。 在此不对比其他异步处理技术,只记录GCD的使用及说明。 先记录一些必要的概念:线程,同步,异步,并行队列,串行队列 线程:程序中任务执行流的最小单元。一个应用程序,一般存在一个进程(拥有 阅读全文
posted @ 2016-09-30 17:25 A_Long_Way 阅读(568) 评论(0) 推荐(0)
摘要:上一篇记录了利用系统私有变量和方法实现右滑返回手势功能:http://www.cnblogs.com/ALongWay/p/5893515.html 这篇继续记录另一种方案:利用UINavigationController的delegate方法。 核心代理方法有如下两个: 第一个代理方法,要求在视图 阅读全文
posted @ 2016-09-22 16:39 A_Long_Way 阅读(1150) 评论(0) 推荐(0)
摘要:iOS7以后,导航控制器,自带了从屏幕左边缘右滑返回的手势功能。 但是,如果自定义了导航栏返回按钮,这项功能就失效了,需要自行实现。又如果需要修改手势触发范围,还是需要自行实现。 广泛应用的一种实现方案是,采用私有变量和Api,完成手势交互和返回功能,自定义手势触发条件和额外功能。 另一种实现方案是 阅读全文
posted @ 2016-09-21 19:25 A_Long_Way 阅读(2471) 评论(0) 推荐(0)
摘要:记录状态栏和导航栏的设置和控制,统一在基类视图控制器中完成。 状态栏。 状态栏高度为20,iOS7以后背景完全透明。 样式枚举如下: typedef NS_ENUM(NSInteger, UIStatusBarStyle) { UIStatusBarStyleDefault = 0, // Dark 阅读全文
posted @ 2016-09-21 14:59 A_Long_Way 阅读(1842) 评论(0) 推荐(0)
摘要:先记录数据持久化。 iOS客户端提供的常用数据持久化方案:NSUserDefaults代表的用户设置,NSKeydArchiver代表的归档,plist文件存储,SQLite数据库(包括上层使用的Core Data,FMDB)。 每种方案都有各自的应用场景和范围,不能一概而论。不过可以大致以数据储存 阅读全文
posted @ 2016-09-19 12:25 A_Long_Way 阅读(804) 评论(0) 推荐(1)
摘要:先罗列一下工具类中提供的方法: 说明: 1.获取毛玻璃效果(高斯模糊)图像 在iOS8以后,提供了类UIBlurEffect、UIVisualEffectView,可以方便的生成高斯模糊的视图,然后只需要作为目标视图的subview即可看到效果。在iOS7上需要自行实现,不过苹果在WWDC 2013 阅读全文
posted @ 2016-09-13 19:35 A_Long_Way 阅读(1699) 评论(2) 推荐(0)
摘要:记录字符串的处理,不是一个简单的工作。 NSString是代码中随处可见的类型,也是应用和处理繁多的对象,在此只记录需要常备的方法,并且加以说明。 说明: 1.计算字符串尺寸的方法,sizeWithFont系列方法已经被废物,建议改为boundingRectWithSize方法;NSAttribut 阅读全文
posted @ 2016-09-12 15:13 A_Long_Way 阅读(658) 评论(0) 推荐(0)
摘要:从这篇记录开始,记录的都算是干货了,都是一些编程日常的积累。 我建议先将基础的工具加入项目,后续的开发效率会呈指数增长。如果在专注功能开发过程中,才发现缺少大量常用的工具,不仅会打断思路,还会拖慢开发节奏。 当然,在每个项目开始的时候,不可能将全部工具都准备充分,只能依据个人的经验来评估需要提前准备 阅读全文
posted @ 2016-09-08 17:58 A_Long_Way 阅读(2003) 评论(0) 推荐(3)
摘要:工欲善其事,必先利其器。 在正式实现各种炫酷的功能和UI前,做好准备工作是提高后续开发效率的必经之路。 所以,这个系列,我不是在各种堆技术,更关注的是“兵马动”之前的“粮草行”,有些繁琐,但当清晰理出整个脉络,后续的工作只是在良好的基础和框架上无限扩展和优化。 宏定义,是开发过程中提高效率的有效工具 阅读全文
posted @ 2016-09-06 13:09 A_Long_Way 阅读(1316) 评论(0) 推荐(1)
摘要:补充一点遗漏的Xcode配置。 1.偏好设置。Xcode的菜单栏Xcode -> Preference Fonts & Colors可以自定义编码区和控制台的背景、字体。 Text Editing:Line numbers显示行数,Code folding ribbon使代码可以折叠,page gu 阅读全文
posted @ 2016-09-01 18:02 A_Long_Way 阅读(2606) 评论(0) 推荐(1)
摘要:base项目已经可以编译运行了,只不过没有实际功能而已。继续完善base项目前,我们需要考虑一下代码管理的事情了。 不管是一个人开发还是一个团队开发,对源代码进行版本管理是必须的,任何人对代码的的任何操作都可以被管理,理由还不够充分么。 以前使用过SVN,不过体验最好的,还是Git方式。 1.本地仓 阅读全文
posted @ 2016-09-01 11:49 A_Long_Way 阅读(1749) 评论(4) 推荐(0)
摘要:在继续增加预编译头文件前,先稍等。 Xcode为我们创建了一个模板项目,很棒!但有一点不太令人满意,问题就在下图中: 这是一个新项目的初始文件目录,几乎所有文件都在同一级目录下,随着项目文件数量急速增加,这将是一场噩梦。所以,我们需要整理一下文件结构,这也算是初步的项目构架了。 还要注意一点,Xco 阅读全文
posted @ 2016-08-31 17:04 A_Long_Way 阅读(448) 评论(0) 推荐(0)
摘要:Info.plist文件控制应用的全局配置,例如bundle name,display name。 先来看一下默认创建的Info.plist文件 右键左侧的Info.plist文件,可以open as “property list”或者“source code”来查看。例如下图: 接下来,我将以co 阅读全文
posted @ 2016-08-31 15:57 A_Long_Way 阅读(10866) 评论(0) 推荐(0)