- 博客(111)
- 资源 (7)
- 收藏
- 关注
原创 WLCCornerRadius-一款简易高效的圆角组件
闲来无事,撸了一个圆角组件,支持设置圆角和边框,github地址:https://github.com/wanglichun/WLCCornerRadiusWLCCornerRadiusA very simple but high performance way to set corner for UIImageView.CocoaPods:pod 'WLCCornerRadius', '~>...
2018-02-12 14:59:42 576
原创 iOS中的并发编程
并发编程是iOS中的一项很重要的基础技术,iOS并发编程分为三个层面,NSThread、GCD和NSOperationQueue。这篇文章简单介绍了NSThread、GCD和NSOperationQueue,引出苹果GCD的开源相关知识。
2016-06-06 16:40:33 707
原创 iOS开发--3D Touch使用代码实例
iOS系统9.0以上并且6s以及6sp才支持3D Touch功能,实现该功能很简单,两步即可轻松搞定。假设我们3D Touch包括"通讯录"、“广场”、“聊天”三个选项。第一步初始化选项- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOp
2016-03-09 17:34:09 1341
原创 git branch的使用
分支的创建,删除和切换 你可以用如下命令创建分支 git branch 切换到新的分支 git checkout 或者直接使用这个命令创建并切换到新分支 git checkout -b git分支的正确用法1、从master分支直接创建test分支并切换到test分支(这里是本地分支)
2016-01-16 15:31:45 930
原创 iOS开发--异步在主线程中执行block的几种方法总结
1、GCD的dispatch_asyn方法 dispatch_asyn(dispatch_get_main_queue, ^{ // do something }); 该方法用的最为普遍,AFNetworking和SDWebImage等很多开源库都采用这种方式,如AFNetworking dispatch_async(di
2016-01-16 14:45:29 9525
原创 快速搭建个人博客系统
1、在万网上购买域名,目前购买了两个:sringcome.com.cn和springcome.org。cn的域名购买之后需要上传身份证照片备案,审核通过大概需要两三个工作日,比较麻烦,所以不到万不得已,推荐大家购买com和net域名。2、在阿里云上购买服务器,我买的是ecs,配置为单核512内存加1M带宽ubuntu12.04系统,价格有点贵,暂时购买了半年。3、购买了域名
2016-01-15 23:36:26 1562
原创 iOS开发--抛物线动画
// 抛物线关键帧动画 CAKeyframeAnimation *keyframeAnimation=[CAKeyframeAnimation animationWithKeyPath:@"position"]; CGMutablePathRef path = CGPathCreateMutable(); CGPathMoveToPoint(path, NULL, laye
2015-10-28 14:18:40 5681
原创 TCP/IP详解之IP首部
4位版本号:目前的协议版本号是4,IPV4的由来。4位首部长度:首部占32 bit字的数目,也就是说单位为4字节,4位能够表达的最大数值为15,为此首部最长为60个字节。当然,这里除开某些带有选项的首部外,普通的IP首部长度的为5,即20个字节。8位服务类型(TOS):3位的优先权子字段(现在已被忽略),4位的TOS字字段和1位未用但必须置0。4位的TOS分别代表:最小延时,最大吞吐量
2015-10-27 23:45:44 1145
原创 iOS开发--UITableView流畅性优化
1.cell重用2.永远不要阻塞主线程,图片加载都放到后台线程中3.cell里尽量不要用UIView而是全部自己画4.cell里的要用的数据提前缓存好,不要现用现去读文件,提前计算cell高度,并缓存起来。其他小点:圆角 阴影 透明效果要特别处理。
2015-10-27 23:43:36 699
原创 iOS开发--OC对象模型你必须知道的几条规则
1.每一个对象都有一个isa的指针,指向该对象的类。2.每一个类描述了一系列它的实例的特点,包括成员变量的列表、成员函数的列表等。3.每一个对象都可以接收消息,而对象能够接收的消息列表保存在它所对应的类中。4.每个类也有一个名为isa的指针,每个类也可以接收消息。5.类也是一个对象,所以它也必须是另一个类的实例,这个类就是元类。元类保存了类方法列表。当一个类方法被调用时,元类会首先
2015-10-25 22:55:35 1079
原创 iOS开发--手把手教你制作音乐播放器
iOS开发系列, OC实现的迷你音乐播放器,包括基础音乐播放的基础功能:播放、暂停、上一首和下一首,除此之外还实现了歌词的滚动显示、进度更新、后台播放、远程控制以及来电处理等扩展功能。
2015-10-25 09:53:20 9708
原创 iOS开发--http请求设置Cookie
在设置Cookie之前,先让我们了解一下通用Cookie格式,多个Cookie的格式通常为:cookie1=value1; cookie2=value2; cookie3=value3;这里特别要注意,多个cookie之间用分号+空格分隔开,不是&也不是单纯的空格。
2015-07-14 20:39:42 8044
原创 iOS开发--漫谈内存管理(一)
1、MRC与ARC 苹果提供两种内存管理机制:一种是MRC(manual reference count),即手动引用计算;另一种是ARC(auto reference count),即自动引用计数。手动引用计,顾名思义,需要程序员主动调用retain、release等方法来管理内存,而自动引用计数方式,则是编译器在编译阶段把内存管理代码自动插入在需要手动调用的地方。这样就把程序员从复杂的
2015-06-28 18:07:12 886
原创 iOS开发--UITextField限制输入文字的个数
项目需要输入框的文字最多为4个,为了实现这个功能,在网上把资料翻遍了,没有一个能用的。后来不得不自己实现,折腾了好久,终于搞定了。小技巧分享给大家。代码如下:static constNSInteger Max_Character_Num = 4;- (IBAction)onTextFieldEditingChanged:(id)sender{ NSString *la
2015-04-24 20:48:59 1964
原创 iOS开发--自定义列表控件(UITableView)
首先要说明一下,这里的自定义列表控件,并不是我们平常所指的通过自定义cell达到不同的效果的UITableView,而是指完全从零开始,自己重新实现一个类似与UITableView的列表控件。不得不承认,这是在重复发明轮子,而且发明的轮子还没已有的好,但是通过这一实现过程,我们可以深入到列表实现的内部,摸清UITableView、UITableViewDelegate、UITableViewDataSource以及UITableView之间的关系。 从动工到初步完成大概花了一天时间,目前实现了列表的
2015-04-24 20:29:03 2218
原创 iOS开发--根据文字动态调整按钮(UIButton)宽度
CGRect mainBounds = [[UIScreen mainScreen] bounds]; UIFont *font = [UIFont systemFontOfSize:15.0f]; CGRect locationBtnFrame = self.locationButton.frame; CGFloat maxWidth = mainBounds.
2015-03-27 11:35:08 12543
原创 iOS开发--大众点评API请求签名生成代码示例
参考文档:http://developer.dianping.com/app/documentation/signature+ (NSDictionary *)parseQueryString:(NSString *)query { NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:6];
2015-03-24 16:16:49 2068
原创 iOS开发--MKMapView截图
地图控件MKMapView由于要从网络上加载地图数据并在内存中缓存,因此通常占用的内存开销特别大,特别是当用户进行放大缩小、快速拖动、3d旋转时,内存基本呈直线上升,单个地图控件占用百兆内存不成问题。 假设在一个UITableView中,每个Cell的宽度和高度分别为320、150,每个Cell中都放置一个高度为320*150的MkMapView,采用Cell重用的方式,这种情况下iPh
2015-01-24 14:25:51 3150
原创 iOS开发--MKMapView添加UIPanGestureRecognizer
当我们想给MKMapView添加拖动手势时,第一个想法可能是这样:- (void)viewDidLoad{ //.... UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [s
2015-01-22 01:33:48 2666
原创 iOS开发--监测网络变化
通常在APP的某些界面,需要通过网络获取数据更新界面。应用程序通过建立网络状态监听,当网络从断开变为连接状态后,自动刷新页面数据,因此不需要用户手动刷新页面,提升了产品的用户体验。
2015-01-17 11:50:47 1810
原创 iOS开发--删除本地相册照片
void (^completionHandler)(BOOL, NSError *) = ^(BOOL success, NSError *error) { if (success) { NSLog(@"delete success"); } else { NSLog(@"Error: %@", error);
2014-12-30 19:30:02 8244
转载 剖析Windows消息处理机制
1.窗口 Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
2014-11-04 19:53:05 743
原创 定制属于自己的Chrome起始页
个人感觉没什么技术含量,但是非常实用,我自己的起始页效果如下图:步骤很简单:一、用记事本自己写一个静态的html二、将自己的html配置到起始页,参照http://www.henghengzhu.com/share/158.htmlhtml源码如下: 我的起始页 搜索: Google 百度 sta
2014-09-30 17:01:14 4501
原创 列表控件实现原理解析
一句话总结一下列表控件的运行原理:滚动条所在位置的物理高度,换算为逻辑高度,根据逻辑高度计算当前数据的显示范围,然后将范围内的数据显示在客户区内。因此我们平常拖动滚动条或是鼠标滚动,客户区内容能够发生变化,其实就是上面原理作用的结果。
2014-09-30 16:03:50 1766
转载 Git远程操作详解
摘要:Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。【编者按】Git是一个分布式版本控制/软件配置管理软件,原是Linux内核开发者林纳斯·托瓦兹(Linus Torvalds)为更好地管理Linux内核开发而设计。Git是目前最流行的版本管理系统,学会Git几乎成了开发
2014-07-18 23:34:05 799
转载 Android设计模式系列--适配器模式
转载自:http://www.cnblogs.com/qianxudetianxia/archive/2012/02/27/2010965.html 对于android开发者来说起,适配器模式简直太熟悉不过,有很多应用可以说是天天在直接或者间接的用到适配器模式,比如ListView。ListView用于显示列表数据,但是作为列表数据集合有很多形式,有Array,有Cursor,我们需要
2014-05-09 19:51:39 769
转载 《JAVA与模式》之观察者模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这
2014-05-09 13:28:28 762
转载 详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两
2014-04-27 11:56:32 704
转载 JAVA中的static、final关键字
、static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之
2014-04-27 01:10:19 807
转载 Python的设计理念和优缺点
可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。 Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peter
2014-04-26 00:54:54 4638
原创 解决zxing “Could not find class 'com.goole.zxing.Result”和“Multiple dex files define”问题
刚学android应用程序开发,就遇到扫描二维码功能,比较棘手。goole了下,有个不错的开源库zxing,里面包含了二维码扫描功能。具体怎么使用,csdn上的博客http://blog.csdn.net/xiaanming/article/details/10163203《Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果》讲的比较详细,就不赘述了。这里主要
2014-04-24 12:32:21 3451 1
转载 深入浅出单实例Singleton设计模式
转自:前序单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统中只能出现一个实例。当然,作为一个技术负责人的你,你当然有权利通过
2014-04-20 10:46:22 758
转载 mysql 插入中文乱码解决方案
总结的很好!转自http://www.cnblogs.com/pricks"MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。下面
2014-03-20 10:24:10 967
原创 vs2008导出word实例
VS2008导出word实例,有图有真相......操作系统:win7office word版本:2010程序类型:基于对话框的MFC应用程序
2014-02-22 11:13:40 3489
原创 MySql5.5忘记root密码的解决方法
试了很多方法,下面这种方法是确保可以成功的,呵呵。转载自:http://hi.baidu.com/bjben/item/722bb50b27baf1dcdde5b097。申明:本文章应该属于转载,但考虑到让更多读者看到,我改成了原创,希望原作者多多见谅。操作系统:windows操作系统,xp或win7.1.dos命令行窗口 进入e:\mysql5.5\bin ,
2013-10-30 11:31:57 5852
转载 c++之菱形继承
前天和大学室友吃烧烤,其中谈到菱形继承的问题,突然发现脑中对这个几乎空白,所以晚上回来就上网搜了搜,言归正传,说到菱形继承,就要说到虚继承的概念,对于虚继承,就是为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避
2013-09-12 20:58:47 980
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人