- 博客(38)
- 收藏
- 关注

原创 iOS编程——Runtime在工程中的常用方法
最近统计了一下Runtime的常用方法,有一些在我们的工程中能起到很巧妙的作用,给大家共享下。Runtime中所有方法的解释可以看这篇文章;http://www.jianshu.com/p/a31c15064a98 1.实现app的热更新 通过Runtime强大的查找、替换、添加方法和类的功能,可以实现app的热更新,直接更换app的原有代码来实现新的功能和解决bug。 常用的
2016-04-24 15:32:30
738

原创 iOS编程——NSUserDefaults来保存自定义Object
在开发过程中,经常遇到要将一些变量保存到NSUserDefaults里,它默认是只支持基本对象的比如NSString、NSData等;如果保存自定义对象,就需要实现协议,来实现它的两个方法:序列化和反序列化:先去看下NSCoding协议的API:@protocol NSCoding- (void)encodeWithCoder:(NSCoder *)aCoder;- (id)init
2015-09-10 18:09:36
631

原创 iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC优化版)
对之前的代码进行了优化,完善了一下。文件目录(需要添加Security.framework)如下在其它文章已经描述过了,就直接贴代码了:1.MyKeyChainManager.h#import @interface MyKeyChainManager : NSObject+ (OSStatus) add:(NSString *)service data:(id)
2015-08-13 10:24:50
842

