自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

颜忠贤 JoesRain

iOS开发者,希望跟大家讨教,相互学习

  • 博客(26)
  • 资源 (7)
  • 收藏
  • 关注

转载 iOS 高效添加圆角效果实战讲解

圆角(RounderCorner)是一种很常见的视图效果,相比于直角,它更加柔和优美,易于接受。但很多人并不清楚如何设置圆角的正确方式和原理。设置圆角会带来一定的性能损耗,如何提高性能是另一个需要重点讨论的话题。我查阅了一些现有的资料,收获良多的同时也发现了一些误导人错误。本文总结整理了一些知识点,概括如下:设置圆角的正确姿势及其原理设置圆角的性能损耗其他设置圆角的方法

2016-04-21 23:27:13 376

转载 多线程之NSThread、NSOperation、NSInvocationOperation

IOS中支持多线程操作,使用NSThread和NSInvocationOperation可以完成多线程功能。多线程的功能主要是为了防止阻塞主线程的工作(主要是UI操作和显示),使一些耗时的的操作在另一个线程中完成,完成后可以通知主线程来进行UI上的更新。多线程功能在实际开发中用的很多,最典型的就是网络请求和处理操作,下面主要来讨论一下Cocoa中的NSThread和NSInvocationOper

2016-04-21 17:09:18 236

原创 CocoaPods 安装 使用

1.电脑安装cocopods$ gem sources --remove https://rubygems.org/$ gem sources -a https://ruby.taobao.org/$ gem sources -l$ sudo gem install cocoapods$ pod setup2.项目工程安装podplatform :ios,

2016-04-21 14:39:05 277

原创 iOS 排序方法

一般分为三种:第一种 使用sortedArrayUsingSelector排序    SEL sel = @selector(compare:);    arr = [arr sortedArrayUsingSelector:sel];第二种 使用 sortedArrayUsingDescriptors排序NSSortDescriptor *sorter = [[N

2016-04-21 12:51:48 314

转载 通知与消息机制

概述在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情。iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同。今天就和大家一块去看一下如何

2016-04-20 17:34:14 428

原创 ios 音视频处理优化总结

做了那么多年C底层,现在做iOS上层,感觉还是有很多优势的。做底层的时候就做过音视频的东西,上层有很多类似,相通的东西。公司做了个视频软件,实时监控。程序丢包严重,卡顿,还会黑屏。我接手之前就是这个样子。经过一天的摸索,结合之前看了一天的经验,把丢包问题,黑屏问题跟卡顿问题通通解决了。         由于代码不是我写的,我想了个很初级的办法,在所有音视频关键函数打上断点(对xcode来说

2016-04-19 22:40:27 4139

转载 GCD之dispatch queue深入浅出

iOS中多线程编程工具主要有: NSThreadNSOperationGCD这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势).http://www.cnblogs.com/scorpiozj/archi

2016-04-19 14:14:44 289

原创 TCP/UDP 学习

毕业这么些年,啥都学了一点,平时总结太少。学了就忘记了,吃了大亏。复习下TCP/UDP,其实很多东西大家都知道概念,也清楚大概怎么回事。但是没有深刻的印象,这将导致很多问题,面试的时候手足无措,干捉急,工作的时候,到处查资料,浪费时间。        首先复习下TCP/IP参考模型,它分为四层,应用层,传输层,网络层跟网络接口层。应用层负责应用程序的网络访问,通过端口号来识

2016-04-18 23:49:43 448

转载 UICollectionViewLayout

这是博主的WWDC2012笔记系列中的一篇,完整的笔记列表可以参看这里。如果您是首次来到本站,也许您会有兴趣通过RSS,或者通过页面左侧的邮件订阅的方式订阅本站。在上一篇UICollectionView的入门介绍中,大概地对iOS6新加入的强大的UICollectionView进行了一些说明。在这篇博文中,将结合WWDC2012 Session219:Advanced Collecti

2016-04-17 23:05:50 327

转载 iOS8自动调整UITableView和UICollectionView布局

本文讲述了 UITableView 、 UICollectionView 实现self-sizing cell布局的知识,以及如何用InvalidationContext优化 UICollectionView 布局的更新。背景iOS越来越人性化了,用户可以在设置-通用-辅助功能中动态调整字体大小了。你会发现所有iOS自带的APP的字体大小都变了,可惜我们开发的第三方APP依然是

2016-04-17 23:04:55 409

转载 UICollectionView自定义Layout之蜂窝布局

自定义Layout ?123456789101112131415161718////  HoneyCombLayout.h//  Demo-Layouts//

2016-04-17 23:02:12 679

转载 IOS_CGContextAddArcToPoint与CGContextAddArc

这两个函数是绘制圆弧的函数。第一个函数比较好理解,第二个函数让我在纸上画了半天才搞明白,把我的理解给大家分享下。 void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise)   CGCon

2016-04-17 22:40:57 297

转载 iOS 8 自适应 Cell

在使用 table view 的时侯经常会遇到这样的需求:table view 的 cell 中的内容是动态的,导致在开发的时候不知道一个 cell 的高度具体是多少,所以需要提供一个计算 cell 高度的算法,在每次加载到这个 cell 的时候计算出 cell 真正的高度。在 iOS 8 之前没有使用 Autolayout 的情况下,需要实现 table view delegat

2016-04-17 22:34:35 339

原创 MBProgressHUD 使用的KVO分析

#pragma mark - KVO//注册KVO被观察者需要被观察的属性,添加传值给被观察者出来方法的传值选项,传新值还是旧值,还是两个都传。- (void)registerForKVO {for (NSString *keyPathin [selfobservableKeypaths]) {[selfaddObserver:selfforKeyPath:keyP

2016-04-17 20:58:36 397

转载 KVO/KVC 实现机理分析

全称: Key Value Observing在ios里,可以添加观察者模式,来实现某个property更改后,通知指定的类。然后到observeValueForKeyPath:ofObject:change:context:提供处理1 [object addObserver: observer forKeyPath: @"frame" options: 0 context

2016-04-17 20:27:39 292

转载 关于ios中的setNeedsDisplay和setNeedsLayout

文章转自:http://blog.csdn.net/xie_kun/article/details/7270546    我们可能对这两个命令并不陌生,setNeedsDisplay调用drawRect方法来实现view的绘制,而setNeedsLayout则调用layoutSubView来实现view中subView的重新布局,问题是为何要如此设计呢,直接调用drawRect和layou

2016-04-17 19:05:56 307

转载 iOS的socket开发基础

socket简介首先让我们通过一张图知道socket在哪里?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。tcp和udp的区别在这里就必须讲一下udp和tcp的区别了TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。UDP:

2016-04-17 13:45:03 335

转载 iOS解决json串中的NSNull类型

后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串。下面是转化方法:1 自定义的几个方法:放在NSDictionary类别中#pragma mark - 私有方法//将NSDictionary中的Null类型的项目转化成@""+(NSDictionary *)nullDic:(NS

2016-04-17 13:25:21 386

转载 iOS开发之即时通讯之Socket(AsyncSocket)

转载http://my.oschina.net/joanfen/blog/287238摘要 ios socket第三方框架 AsyncSocket使用简介,连接,心跳,断线,数据发送与接收iOS socket AsyncSocket 即时通讯目录[-]环境使用1. socket 连接2. socket 断开连接与重连3. sock

2016-04-17 12:24:03 765

转载 iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD

1、简介:1.1 iOS有三种多线程编程的技术,分别是:1.、NSThread 2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)3、GCD  全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)这三

