自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

田风有的博客

师傅领进门,修行靠个人

  • 博客(60)
  • 收藏
  • 关注

原创 Swift - 使用Contacts访问通讯录2(添加、修改、删除联系人)

1,添加新联系人下面程序启动后,自动往通讯录中新增一个联系人。这里除了设置联系人姓名、电话等基本信息外,还给其添加了个头像。12345678910111213141516171819202122

2017-05-17 13:38:37 1467

原创 Swift - 使用Contacts访问通讯录1(纯代码获取联系人)

在 iOS9.0 之前, 我们只能通过 AddressBook 框架来获取通讯录联系人信息。但 AddressBook framework 语法很奇怪,同时也十分难用。所以苹果从 iOS9.0 开始推出的全新的联系人框架 Contacts FrameWork 作为替代,同时将原来的 AddressBook 给废弃掉。Contacts FrameWork 同样包含两种访问通讯录的方式:

2017-05-17 13:36:59 2474

原创 iOS:WKWebView与UIWebView的区别

iOS8以后,苹果推出了新框架Wekkit,提供了替换UIWebView的组件WKWebView。使用WKWebView,速度会更快,占用内存少。WKWebView的特性:在性能、稳定性、功能方面有很大提升,直观体现是内存占用变少;允许JavaScript的Nitro库加载并使用(UIWebView中限制);支持了更多的HTML5特性;高达60fps的滚

2017-05-16 16:34:31 698

原创 MAC上charles使用教程总结

Charles是用来抓包的.安装请自行google, 天朝有破解版,需要更换软件的jar文件,文件路径笔者的版本是Paste_Image.png界面基本简介这个是设置Mac 代理的, 设置之后,Charles会自动抓取Mac上的网络请求设置页面这里有一些坑, 例如

2017-05-16 16:33:35 5591 1

转载 iOS常用的第三方库

下拉刷新EGOTableViewPullRefresh– 最早的下拉刷新控件。SVPullToRefresh– 下拉刷新控件。MJRefresh– 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl– XHRe

2017-05-16 16:32:48 6727

原创 【iOS10 SpeechRecognition】语音识别 现说现译的最佳实践

首先想强调一下“语音识别”四个字字面意义上的需求:用户说话然后马上把用户说的话转成文字显示!,这才是开发者真正需要的功能。做需求之前其实是先谷歌百度一下看有没有造好的轮子直接用,结果真的很呵呵,都是标着这个库深入学习的标题,里面调用一下api从URL里取出一个本地语音文件进行识别,这就没了? 最基本的需求都没法实现。今天整理下对于此功能的两种实现方式:首先看下识别请求的

2017-05-16 16:32:14 612

原创 OC项目中使用Swift

我新建了一个演示的OC工程,当然你可以使用你已经存在的OC的工程。如果我们想要在OC工程中使用Swift的代码,Swift的代码默认是使用module管理的,同样这里我们也需要把我们的Swift代码作为一个module暴露给我们的OC工程,修改下面的配置:上面的修改了一个配置项,有一个Product Module Name在后面会使用。在工程里面点击File

2017-05-16 16:31:13 294

原创 iOS- 详解文本属性Attributes

1.NSKernAttributeName:@10 调整字句 kerning 字句调整2.NSFontAttributeName :[UIFont systemFontOfSize:_fontSize] 设置字体3.NSForegroundColorAttributeName:[UIColor redColor] 设置文字颜色4.NSParagr

2017-05-16 16:30:44 304

原创 CABasicAnimation使用总结

实例化使用方法animationWithKeyPath:对 CABasicAnimation进行实例化,并指定Layer的属性作为关键路径进行注册。//围绕y轴旋转CABasicAnimation*transformAnima = [CABasicAnimationanimationWithKeyPath:@"transform.rotation.y"];设定动画

2017-05-16 16:30:15 718

原创 IOS 手势、手势响应器UIGestureRecognizer

手势,手势响应GestureRecognizer关于手势响应IOS中封装了一个类,能响应一般手势UIGestureRecognizer下面说一下这个UIGestureRecognizer 类这个类有几个子类,这几个子类分别表示几种不同的基本手势1、UITapGestureRecognizer //点击手势识别器,可以是点击一次,或多次都能识别2、UIPi

2017-05-16 16:29:48 391

原创 iOS开发-从app跳转到第三方应用和调用系统功能

//跳转到QQ客户端的相应聊天界面- (IBAction)ToQQ:(UIButton *)sender {UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];NSURL *url = [NSURL URLWithString:@"mqq://im/chat?chat_type=wpa&ui

2017-05-16 16:29:21 847