原创 Swift语法—— subscript(自定义下标) 的使用
今天看Array的官方API,发现很多用subscript的地方,研究了下,和大家分享下我的理解:subscript: 自定义下标,其实是可以通过下标([])来直接访问类(class)、结构体(struct)、枚举(enum)的成员变量。举例代码:比如我们定义一个Person类,里面有数组children[String]来统计孩子数量,有枚举names来获取名字
2015-07-31 16:02:21
1113
转载 iOS开发之 Realm框架基础知识详解
在iOS开发中,开发者要提高开发效率,技巧的掌握必不可少,框架的正确使用更是必不可少。今天小编和大家分享的就是iOS的Realm框架,这个框架是一个比较新的框架,由于文章篇幅问题,就先展示Realm框架的基础部分。 为了让大家能更好的理解和掌握iOS Realm框架相关知识,本文将通过一个简单的案例为大家展示,这个案例是一位iOS大牛使用Realm框架
2016-05-13 10:00:01
709
原创 JSONKit 解析后存在NSULL对象导致的Crash问题处理
在项目中发现一个问题:JSONKit解析后如果服务端给的报文存在null就会生成NSNull对象OC中给Nil对象发送消息是安全的,但是对NSNull对象发送消息就会Crash。解决方法很多:可以全局的将字符串中的"null"替换为"",这里给大家推荐个runtime方法。是github高手写的一个category,在遇到sendSelector失败时进行消息转发时进行转换:地址如
2016-05-05 16:30:16
550
转载 SDWebImage使用方法
SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高。但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage。使用场景:自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图。如下图样例:图中显示的图片符合根据网络状态下载要求由于要监听
2016-05-03 15:11:48
555
转载 iBeacon参考网址
https://github.com/nixzhu/dev-blog/blob/master/2014-04-23-ios7-ibeacons-tutorial.md
2015-10-28 21:04:02
391
转载 iOS开发 关于iBeacon的一些记录
最近时间一直在研究ibeacon所以把自己遇到的一些问题写下来做个笔记。参考资料:https://github.com/nixzhu/dev-blog/blob/master/2014-04-23-ios7-ibeacons-tutorial.mdiBeacon是苹果被允许能在后台运行的,不论你将应用退出到后台还是杀死,iBeacon都能激活应用不过只能激活10秒左右,但是这段时间足可以做
2015-10-28 21:02:56
1077
转载 iO8及以后设置启动图片LaunchImage的方法
Http://Www.woowen.com/Swift/2014/12/12/Ios8设置Launch Image 启动图片/ 如何设置App的启动图,也就是Launch Image?Step11.点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image"2.如图,右侧的勾选可以让你选择是否要对ipad,横屏,竖屏,以及低版本
2015-10-21 20:14:04
460
转载 UIAlertController的使用
iOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。还有,某些旧的UIKit控件也同样发生了许多变化,比如说Alert Views、Action Sheets、Po
2015-10-20 16:42:28
385
转载 iOS中Bitcode的介绍及配置
今天在一个iOS培训网站上看到一篇关于第三方库不包含bitcode就会报错的文章,感觉剖析得很详细,分享出来,希望可以对iOS初入门者有所帮助。下面我们就一起来看看吧。用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过。看了下问题,报的是以下错误:ld: ‘/Users/**/Framework/SDKs/PolymerPay/Library
2015-09-18 13:45:14
416
转载 iOS开发——改变UITextField的样式:占位符颜色、字符起始位置等
我们有时需要定制化UITextField对象的风格,可以添加许多不同的重写方法,来改变文本字段的显示行为。这些方法都会返回一个CGRect结构,制定了文本字段每个部件的边界范围,甚至修改placeHolder颜色,字体。– textRectForBounds: //重写来重置文字区域– drawTextInRect: //改变绘文字属性.重写时
2015-09-12 09:48:18
3424
原创 iOS编程——最简单的实现UITableView下拉时顶部图片放大消失的效果
常常见到很多App使用这个效果:tableView顶部为一个图片,向下滑动tableView时图片会放大,向上滑动时图片会不同步的上移消失。比如下面图所示:实现原理很简单,就是使用下面scrollView的delegate方法获取offset实现:- (void)scrollViewDidScroll:(UIScrollView *)scrollView;
2015-09-11 16:42:03
1544
转载 iOS编程——Core Animation使用详解。
一.重要参数bounds,frame,position属于基本的几何定位,相互之间数值变化会相互影响anchorPoint:单位参数(0-1)表示,变形(transform)时候的变换源点zPosition:相当于css中z-index的概念,Apple建议不要用这个来替代CALayer层次设置。cornerRadius:圆角二.几何变形(Trans
2015-09-01 11:19:21
623
原创 ios编程——使用抽屉MMDrawerController和系统手势interactivePopGestureRecognizer冲突的解决方法
在使用抽屉菜单 MMDrawerController的过程中,发现经常遇到一个问题:1.在不该出现侧滑的地方出现了侧滑;2.侧滑后pushviewcontroller卡住;排查了很久找到了问题,是navigationController中得interactivePopGestureRecognizer和MMDrawerController两者冲突导致的。我们通常开启边缘返回手势的方
2015-08-31 09:31:23
2338
原创 iOS编程——OC viewController 传值常用方法Delegate和Block的使用
写了个例子,简单介绍了下Delegate和Block的使用,注意点都在注释里,直接上代码了:1.FirstViewController.h:#import @interface FirstViewController : UIViewController@endFirstViewController.m:#import "FirstViewController.h"#
2015-08-24 13:05:03
2608
转载 iOS开发——OC常用的数据结构一览。
一. 在iOS开发中常用的结构体1. NSRange-一个范围结构体,location是位置,length是长度;{4,5},NSMakeRange(4,5);NSStringFromRange可以把它当NSString*返回2. NSSize-由一个CGSize被typedef过来,CGFloat是double类型typedef过来的,也由两个值组成:with
2015-08-18 21:22:53
5660
原创 iOS编程——Swift语法之 "?" 和 "!"
首先先让我们来了解下Swift中“nil”的含义:在OC中nil指的是一个空对象,它指向一个不存在的对象的指针;而在Swift中它表示的是一个不确定的值,含义是“值缺失”,"nil"只可以用于optionals类型的,比如下面的代码(结果在注释里): var oneString = "111" //Error: Cannot assign a v
2015-08-17 15:03:53
549
转载 单链表逆序:通过递归和循环实现。
单链表逆序 第二个题目是很经典的“单链表逆序”问题。很多公司的面试题库中都有这道题,有的公司明确题目要求不能使用额外的节点存储空间,有的没有明确说明,但是如果面试者使用了额外的节点存储空间做中转,会得到一个比较低的分数。如何在不使用额外存储节点的情况下使一个单链表的所有节点逆序?我们先用迭代循环的思想来分析这个问题,链表的初始状态如图(1)所示:图(1)初始
2015-08-13 16:35:56
675
原创 iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(Swift 优化版)
之前草草写了一篇OC版本的,再写Swift版本时发现好多可以优化的地方。今天先把Swift版本的和大家共享下,稍后再发一篇OC优化版 关于KeyChain有很多的相关资料,大家去网上看看,需要注意的是:1). kSecAttrServer可以作为一个搜索的Key来获取App KeyChain的对应Value;根据不同的kSecAttrServer来保存不同的Value,本例只保存了一个
2015-08-12 18:41:30
2202
原创 iOS开发——swift实现简单的全局键盘管理器
最近做一个demo,有一个需求:需要在点击UIViewController输入框的键盘上添加一个Bar,Bar上有三个按钮,按钮功能分别为:跳转到上个输入框、跳转到下个输入框、隐藏键盘。 我稍微想了实现过程中的思路;1、要有个独立的单例Manager来实现全局的管理,通过注册键盘和输入框的Notification来实现对键盘的监控;2、键盘上的ToolBar要有开关可以显示或者不显示,用i
2015-08-11 16:57:22
1702
原创 iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化。在iOS7以前是可以通过Mac地址来实现这个功能的,但是iOS7(包含)以后是无法获得Mac地址的;苹果官方推荐使用UUID,但是每次随着APP的卸载重装,UUID会随之发生变化,那该如何处理呢?我们需要一个能在app卸载重装后不会改变的值,而keyChain恰巧就可以做到。配合UUID就可以实
2015-08-10 18:03:12
1221
原创 OC语法——Object-C retain、copy、mutableCopy的详细分析
OC语法中的retain、copy、mutableCopy 大家都基本知道它的基本意思,但是对于mutable类型和immutable类型的处理上有很多童鞋并没有真正测试过,今天就和大家分享下:1.先来看下NSString下retain、copy和mutableCopy的测试 NSString *string = @"abc"; NSString *retainSt
2015-08-08 20:12:22
853
转载 iOS开发——如何切图适配各种机型
关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助! 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看
2015-08-06 17:19:55
4604
原创 iOS编程——Swift使用resizableImageWithCapInsets来拉伸图片
在做项目的过程中,经常要用到各种尺寸的图片。有的图片则是长度不同,但是他们的某些区域是相同的。那有没有什么方法可以不用美工来切好多张图,用一张就可以实现呢?这样既可以减轻美工工作量,又可以减少包得大小。 答案就是用resizableImageWithCapInsets。声明如下: func resizableImageWithCapInsets(capInsets: UIEdgeIn
2015-08-05 11:30:51
3361
原创 iOS编程——Swift用代码为view添加各种圆角
有时候需要给view添加一个圆角,我们常用的方法是 view.layer.cornerRadius = 10.0但是它是给view的四个角都添加了圆角。想在想办法给view的任意一个角都可以添加圆角。 最简单的方法就是用CAShapeLayer了,可以用它在view上添加一个mask来实现。首先,我们给UIView扩展一个方法,这样所有的view都可以共用了。类似于下面e
2015-08-05 10:40:19
4257
原创 iOS编程——简单的UI自动适配解决方案:Masonry
我现在常用的UI适配方案大约就两种了:1.StoryBorad的话用Autolayout+SizeClass,可是适配各种屏幕尺寸和横竖屏。 刚开始可能比较慢,熟悉了以后还是挺快的。2.纯代码的话就是用Masonry了,除了动画上可能有一些复杂,普通的UI适配还是很简单的。Masonry的简介可以看这里:http://www.cocoachina.com/ios/20141219/10
2015-08-04 15:13:37
675
转载 Swift语法—— where语句使用
类型约束中描述的类型约束确保你定义关于类型参数的需求和一泛型函数或类型有关联。对于关联类型的定义需求也是非常有用的。你可以通过这样去定义where语句作为一个类型参数队列的一部分。一个where语句使你能够要求一个关联类型遵循一个特定的协议,以及(或)那个特定的类型参数和关联类型可以是相同的。你可写一个where语句,通过紧随放置where关键字在类型参数队列后面,其后跟着一个或者多个针对关联
2015-08-04 13:56:09
904
原创 Swift语法——Swift Sequences 探究
今天看到Array 的API中有这么一个声明的函数: mutating func extend(newElements: S)函数名为extend, 所需参数是S类型的newElements, 而S首先要实现SequenceType协议。那SequenceType到底是什么呢?官方对SequenceType的声明API如下:protocol SequenceType : _
2015-08-03 17:47:34
498
原创 iOS编程——Swift实现 简单选择排序
冒泡排序是两两比较不断交换来实现排序,所以比较繁琐。而选择排序 则是先选择要交换的那个数,才去交换。这样就可以省去很多不必要的步骤。代码: func swap(inout array: [T], index1: Int, index2: Int){ var temp = array[index1] array[index1] = arra
2015-07-31 11:15:32
518
原创 iOS编程——Swift实现冒泡排序算法 以及优化
冒泡排序大家都很了解了,我的理解:其实就是倒序两两比较,把小的数依次往前放。执行完以后,再遍历剩下的n-1个数。其最坏情况的时间维度为O(n²)代码如下: func swap(inout array: [T], index1: Int, index2: Int){ var temp = array[index1] array[index1] = arr
2015-07-30 17:40:14
2971
原创 iOS编程——Swift实现一个3D可旋转的立方体(可做菜单页)
分享一个自己做的3d立方体(在瑞士航空见到过类似的这种首页),还可以添加以下要素变得更加完善:1)旋转过程中每个面的透明度可以更改2)手势滑动结束可以添加惯性转动动画 效果如图:直接上代码了 ,直接全粘贴到一个swift文件里既可以使用1.声明变量 公共函数import UIKitclass CubeMenuView: UIView {
2015-07-29 17:08:52
1934
原创 iOS编程——Swift实现常见的递归算法(爬楼梯)2
接上一篇递归算法博客,讲一下常见的一个爬楼梯问题:1.常见的一个简单写的爬楼梯问题为:一人要爬n个台阶,一步能爬1个台阶或者2个台阶,问:爬完n个台阶一共有多少种爬法?解析:这个人开始爬台阶时只可能有两种爬法:1):爬1个台阶,剩下的n-1个有f(n-1)种爬法;2):爬2个台阶,剩下的n-2个有f(n-2)中爬法;除了这两种爬法,没有其他的了,所以很明显f(n) =
2015-07-28 18:53:09
5743
原创 iOS编程——Swift实现一个3D圆型旋转菜单
今天在网到有人实现了一个旋转菜单,我用CAKeyFrameAnimation(position)和CABasicAnimation(transform.scale)也做了一个,和大家分享下,菜单支持奇数和偶数个,点击会旋转并缩放,图如下:实现代码:都在一个swift即可。1.先自定义一个UIButton类,添加两个属性import UIKitclass CustomBu
2015-07-28 14:21:31
2446
原创 iOS编程——Swift实现一个不断渐变的圆环
今天看了一位大牛的博客,试着写了一个不断渐变的圆环,如果理解了可以做弧形、直线等其他形状的颜色渐变进度条。1.声明所用变量,用了两个数组colorArray来显示 颜色渐变的过渡动画。(swift数组的copy没找到。。。。先那样代替吧)import UIKitclass CustomProgessView: UIView { let duration = 2.0
2015-07-26 19:49:31
1518
原创 iOS编程——Swift实现多段CAShapeLayer动画
今天看了一个例子,按照自己的思路用swift写了一个,跟大家分享下。执行完的结果如下(刚开始不知道怎么传动态图 - -!):这个实现的效果是 每点击一下屏幕,就会出现一段随机颜色的圆环接着之前的圆环旋转实现代码:1.新建swift文件,继承于UIView,内容如下:import UIKitclass CustomProgessView: UIV
2015-07-26 16:30:06
1295
原创 iOS编程——Swift实现常见的递归算法1
今天用swift实现了一些常见的递归函数,给大家分享下:1.n的阶乘 func recursive(n: Int) -> Int{ var sum = 0 if n == 0{ return 1 }else{ sum = n * recursive(n - 1)
2015-07-23 17:43:56
4395
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人