2016-04-16 23:57:33 551

转载 iOS RunLoop 初识

今天突然才之间才意识到NSTimer这样的运行方式,是在多线程中实现的循环还是在主线程中去实现的呢。当然不可能是在主线程中的while那么简单,那样什么都干不了,简单看了下NSTimer是以同步方式运行的。时间到了,消息发出后,ontimer的函数是在主线程上调用的。我们会经常看到这样的代码:- (IBAction)start:(id)sender  {  pageStil

2016-04-16 23:47:36 273

转载 内存引用计数

1.什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间。比如回收一些不需要使用的对象、变量等管理范围:任何继承了NSObject的对象需要去管理内存,但是对于对其他基本数据类型(int、char、float、double、struct、enum等)结构,枚举等不用去关心内存

2016-04-16 21:50:00 448

转载 block 对外部引用变量的处理

引用地址:博客园http://www.cnblogs.com/tangbinblog/p/4146728.html                             MRC 环境一、静态变量 和 全局变量   在加和不加  __block 都会直接引用变量地址。也就意味着 可以修改变量的值。在没有加__block 参数的情况下。全局block 和 栈block

2016-04-16 17:28:17 940

原创 某公司面试block

对于block的使用很多人用过,但是要深入,还有些路要走。    NSString *str =@"text";    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{        NSLog(@"///

2016-04-16 16:38:55 384

转载 Push的原理及证书生成

网页转载自http://blog.163.com/juan_19886/blog/static/27830110201352224442764/Push的原理及证书生成:http://zxs19861202.iteye.com/blog/1532460Push 的工作机制可以简单的概括为下图   图中,Provider是指某个iPhone软件的Push服务器,这

2016-04-05 11:55:57 1072

原创 UITableViewCell 复杂时,高度计算优

方法1:简单粗暴,利用新的api接口 systemLayoutSizeFittingSize          我们声明一个存计算Cell高度的实例变量:@property (nonatomic, strong) UITableViewCell *prototypeCell; 然后初始化它:self.prototypeCell  = [self.tabl

2016-04-05 10:10:37 425

html 上显示tif格式的图片

html 上显示tif格式的图片,需要的可以下载。

2018-10-18

优化版,腾讯IM,便于集成开发

腾讯IM集成DEMO 优化,便于集成开发,在项目中使用相当的方便。

2017-11-16

iOS 6编程实战

iOS 6编程实战

2016-08-17

iOS 5核心框架

iOS 5核心框架

2016-08-17

iOS 音频队列录音

iOS 音频队列 录音

2016-08-15

GitStack 破解

2016-06-22

仿code4app客户端

欢迎大家下载,探讨学习。初学者,所以花了我一点时间。

2014-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除