随笔分类 -  Objective-C相关

摘要:首先想强调一下“语音识别”四个字字面意义上的需求:用户说话然后马上把用户说的话转成文字显示!,这才是开发者真正需要的功能。 做需求之前其实是先谷歌百度一下看有没有造好的轮子直接用,结果真的很呵呵,都是标着这个库深入学习的标题,里面调用一下api从URL里取出一个本地语音文件进行识别,这就没了? 最基 阅读全文
posted @ 2016-12-20 11:51 董铂然 阅读(3182) 评论(0) 推荐(4) 编辑
摘要:考虑到中秋后面还有个国庆长假,特此分享经验。这里仅仅是说一些我的见闻,类似于一个个tips,不会写完整的游记攻略,这些可以到马蜂窝的主页去找。 *香港的垂直电梯,在一楼停着的时候门是打开的。省去了一个交互的步骤,用户体验真的非常好。 *香港的马桶座圈并不是一个完整的圆,正前方是有个凹口的,也是用户体 阅读全文
posted @ 2016-09-20 11:55 董铂然 阅读(917) 评论(2) 推荐(2) 编辑
摘要:本文主要是一些对iOS新功能的探索,之前发现博客里关于iOS新功能的分析大多是过于概括,每个功能几句话,无法了解到具体的功能。所以本次的探索是基于Api层面,着重看一些具体用法所做的笔记,本来想分别画个类图来着,后来还是觉得太耗时而放弃。如果不想把苹果iOSSDK里的.h文件都摆出来详细读,那看这篇 阅读全文
posted @ 2016-06-27 09:36 董铂然 阅读(16914) 评论(12) 推荐(6) 编辑
摘要:苹果的通讯录功能在iOS7,iOS8,iOS9 都有着一定的不同,iOS7和8用的是 <AddressBookUI/AddressBookUI.h> ,但是两个系统版本的代理方法有一些变化,有些代理方法都标注了 NS_DEPRECATED_IOS(2_0, 8_0) 并推荐了另一个代理方法与之对应。 阅读全文
posted @ 2016-05-31 09:07 董铂然 阅读(4852) 评论(10) 推荐(3) 编辑
摘要:三.ReactiveCocoa代码实践之-更多思考 1. RACObserve()宏形参写法的区别 之前写代码考虑过 RACObserve(self.timeLabel , text) 和 RACObserve(self , timeLabel.text) 的区别。 因为这两种方法都是观察self 阅读全文
posted @ 2016-04-19 16:32 董铂然 阅读(1675) 评论(5) 推荐(4) 编辑
摘要:简单介绍下,这是需求驱动中发现iOS的NotificationCenter有很多功能无法实现,于是对其进行了一层包装。相当于手动管理观察者栈和监听者期望执行的事件,因此可以为其添加了很多新增的功能,将其命名为MessageTransfer。 一.核心优点 1.高度解耦 生命周期与页面实例周期相隔离 阅读全文
posted @ 2016-04-11 16:07 董铂然 阅读(2428) 评论(4) 推荐(2) 编辑
摘要:上一节是自己对网络层的一些重构,本节是自己一些代码小实践做出的一些demo程序,基本涵盖大多数UI控件操作。 一.用UISlider实现调色板 假设我们现在做一个demo,上面有一个View用来展示颜色,下面有三个UISlider滑竿分别控制RGB的色值,随着不同滑竿的拖动上面view的颜色会随之 阅读全文
posted @ 2016-03-22 11:59 董铂然 阅读(2674) 评论(2) 推荐(3) 编辑
摘要:前言 RAC相比以往的开发模式主要有以下优点:提供了统一的消息传递机制;提供了多种奇妙且高效的信号操作方法;配合MVVM设计模式和RAC宏绑定减少多端依赖。 RAC的理论知识非常深厚,包含有FRP,高阶函数,冷信号与热信号,RAC Operation,信号的生命周期等,这些文档里都有介绍。 但是由于 阅读全文
posted @ 2016-03-14 11:47 董铂然 阅读(4300) 评论(3) 推荐(3) 编辑
摘要:以前觉得这种标题有点偏向于理论,实际开发中怎么会有这种诡异的需求,但是真正遇到了这种硬需求时觉得还是有那么点价值的,理论付诸了实践在此也就做了个整理。 以我私下开发中的一处代码为例,本意是希望有这么一个方法:能够传入一个开始标记(NSString*)一个结束标记(NSString*)一段文字(NSS 阅读全文
posted @ 2016-01-18 11:50 董铂然 阅读(6666) 评论(5) 推荐(3) 编辑
摘要:Wonderful 这个库主要是与UIColor息息相连的,其中一共包含四个子文件,UIColor+Wonderful,UIColor+Separate,SXColorGradientView,SXMarquee。分别对应颜色扩展,色彩分离,颜色渐变,和跑马灯 4种主要功能。 项目地址:https: 阅读全文
posted @ 2015-11-30 11:59 董铂然 阅读(3831) 评论(8) 推荐(14) 编辑
摘要:本文调研Xcode的版本是 7.1,基本是探索了菜单的每一个按钮。虽然从xcode4一直用到了xcode7,但是一般都只是用了一些基础的功能,说来也惭愧。在一次偶然的机遇突然发现了“显示调用层级”的选项才知道菜单了的按钮并不都是没有用,而是很有用只是你不知道罢了。 本想这种东西仔细总结了也不一定有价 阅读全文
posted @ 2015-11-23 11:55 董铂然 阅读(10877) 评论(12) 推荐(7) 编辑
摘要:之前只有比较浅的接触过Masonry。项目中大多数的布局还是用xib中的AutoLayout与手码的frame计算相结合,相信也会有很多项目和我一样是这两种布局的组合。其实xib各方面用的感觉都挺好,以前是性能问题,冲突问题饱受人诟病,但随着苹果的更新换代这些问题也逐渐趋向最小化。 我们团队整改的 阅读全文
posted @ 2015-10-19 09:14 董铂然 阅读(4677) 评论(5) 推荐(4) 编辑
摘要:本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看喵神的开发者所需要知道的 iOS 9 SDK 新特性。9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级iOS9,也就逐渐的衍生出了一系列的问题,笔者也在赶忙为自己维护的App做适配,本文写的一些坑基本都 阅读全文
posted @ 2015-09-21 11:59 董铂然 阅读(30456) 评论(8) 推荐(9) 编辑
摘要:写本文的契机主要是把自己整理的关于iOS字体方面的知识不断更新写在这篇博文中,用来自己以后查阅。 一、iOS原生字体展示 在label中选择字体的font,并把font由system改成custom后,就能在family中看到72种特殊字体。这些里面就有很炫的字体,但是全部是只针对英文数字,对中文无 阅读全文
posted @ 2015-08-06 11:54 董铂然 阅读(15664) 评论(12) 推荐(8) 编辑
摘要:tableView是一个神奇的东西,可以这么说,就算是一个初学者如果能把tableView玩的很6,那编一般的iOS的需求都问题不大了。tableView是日常开发中用烂了的控件,但是关于tableView中的自定义cell的动态行高,还是有一些玄机的。笔者本次主要是因为预估行高的方法的问题作为了一 阅读全文
posted @ 2015-06-24 11:54 董铂然 阅读(10085) 评论(12) 推荐(6) 编辑
摘要:代码的注释经常被人忽略,以至于在后期维护的时候较为困难。我们准备在XX项目开始之前制定一套规范的注释体系,致力于达到就算维护人员改变也能快速上手的效果。 1.属性注释 属性注释 使用 /** 注释*/ 的文档注释格式。 这种注释相较于// 注释的优点是此属性可以在后面的引用时,在智能提示的下方显示中 阅读全文
posted @ 2015-05-29 09:41 董铂然 阅读(6817) 评论(7) 推荐(6) 编辑
摘要:在公司项目新版本方案选择中,对主导航中要使用的抽屉效果进行了调研。主要原因是旧的项目中所用的库ECS评价不是很好。现对当下比较火的几大热门抽屉效果的第三方库进行了调研。代码全部选自github 如果你不是在董铂然博客园看到本文,请点击查看原文 一.RESideMenu https://github. 阅读全文
posted @ 2015-05-04 12:02 董铂然 阅读(6843) 评论(21) 推荐(8) 编辑
摘要:1.IB是什么? Interface Builder 是一种通过图形化界面搭建UI的方式,并把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 NIB文档里;程序运行时,这些对象将会“苏醒”。 在终端下我们可以看到,NIB 其实是一个目录。它里面有两个也是后缀为 NIB 的文件:design 阅读全文
posted @ 2015-04-27 11:52 董铂然 阅读(3073) 评论(11) 推荐(6) 编辑
摘要:目前知名的2D物理引擎有 Box2d,和Chipmunk,这些是跨平台的。但苹果本身也封装了一个物理引擎, UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架。这可以让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果。在游戏开发中会经常用到。本文主要是玩一些较浅的 阅读全文
posted @ 2015-03-23 11:49 董铂然 阅读(3413) 评论(6) 推荐(7) 编辑
摘要:一个应用程序的启动过程要包括代理的创建,控制器的加载和控制器view的加载,这其中有很多关于生命周期的方法,每个方法都是有先后顺序的,如果调用顺序拿不准,或者某段代码写的方法不恰当,就会遇到各种奇葩问题。本文不怕麻烦的在几乎所有启动时要调用的方法里都用了 __FUNCTION__ 打印。结果还有有些 阅读全文
posted @ 2015-03-09 11:53 董铂然 阅读(4617) 评论(4) 推荐(4) 编辑