
iOS开发
文章平均质量分 67
Bannings
对代码有洁癖,致力于写出优雅的代码,在多个公司负责过 iOS 架构,熟悉设计模式,热衷产品设计与交互,业余时间担任 CSDN iOS 版块版主。
我喜欢现代化的生活,日新月异,科技发达,也带着我快速地成长进步。同时我也喜欢追求细致,品味生活,把学到的语言都能写的更优雅,细腻,像诗一样。用动态的心去学习,用静态的心去写。路漫漫其修远兮,吾将上下而求索。
展开
-
Xcode及模拟器SDK下载
现在不会有人想在 Xcode 里安装旧版的模拟器了,本篇不再维护---------------------------------------------------------------------------如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载:Xcode下载(Beta版打的包是不能提交到App Store上的)绝对官方源!!!绝对...原创 2014-08-11 13:39:57 · 157166 阅读 · 152 评论 -
iOS id类型的方法调用
用id类型调用了count方法,此时编译器会遍历所有的可见头的count方法,编译器当然会找到多个定义,因为count方法在NSArray,NSSet等等这些类上也有实现,而且我的TestCounter的count方法返回的是一个TestCounter对象,这和NSArray,NSSet等的count方法返回NSUInteger类型不一样,所以编译器会给你一个异常。原创 2015-03-08 09:43:01 · 20607 阅读 · 0 评论 -
DKCarouselView
DKCarouselView是一个自动的、无限循环滚动的View,支持按时自动滚动和暂停,通过block回调用户点击事件。原创 2014-11-13 23:22:55 · 5638 阅读 · 0 评论 -
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 · 8991 阅读 · 4 评论 -
iOS 使用Quartz 2D画虚线
画虚线需要用到函数:CGContextSetLineDash此函数需要四个参数:context – 这个不用多说phase - 稍后再说lengths – 指明虚线是如何交替绘制,具体看例子count – lengths数组的长度CGContextRef context =UIGraphicsGetCurrentContext();CGContextB原创 2012-02-05 16:29:56 · 40028 阅读 · 15 评论 -
去掉UIWebView底部的黑条
UIWebView底部的黑条很难看,特别是在底部还有透明控件的时候,隐藏的做法其实很简单,只需要将opaque设为NO,背景色设为clearColor即可。原创 2015-01-05 17:12:02 · 22860 阅读 · 0 评论 -
iPhone 6 / 6 Plus 设计·适配方案
from:http://www.xiaoketang.net/iphone-6-6-plus-设计·适配方案.htmltreelessing2014.10.29 关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助! 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出转载 2014-12-30 15:25:41 · 11255 阅读 · 0 评论 -
让Xcode自动更新Build版本
我们每天都要打包给测试,每天都要改Build比较麻烦,幸运的是可以通过Shell脚本来省略这个过程。在Xcode工程里选择对应的Target,在Build Phases里点击“New Run Script Phases”原创 2015-02-03 17:36:08 · 13814 阅读 · 1 评论 -
has been modified since the precompiled header问题的几种解决方案
有时候不小心就报了这个错误,在以下步骤中,只有没解决问题的情况下,才继续往下操作:原创 2014-09-28 18:05:39 · 14420 阅读 · 2 评论 -
iOS8 Core Image In Swift:更复杂的滤镜
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节。本文将会提到更复杂的滤镜以及子类化CIFilter的使用。原创 2014-09-12 00:52:19 · 27530 阅读 · 13 评论 -
iOS8 用UITableViewRowAction实现Cell自定义滑动操作
在iOS 8以前,如果想自定义一个UITableViewCell的滑动操作是一件比较麻烦的事情,系统只支持删除,如果我们想加上一个类似于“置顶”的操作需要处理不少逻辑,而进入iOS 8以后,系统提供了UITableViewRowAction以及新的delegate方法,使得自定义一些操作变得非常容易,如果想加上一个置顶,只需要这样原创 2015-01-25 21:48:44 · 18126 阅读 · 4 评论 -
DKTabPageViewController
DKTabPageViewController是一个UIViewController的子类,其基于Child ViewController管理多个页面,支持手动滚动,以及是否显示顶部的Tab等。每一个Tab对应一个UIViewController实例,与其他的Tab相互独立,View支持懒加载及viewWillAppear、viewWillDisappear等方法。原创 2014-12-12 14:47:31 · 4967 阅读 · 0 评论 -
给UITableViewCell动态调整高度
在网上看到有人如此实现动态调整高度:点击。,不至于为了获取高度创建一个不需要的cell。主要有两个地方需要调整高度,一个是自己创建的UILabel或其它,另一个就是cell的高度。在创建cell的地方只需要定义好label的属性就行了:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexP原创 2011-12-30 15:25:01 · 13566 阅读 · 0 评论 -
iOS 自定义页面的切换动画与交互动画 By Swift
在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它。但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换。原创 2014-08-11 17:30:48 · 45000 阅读 · 16 评论 -
iOS 全局修改UINavigation 后退按钮
快两年没有更新blog了,现在有点时间随便写点东西吧。做iOS项目中,可能会经常遇到要定制后退按钮的情况,比如把后退按钮的title固定为“返回”(修改title对后面push的vc生效),比如用图片,这时候大家一般会选择添加一个vc的基类,因为这个问题其实很简单,随便做点什么都能解决,今天我用另一种优雅的方法来解决这个问题。默认iOS7的后退按钮是一个箭头+文字,如果想只要箭头的原创 2014-03-28 23:55:59 · 23944 阅读 · 16 评论 -
DKMessageView
一个用UICollectionView实现的滚动切换控件,每一页显示的内容可以用UICollectionViewCell自定义:原创 2014-10-29 21:12:39 · 4095 阅读 · 0 评论 -
Framework的创建与合并
由于.a不能单独使用,必须要配合.h头文件,而且没有包含资源文件,所以用.framework就是更好的选择了。原创 2014-11-02 14:53:59 · 11071 阅读 · 0 评论 -
Swift Core Data 图片存储与读取Demo
实体的模型定义: 实体的class定义:@objc(ImageEntity)class ImageEntity: NSManagedObject { @NSManaged var imageData: NSData}存储:@IBAction func saveImageToCoreData() { let delegate = UIApplication.sharedAppli原创 2015-03-20 23:08:37 · 15350 阅读 · 0 评论 -
Swift 可选值(Optional Values)介绍
Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil。此外,Swift的nil也和Objective-C有些不一样,在Objective-C中,只有对象才能为nil,而在Swift里,当基础类型(整形、浮点、布尔等)没有值时,也是nil,而不是一个初始值,没有初始值的值,是不能使用的,这就产生了Optional类型。原创 2014-08-17 19:02:15 · 49073 阅读 · 27 评论 -
Swift 绘图板功能完善以及终极优化
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/45289475。 前文总结接着这篇:Swift 全功能的绘图板开发,虽然在上一篇中我们已经完成了这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色能设置背景色或者背景图但是还有一个非常重要的功能没原创 2015-04-30 23:45:13 · 10338 阅读 · 5 评论 -
Swift 全功能的绘图板开发
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/43836789。 要做一个全功能的绘图板,至少要支持以下这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色和填充颜色能设置背景色或者背景图…我们先做一些基础性的工作,比如创建工程。 工程搭建原创 2015-03-29 21:20:44 · 23557 阅读 · 25 评论 -
精通UIPasteboard 粘贴板
有时候我们可能需要复制UILabel上的文本,或者UIImageView的图片,而UILabel和UIImageView默认是不响应Touch事件的,也无法复制,那么我们就需要自己实现一个可复制的UILabel。新添加一个类继承自UILabel:@interface UICopyLabel : UILabel@end#import "UICopyLabel.h"@implement原创 2012-05-18 18:22:18 · 31081 阅读 · 9 评论 -
iOS 代码格式化管理
虽然在项目创建和团队组建的初期,我们就把公共约定以及一些规范定下来了,并且由于我们的代码是通过Git来做版本控制的,web上直接就支持Markdown格式的readme文件,可以随时看到最新的版本,但是这种规范只能依靠个人的意识,或者通过代码Review来解决,而且做代码Review的时候,你也不好意思总是写上一堆诸如“这里要加个空格”、“那里要加上换行”的评论吧?如果不管,久而久之,会因为每个人的习惯不同,代码呈现出多种风格,看起来也不像一个成熟团队做出来的产品。原创 2015-01-19 13:47:28 · 15491 阅读 · 24 评论 -
聊聊 iOS 开发
做开发到一定程度后就会面临“转职”,是转向更深的技术还是工程管理值得考虑啊。。 行业现状虽然近几年有大量的开发者涌入移动端,社会上的各种培训机构也越来越多,但是优秀的 iOS 开发者在行业内仍然很少,这一方面是由于创业者很多,另一方面是因为技术更新换代很快,而且开发也需要长时间的经验积累,以近几年的 WWDC 大会为例,11年发布的 iOS5 与 iOS4 相比简直就是跨越性的更新,虽然用户可能感原创 2015-04-24 22:43:07 · 9700 阅读 · 19 评论 -
DKImagePickerController
一个Swift实现的相片多选控件,已选择的相片会在底部预览。原创 2014-10-29 21:17:06 · 6565 阅读 · 4 评论 -
Xcode 插件失效的临时解决方案
对还没有支持Xcode 6.2的插件有效,Alcatraz 的新版已经支持。进入到插件目录 ~/Library/Application Support/Developer/Shared/Xcode/Plugins显示插件的包内容编辑Info.plist文件展开DVTPlugInCompatibilityUUIDs添加一个新的item:A16FF353-8441-459E-A50C-B071原创 2015-03-11 11:24:18 · 22086 阅读 · 20 评论 -
如何设计一个 iOS 控件?(iOS 控件完全解析)
> 代码的等级:可编译、可运行、可测试、可读、可维护、可复用---# 前言一个控件从外在特征来说,主要是封装这几点:> * 交互方式* 显示样式* 数据使用对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内;而一个好的控件除了有对外一致的体验之外,还有其内在特征:> * 灵活性* 低耦合* 易拓展* 易维护原创 2015-05-25 11:35:22 · 41669 阅读 · 30 评论 -
UIWebView 开发经验
1.禁止回弹jQuery方式: $().ready(function(){ document.ontouchmove = function(e){ e.preventDefault(); }});其他方式:document.onload = function(){ document.ontouchmove = function(e){ e.pr原创 2012-04-19 15:48:41 · 5168 阅读 · 0 评论 -
iOS 7、iOS 8屏幕适配
在iOS 8中,[UIScreen bounds] 、[UIScreen applicationFrame] 、Status bar、Keyboard这些frame都是根据设备真实方向来返回frame的,而在iOS 7中,不过是横屏还是竖屏,iOS总是返回竖屏的frame原创 2015-01-20 13:24:00 · 24215 阅读 · 1 评论 -
TestFlight Beta 备忘
用iTunes Connect提供的TestFlight功能可以确保我们在设备上测试的版本和App Store上将要发行的版本是同一个。 TestFlight仅支持iOS 8及后续版本,并且需要从App Store里安装TestFlight app。 分为内部测试和外部测试两种: 内部测试 每个应用最多25位测试者,需要把测试者的Apple ID添加到开发者账号里,苹果为会测试者创建一个iT原创 2015-04-07 13:30:36 · 5747 阅读 · 0 评论 -
用 Houston 在本地调试远程通知
Houston 的背景Houston 在 GitHub 上的地址:https://github.com/nomad/Houston,作者又是Mattt Thompson,简直是惨无人道啊,又高产,又有质量Houston 能让我们在本地、甚至终端很方便的调试远程通知。安装首先在终端安装:$ gem install houston我第一次安装的时候报了错,但是第二次就安装成功了:...Installi原创 2015-05-03 02:04:07 · 7090 阅读 · 1 评论 -
仿网易云音乐的播放进度条
仿网易云音乐的播放进度条,有三种状态:播放、暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善:DKPlayerBar 是继承于UIControl的,如果想获取播放\暂停的事件建议用标准的addTarget方法:[playerBar addTarget:self action:@selector(playOrPause) forControlEvents:UIC原创 2015-05-02 16:00:23 · 15040 阅读 · 1 评论 -
FMDB 在多线程中的使用
在App中保持一个FMDatabaseQueue的实例,并在所有的线程中都只使用这一个实例。[FMDatabaseQueue databaseQueueWithPath:path]FMDatabaseQueue虽然看似一个队列,实际上它本身并不是,它通过内部创建一个Serial的dispatch_queue_t来处理通过inDatabase和inTransaction传入的Blocks原创 2015-03-12 16:05:50 · 27715 阅读 · 6 评论 -
iOS Core Data的returnsObjectsAsFaults属性
这个属性是用来做优化的,但是有时候反而会降低性能,我跟你打个简单的比方,假如你有一个Department对象,它和Employee对象是一对多的关系(比如一个部门有100个员工),当你加载Department的时候,它包含的所有Employee也被加载了,此时如果returnsObjectsAsFaults为YES,则员工们不会被添加到内存中。原创 2015-03-08 10:15:29 · 7273 阅读 · 0 评论 -
Swift 柯里化(Currying)
在计算机科学中,柯里化(英语:Currying),又譯為卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家哈斯凱爾·加里命名的,尽管它是 Moses Schönfinkel 和 戈特洛布·弗雷格 发明的。原创 2014-08-26 20:06:29 · 7727 阅读 · 0 评论 -
DKTagCloudView
一个iOS上的标签云view,能生成随机的、不重叠的坐标,有一定的定制性原创 2014-11-19 10:15:56 · 4036 阅读 · 2 评论 -
Swift 添加方法描述(文档注释)
在Swift里为一个方法添加文档描述很简单,只需要用///就可以了,如原创 2014-10-08 22:12:24 · 13162 阅读 · 0 评论 -
Xcode 常用编译选项设置
乍一看,这些设置可能太麻烦,其实它真的可以节省许多调试应用的时间,在xcconfig文件中指定即可。用标准库连接LINK_WITH_STANDARD_LIBRARIES = YES如果激活此设置,那么编译器在链接过程中会自动使用通过标准库的链接器。Info原创 2011-09-17 14:15:28 · 34821 阅读 · 0 评论 -
使用OpenFlow浏览图片
SDK4.3编译通过,带开源框架,支持点击事件源码地址里面有8张背景图片,资源可能会有点大,总共17M左右原创 2011-09-04 18:00:28 · 5032 阅读 · 1 评论 -
用Objective-C 实现的简单连连看
源码地址有问题请指出,Thanks in advance!原创 2011-09-01 09:15:50 · 7531 阅读 · 0 评论