原创 RealReachability实时监听网络状态

RealReachability优势:离线模式对网络连接状态的要求比较苛刻,且实际场景经常会遇到“伪连接”的情况苹果提供的Reachability面对此场景力不从心。多方研究后引入了ping能力(此方案流量开销最小,也最简单),实现了简单的实际网络连接监测;后面经过提炼和优化,就有了这个框架。可以告诉大家的是,这个框架在appstore上架应用中已经经受了考验,且经过了长时间的测试,可

2017-05-16 16:28:18 1661

原创 从0到1思考与实现iOS-Widget

讲述之前首先看下demo效果图:基本的展开收起、本App本体交互然后再展示几个效果不错的 Widget app毒物 && KeepESPNPCalcMusixmatchFantastical 2

2017-05-16 16:27:40 218

原创 iOS与HTML5交互方法总结

看了不少别人写的博客或者论坛,关于iOS与HTML5交互方法大概主要有5种方式:1. 利用WKWebView进行交互(系统API)2. 利用UIWebView进行交互(系统API)3. 苹果的javascriptcore.framework框架;4. 跨平台cordova框架;5. oc第三方WebViewJavascriptBridge关于WK

2017-05-16 16:27:06 247

原创 iOS与Html5和JS之间的交互---学习笔记

首先采用的框架是WebViewJavascriptBridge,采用这套框架可以方便的使iOS与JS交互window.onerror=function(err) {log('window.onerror:'+err)}/*这段代码是固定的,必须要放到js中*/function setupWebViewJavascriptBridge(callback) {if(wind

2017-05-16 16:26:33 441 1

原创 简单易用的标签列表界面(宝宝用了都不哭了 )

Demo效果1:效果1.gifDemo效果2:效果2.gifDemo效果3:效果3.gifDemo演示:1.使用cocoapods引入YZTagListView,或者直接拖入YZTagListView文件夹到项目中2.导入YZTagListView.h头文件#impo

2017-05-16 16:22:35 281

原创 教你实现GPUImage【OpenGL渲染原理】

一、GPUImageVideoCamera可以捕获采集的视频数据关键是捕获到一帧一帧视频数据如何展示?通过这个方法可以获取采集的视频数据-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromCo

2017-05-16 16:21:53 1338

原创 【如何快速的开发一个完整的iOS直播app】(点赞功能)

客户端代码点击小红心,发送socket给服务器,并且要传递房间Key给服务器,通知给哪个主播点赞,就能传入到对应的分组socket中怎么传递房间key,房间Key在主播界面,一般一个客户端,只会产生一个房间,可以记录到socket对象中业务逻辑:用户点击小红心,小红心就会往上慢慢飘。实现原理:其实就是一个动画。怎么实现:用UIView做不了,因为小红心是

2017-05-16 16:21:17 817

原创 【如何快速的开发一个完整的iOS直播app】(编解码原理)

为什么要编码编码就是压缩图像手机摄像头采集的都是一帧一帧的图片,只要每秒采集了24帧,看起来就比较流畅,视频就是由一帧一帧的图片构成的,常见图片格式png,jpg,一张图片2M,一秒钟30帧,那么1秒就是60M,这么多保存到本地是没问题,但是进行网络传输,尤其是在外网传输,每一秒传输60M,在中国是不可能达到这个带宽,那这时候就要对每一帧图象进行压缩带宽:每秒网络传输的

2017-05-16 16:20:49 380

原创 【如何快速的开发一个完整的iOS直播app】(礼物篇)

搭建礼物列表使用modal,设置modal样式为custom,就能做到从小往上显示礼物列表,并且能看见前面的直播界面礼物模型设计一开始创建3个礼物模型,保存到数组,传入给礼物View展示,本来礼物数据应该从服务器获取,这里没做了。到时候拿到礼物View就能拿到对应按钮,传给服务器就好了.礼物模型设计礼物模型用户模型(userID,user

2017-05-16 16:20:23 2701

原创 如何快速的开发一个完整的iOS直播app】(创建房间)

直播(创建房间)1.进入主播界面,首先创建房间2.设计房间模型(key,名称),key作为房间的唯一标识,用来找到房间3.用socket创建房间,导入socket.io框架4.一般一个客户端一个socket就好了,可以搞个全局的socket5.客户端代码(需要封装) 1.一个获取全局的socket 2.一个连接方法封装6.可以在程序一启动的时候,

2017-05-16 16:19:50 810

原创 直播预览层(AVCaptureVideoPreviewLayer)底层实现

分析sampleBuffer(帧数据)通过设置AVCaptureVideoDataOutput的代理,就能获取捕获到一帧一帧数据[videoOutputsetSampleBufferDelegate:selfqueue:videoQue];拿到这一帧一帧数据(sampleBuffer)怎么显示到屏幕上了-(void)captureOutput:(AVCaptur

2017-05-16 16:19:15 1599

原创 直播预览层添加滤镜效果(CIFilter使用场景)

直播预览层添加滤镜效果原理,在显示之前,提前对图片进行滤镜处理,把处理后的图片展示出来就好了.CIFiter(滤镜类):给图片添加特殊效果(模糊,高亮等等).CIFiter滤镜分类(一个滤镜可能属于多个分类)kCICategoryDistortionEffect 扭曲效果,比如bump、旋转、holekCICategoryGeometryAdjustme

2017-05-16 16:18:49 2989

原创 【如何快速的开发一个完整的iOS直播app】(搭建Socket即时通讯服务器)

即时通讯即时通讯(Instant messaging,简称IM)是一个终端服务,允许两人或多人使用网路即时的传递文字讯息、档案、语音与视频交流即时通讯技术原理(了解Socket)Socket介绍: 套接字或者插座,用于描述IP地址和端口号,是一种网络的通信机制。Socket作用: 网络通信底层都是通过socket建立连接的,因为它包含IP和端口,只要有这两个就能

2017-05-16 16:18:19 437

原创 【如何快速的开发一个完整的iOS直播app】(搭建Web服务器)

Web服务器能处理HTTP请求的服务器都可以叫Web服务器Node.js介绍Node.js什么时候出现,2009年,Ryan Dahl(瑞恩·达尔)在GitHub上发布了最初版本的部分Node.js包,随后几个月里,有人开始使用Node.js开发应用什么是Node.js,做过Javascript开发的,看到Node.js这个名字,初学者可能会误以为这是一个Jav

2017-05-16 16:17:47 848

原创 【如何快速的开发一个完整的iOS直播app】(推流篇)

一、安装HomebrewHomebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件。1、打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令*man命令:manual(手册)的缩写,可以查看某一命令的帮助信息,比如git,brew,顺便可以查看有没有按照这个命令.man brew

2017-05-16 16:17:11 1175

原创 【如何快速的开发一个完整的iOS直播app】(美颜篇)

利用GPUImage处理直播过程中美颜的流程采集视频 => 获取每一帧图片 => 滤镜处理 => GPUImageView展示美颜原理.png美颜基本概念GPU:(Graphic Processor Unit图形处理单元)手机或者电脑用于图像处理和渲染的硬件GPU工作原理:采集数据-> 存入主内存(RAM) -> CPU(计算处理)

2017-05-16 16:16:23 411

原创 【如何快速的开发一个完整的iOS直播app】(采集篇)

为了采集效果图,我也是豁出去了,请忽略人物,关注技术。忽略本人.png基本知识介绍AVFoundation: 音视频数据采集需要用AVFoundation框架.AVCaptureDevice:硬件设备,包括麦克风、摄像头,通过该对象可以设置物理设备的一些属性(例如相机聚焦、白平衡等)AVCaptureDeviceInput:硬件输入对象,

2017-05-16 16:14:44 823

原创 【如何快速的开发一个完整的iOS直播app】(播放篇)

效果直播.gif一、基本知识README.md文件:框架的描述文件,描述这个框架怎么使用编译语言:程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要翻译,所以编译型语言的程序执行效率高,比如OC,C,C++解释性语言:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这

2017-05-16 16:11:32 576

原创 【如何快速的开发一个完整的iOS直播app】(原理篇)

一、个人见解(直播难与易)直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年的。直播易:已经有各个领域的大牛,封装好了许多牛逼的框架,我们只需要用别人写好的框架,就能快速的搭建一个直播app,也就是传说中的站在大牛肩膀上编程。

2017-05-16 16:08:01 628

原创 React Native从源码解析它的实现原理及JavaScriptCore详解

一、React Native背景 有没有朋友想过一个问题,为什么取名React Native?React是什么,Native又是什么? React React 是由Facebook推出的一个JavaScript框架,主要用于前段开发。 React 采用组件化方式简化Web开发 DOM:每个HTML界面可以看做一个DOM 原生的web开发方式,HT...

2017-05-16 16:07:03 683

原创 Mac OS X 配置 Apache+Mysql+PHP 详细教程

工具/原料以 Mac OS X Mavericks 10.9.X 为例。一、启动 ApacheMac OS X 系统已经集成了 Apache+PHP 环境,依次进入“系统偏好设置 -> 共享” ,开启“Web 共享”,就可以打开 Apache。但新版的 Mac OS X 中,苹果取消了这个共享功能的图形界面,只能从命令行开启。在终端里输入命令,启动 Ap

2017-05-16 16:06:30 221

原创 -九个问题从入门到熟悉HTTPS

Q1: 什么是 HTTPS?一: HTTPS 是安全的 HTTPHTTP 协议中的内容都是明文传输,HTTPS 的目的是将这些内容加密,确保信息传输安全。最后一个字母 S 指的是 SSL/TLS 协议,它位于 HTTP 协议与 TCP/IP 协议中间。Q2: 你说的信息传输安全是什么意思BS: 信息传输的安全有三个方面:客户端和服务器直接的通信只有自己能

2017-05-16 16:05:58 292

原创 TCP/IP(六):HTTP 与 HTTPS 简介

本文是准备面试过程中网络部分总结整理的最后一篇文章,主要介绍以下知识:HTTP 协议概述POST 请求和 GET 请求Cookie 和 Session数据传输时的加密HTTPS 简介HTTP 协议在 OSI 七层模型中,HTTP 协议位于最顶层的应用层中。通过浏览器访问网页就直接使用了 HTTP 协议。使用 HTTP 协议时,客户端首先与

2017-05-16 16:05:27 317

原创 TCP/IP(五):TCP 协议详解

数据包重发数据发送丢包重发的前提是发送方能够知道接收方是否成功的接收了消息。所以,在 TCP 协议中,接收端会给发送端返回一个通知,也叫作确认应答(ACK),这表示接收方已经收到了数据包。根据上一节对 TCP 首部的分析得知,ACK 的值和下次发送数据包的序列号相等。因此 ACK 也可以理解为:“发送方,下次你从这个位置开始发送!”。下图表示了数据发送与确认应答的过程:

2017-05-16 16:04:58 255

原创 TCP/IP(四):TCP 与 UDP 协议简介

传输层协议简介常见的传输层协议主要有 TCP 协议和 UDP 协议。TCP 协议是面向有连接的协议,也就是说在使用 TCP 协议传输数据之前一定要在发送方和接收方之间建立连接。一般情况下建立连接需要三步,关闭连接需要四步。建立 TCP 连接后,由于有数据重传、流量控制等功能,TCP 协议能够正确处理丢包问题,保证接收方能够收到数据,与此同时还能够有效利用网络带宽。然而 TCP

2017-05-16 16:04:24 251

原创 TCP/IP(三):IP协议相关技术

DNS 解析IP地址用于识别通信双方的地址,但它是一串长数字,不方便记忆,人们希望主机有自己自己的名字,这个名字是唯一的,而且容易记住。于是,诞生了“域名”的概念。域名是一种为了识别主机名称和机构名的具有分层的名称,比如在域名neu.edu.cn中,neu是主机名,edu和cn是不同层次下的机构名。域名和 IP 地址都可以唯一对应一台主机,DNS 协议的作用就是将自身具有意义的

2017-05-16 16:03:23 404

原创 TCP/IP(二):IP协议

IP地址IP地址是一种在网络层用于识别通信对端信息的地址。它有别于数据链路层中的MAC地址,后者用于标识同一链路下不同的计算机。举一个形象的例子,我要从镇江的家里去沈阳的东北大学,通信两端的地址分别是家和学校,他们相当于IP地址。然而没有交通工具可以让我从家直接去学校,所以我先要打车去火车站,然后坐高铁到沈阳站,再转公交去学校。这三次中转分别属于三种交通方式(数据链路),每一次

2017-05-16 16:02:37 401

原创 TCP/IP(一):数据链路层

OSI七层模型和协议在这一节中,我们不谈这些层和协议的具体作用,目前只要知道 OSI 模型中,网络被分为七层,由底层向高层依次是:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。协议是一个 Big 很高,出现很频繁的词。其实它很好理解,它实际上是一种通信双方共同遵守的规范。比如我需要把性别和年龄传递给另外一台主机,那么我可以定义一个"A 协议",协议规定数据的前 4

2017-05-16 16:01:14 264

原创 ReactiveCocoa 在更新 5.0.0以上注意事项

RAC 5.0 相比于 4.0 有了巨大的变化,不仅是受 swift 3.0 大升级的影响,RAC 对自身项目结构的也进行了大幅度的调整。这个调整就是将 RAC 拆分为四个库:ReactiveCocoa、ReactiveSwift、ReactiveObjC、ReactiveObjCBridge。ReactiveCocoa现在的 RAC 注意力主要集中在 Swift 和 UI 层上,

2017-05-16 16:00:32 466

空空如也

空空如也

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

TA关注的人

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