自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 资源 (2)
  • 收藏
  • 关注

原创 iOS--环信修改会话列表和聊天的头像昵称(无需自己的服务器)

之前写这块时,服务器给返回头像和昵称,但是过了几天,后台又出问题,让自己写,欺负老实人啊!不和他们见识,把代码整理一下,能用,有问题可以直接留言。环信的集成什么的都略过,直接看界面的代码一.会话列表 如图1.和之前说的一样,消息列表界面不需要自己写,直接继承环信的EaseConversationListViewController并且遵守协议<EaseConversatio...

2019-03-26 10:17:46 1240

原创 iOS--环信集成并修改头像和昵称(需要自己的服务器)

一、环信集成使用Cocopods导入: pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git' pod 'Hyphenate'二、初始化SDK//AppKey:注册的AppKey,详细见下面注释。 //apnsCertName:推送证书名(...

2019-03-26 09:58:35 763

原创 iOS 强制屏幕实现旋转功能,超级简单。

最近再做视频播放,由于之前老项目里的屏幕旋转有些bug,不得不处理,于是查阅了大量资料,最终完美解决。1.创建工程,设置Device Orientation 2.在AppDelegate中实现下面这个方法:此属性默认是NO,在需要旋转的界面将属性设置为YES.3.到了最关键的时候了,进入你需要旋转的当前视图控制器:此方法每次横竖屏切换都会去调用。还没有完

2017-08-18 11:00:45 8756 1

原创 iOS 使用信号量来处理多图片上传

信号量就是一个资源计数器,对信号量有两个操作来达到互斥,分别是P和V操作。 一般情况是这样进行临界访问或互斥访问的: 设信号量值为1, 当一个进程1运行是,使用资源,进行P操作,即对信号量值减1,也就是资源数少了1个。这是信号量值为0。系统中规定当信号量值为0是,必须等待,知道信号量值不为零才能继续操作。 这时如果进程2想要运行,那么也必须进行P操作,但是此时信号量为0,所以无法减1,即不能P操作

2017-08-10 18:56:52 1345

原创 iOS Quart2D绘图之UIGraphicsGetCurrentContext基础

某天,你正在上班ing……这个时候老大过来了,“小王啊,这个按钮太丑了,客户要求变成五角星形状的,UI没空给你切图,你给我完成这个需求啊”,说完便头也不回的走了,留下你一个人在冷风中摇曳,心里一万只草泥马在狂奔……1.pngOK OK ,自己选的IOS开发,哭着也要完成…… 这里你可能就需要使用绘图这一块的知识了。如果你恰好这块还是比较空白的,那么就是。。。

2017-06-06 16:19:58 2455

转载 iOS 简单的视频直播功能开发(实时视音频流录制编码+RTMP传输+实时拉流解码播放)

推流端:自己开发难度很大,视频直播就被卡死了,音频根本没来得及弄,最终使用了github上开源的框架。               原生开发基本流程:AVFoundation获取视频流,得到未编码的CMSampleBuffer,需要编码成Mpeg-4格式。编码分软编码和硬编码,考虑到iOS8之后VideoToolBox开放使用,选用VideoToolBox进行编码。坑爹的是针对它连

2017-06-02 22:56:39 2100

原创 ijkplayer ios项目集成(图文详细版)

前言 因为项目的关系,在5个月前写了一篇关于ijkplayer集成的文,当时是以个人笔记的形式修改后发出来的,写的太糙,没有考虑到刚接触ijkplayer新人的感受,导致大部分人即使看完依然表示疑惑不解。 回头看看自己写的这篇文,确实需要好好检讨。于是我决定重新回炉,以一个新手的角度思考,写下这篇ijkplayer ios项目集成(图文详细版)一步步带着大家来。 1.必要的

2017-05-25 11:31:25 11779 2

原创 IOS使用ijkPlayer

最近要做一个视频直播的项目,刚刚进入视频坑,开始自己琢磨AVPlayer,使用起来发现还挺多限制的,虽然当然知道要先把基础打好,相关基础链接: 网络播放器相关http://blog.csdn.net/Matthew_Fan/article/category/1200896 HLS流媒体开发http://blog.csdn.net/sdvch/article/deta

2017-05-25 11:26:45 1456

转载 iOS简单直播实现(三:IJKMediaFramework拉流)

推流完成后,需要拉流才能进行完整的直播。拉流我们采用的也是一个开源的第三方库IJKMediaFramework。  这个库本质是一个播放器,能播放flv格式的播放器。用起来和ios自带的AVPlayer很相似。  实现功能:1.拉流播放。2.监听。一.创建占位图和卡顿占位动效,代码如下://直播前的占位图片- (UIImageView *)placeHolder

2016-10-10 19:36:27 3279 1

转载 iOS简单直播实现(二:推流)

推流用的是一个第三方的IFLiveKit框架。这个框架基于rtmp协议的,c语言和oc语言分开的非常清楚,对oc语言非常友好,使用起来相对简单。  IFLiveKit内部集成了GPUIImage。内部实现了图片渲染等美艳效果。减少了开发时候美艳效果的调试。  需求:创建一个简单的推流页面。包含功能有:1.推流状态监听。2.切换摄像头。3.切换美艳效果。4.开关推流。一.推流

2016-10-10 19:35:28 3537

转载 iOS简单直播实现(一:创建本地rtmp服务器)Mac上搭建直播服务器Nginx+rtmp

简介nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘。步骤安装1、安装HomebrowHomebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器/usr/bin/

2016-10-10 19:34:25 4932 4

转载 iOS 10 消息推送(UserNotifications)秘籍总结(二)

背景上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被简书编辑推荐至首页,这着实让我受宠若惊啊。可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我了%>_爱情中最遗憾的事大概就是如此吧我们曾爱的人到撕心裂肺,但时时刻刻都在互相伤害,谁也不懂退让,也不会给对方宽容,相爱相杀演绎到了极致而分手,因为那时我们相爱太早了,浑身带刺,根本不能

2016-10-10 19:23:56 2280

转载 iOS 10 消息推送(UserNotifications)秘籍总结(一)

前言之前说会单独整理消息通知的内容,但是因为工(就)作(是)的(很)事(懒)没有更新文章,违背了自己的学习的初衷。因为互联网一定要有危机意识,说不定眼一睁,我们就out丢了饭碗。图片来源网络.jpeg“狼,他没有狮子老虎强壮,也没有大象那庞大的身躯,但至少:我从来没在马戏团看到过他们的身影。”也许只有狼在一直奔跑,这是我一直喜欢它的原因,要像狼一样不断奔跑,才能

2016-10-10 19:20:31 18402 2

原创 ios开发之GCD倒计时实现

今天朋友问到我 iOS实现到计时器切换到后台无法执行,倒计时器不执行。于是查询了许多资料。最终实践解决了这个问题,我将核心代码粘贴到下方:   __blockint timeout=60;//倒计时时间   dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT

2016-10-09 15:39:33 1164

转载 iOS开发Xcode8需要注意的那些坑

现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统的推送了,在此之际,iOS10的适配已经迫在眉睫啦,不知道Xcode8 beat版本,童鞋们有木有下载过来试试呢?就我的使用来说,总体觉得苹果还是坑不断,但是也在一直进步的啦。下面我就来说说,iOS10的适配以及Xcode8使用上的一些注意点。 一、证书管理用X

2016-10-09 13:19:57 4687

转载 IQKeyboardManager 自动处理键盘回收第三方

摘要我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种。我们需要监听键盘事件,考虑点击背景收起键盘、考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套。这个库帮我们解决了这个事情。这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager这个库是一个单例,它一旦生效,全项目任何界面都有效。让它生效

2016-07-09 16:52:37 3904

转载 iOS之UI--富文本总结

文章内容大纲1、NSMutableAttributedString的基本使用2、NSMutableAttributedString的简易封装3、使用开源代码GOBMarkupPaser处理富文本4、UITextKit简介5、编程思想的相关思考前言富文本使用案例:这里我自己也用了富文本实现了简单的却也是常用的例子:                   

2016-06-08 14:36:11 658

原创 iOS 获取当前日期和星期几,改变导航系统返回按钮的标题

//获取日期    NSArray * arrWeek=[NSArrayarrayWithObjects:@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",@"星期日",nil];    NSDate *date = [NSDatedate];    NSCalendar *calendar = [[NSCalendaral

2016-01-29 17:19:06 516

原创 iOS开发系列--音频播放、录音、视频播放、拍照、视频录制

概览随着移动互联网的发展,如今的手机早已不是打电话、发短信那么简单了,播放音乐、视频、录音、拍照等都是很常用的功能。在iOS中对于多媒体的支持是非常强大的,无论是音视频播放、录制,还是对麦克风、摄像头的操作都提供了多套API。在今天的文章中将会对这些内容进行一一介绍:音频音效音乐音频会话录音音频队列服务视频MPMoviePlayerControllerMPMov

2015-11-03 15:42:24 858

原创 CocoaPods的安装使用和常见问题-简书

本文多引自《iOS开发进阶》(唐巧 著),加上广大网友技术博客的帮助,我对自己在安装使用CocoaPods的过程和遇到的问题进行了一个总结,感谢他们!希望这篇文章能帮助有需要的人,尤其是刚开始使用CocoaPods的朋友。一、什么是CocoaPodsCocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,Coc

2015-11-03 11:54:39 955

转载 iOS开发-CALayer/Core Animation/UIView动画封装

概览在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画、关键帧动画、动画组、转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等。在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单

2015-10-29 17:46:59 1193

原创 iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控

概览iPhone的成功很大一部分得益于它多点触摸的强大功能,乔布斯让人们认识到手机其实是可以不用按键和手写笔直接操作的,这不愧为一项伟大的设计。今天我们就针对iOS的触摸事件(手势操作)、运动事件、远程控制事件等展开学习:iOS事件简介触摸事件手势识别运动事件远程控制事件iOS事件在iOS中事件分为三类:触摸事件:通过触摸、手势进行触发(例如手指点击、缩放)

2015-10-27 11:28:19 588

原创 iOS开发 基本绘图/Quartz 2D/Core Image

概述在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架。今天我们将围绕iOS中两大图形、图像绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能。Quartz 2D基本图形绘制视图刷新其他图形上下文Core ImageQuartz 2D在iOS中常用的绘图框架就是Quartz 2D

2015-10-27 09:53:43 587

原创 iOS开发实用技巧篇—项目新特性页面的处理

说明:本文主要说明在项目开发中会涉及到的最最简单的新特性界面(实用UIScrollView展示多张图片的轮播)的处理。代码示例:新建一个专门的处理新特性界面的控制器,可以实用代码也可以用xib,在这里实用纯代码方式,创建一个控制器NewfeatureViewController。头文件代码: 1 // 2 // JMNewfeatureViewControl

2015-10-22 21:12:25 497

原创 iOS开发拓展篇- 即时通讯XMPP简单介绍

一、即时通讯简单介绍1、简单说明即时通讯技术(IM)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容有许多的IM系统,如AOL IM、Yahoo IM、 MSN以及QQ,它们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那

2015-10-22 21:11:34 947

原创 iOS开发拓展篇—应用之间的跳转和数据传

说明:本文介绍app如何打开另一个app,并且传递数据。一、简单说明新建两个应用,分别为应用A和应用B.实现要求:在appA的页面中点击对应的按钮,能够打开appB这个应用。1.新建两个应用,分别为A和B.   2.设置应用B的url。3.在应用A中编写打开app的代码点击之后,会跳转到新的控制器。注意:打开应

2015-10-22 21:09:11 354

原创 iOS开发网络篇—使用ASI框架进行文件下载

说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载。一、简单介绍代码示例: 1 #import "YYViewController.h" 2 #import "ASIHTTPRequest.h" 3 4 @interface YYViewController () 5 6 7 @end 8 9 @implementation

2015-10-22 21:08:01 462

原创 iOS开发网络篇—数据缓存

一、关于同一个URL的多次请求  有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的。    上面的情况会造成以下问题(1)用户流量的浪费(2)程序响应速度不够快解决上面的问题,一般考虑对数据进行缓存。  二、缓存  为了提高程序的响应速度,可以考虑使用缓存(内存缓存\硬盘缓存)    

2015-10-22 21:07:20 300

原创 iOS开发网络篇—发送json数据给服务器以及多值参数

一、发送JSON数据给服务器发送JSON数据给服务器的步骤:(1)一定要使用POST请求(2)设置请求头(3)设置JSON数据为请求体代码示例: 1 #import "YYViewController.h" 2 3 @interface YYViewController () 4 5 @end 6 7 @implementation YYViewC

2015-10-22 21:06:41 333

原创 iOS开发网络篇—监测网络状态

一、说明在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的:(1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能)(2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验  WIFI\3G网络:自动下载高清图片  低速网络:只下载缩略图  没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachabi

2015-10-22 20:57:21 278

原创 iOS开发网络篇—简单介绍ASI框架的使用

说明:本文主要介绍网络编程中常用框架ASI的简单使用。一、ASI简单介绍ASI:全称是ASIHTTPRequest,外号“HTTP终结者”,功能十分强大。ASI的实现基于底层的CFNetwork框架,因此运行效率很高。可惜作者早已停止更新,有一些潜在的BUG无人去解决ASI的github地址https://github.com/pokeb/asi-http-request 

2015-10-22 20:55:51 350

原创 iOS开发网络篇—文件的上传

说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。  由于过程较为复杂,因此本文只贴出部分关键代码。主控制器的关键代码:YYViewController.m 1 #import "YYViewController.h" 2 3 #define YYEncode(str) [str dataUs

2015-10-22 20:55:10 348

原创 iOS开发网络篇—多线程断点下载

说明:本文介绍多线程断点下载。项目中使用了苹果自带的类,实现了同时开启多条线程下载一个较大的文件。因为实现过程较为复杂,所以下面贴出完整的代码。实现思路:下载开始,创建一个和要下载的文件大小相同的文件(如果要下载的文件为100M,那么就在沙盒中创建一个100M的文件,然后计算每一段的下载量,开启多条线程下载各段的数据,分别写入对应的文件部分)。项目中用到的主要类如下:完成的实现

2015-10-22 20:46:49 291

原创 iOS开发UI篇—模仿ipad版QQ空间登录界面

一、实现和步骤1.一般ipad项目在命名的时候可以加一个HD,标明为高清版2.设置项目的文件结构,分为home和login两个部分  3.登陆界面的设置(1)设置第一个控制器和自定义的控制器类(登陆)关联    (2)设置控制器的view的颜色,RGB三个值都为42  (3)导入相关的素材图片关于图片:一般给竖屏用的图

2015-10-22 20:40:39 826

原创 iOS开发UI篇—iPad开发中得modal介绍

一、简单介绍 说明1:  在iPhone开发中,Modal是一种常见的切换控制器的方式   默认是从屏幕底部往上弹出,直到完全盖住后面的内容为止说明2: 在iPad开发中,Modal的使用频率也是非常高的 对比iPhone开发,Modal在iPad开发中多了一些用法 二、呈现样式 (一)什么叫呈

2015-10-22 20:39:38 455

原创 iOS开发UI篇—ipad项目 popoverController使用注意

一、设置尺寸提示:不建议,像下面这样吧popover的宽度和高度写死。 1 //1.新建一个内容控制器 2 YYMenuViewController *menuVc=[[YYMenuViewController alloc]init]; 3 4 //2.新建一个popoverController,并设置其内容控制器 5 self.popov

2015-10-22 20:38:31 475

原创 iOS开发UI篇—ipad 项目 popoverController简单介绍

一、简单介绍1.什么是UIPopoverController是iPad开发中常见的一种控制器(在iPhone上不允许使用)跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面2.使用步骤要想显示一个UIPopoverController,需要经过下列步骤(1)设置内容控

2015-10-22 20:37:25 613

原创 iOS开发UI篇—iPad和iPhone开发的比较

一、iPad简介1.什么是iPad  一款苹果公司于2010年发布的平板电脑  定位介于苹果的智能手机iPhone和笔记本电脑产品之间  跟iPhone一样,搭载的是iOS操作系统  2.iPad的市场情况  截止至2013年10月23日,iPad已经累计销售1.7亿台  在平板市场的占有率高达81% 二、关于iphone和iPad说明:iPhone是手

2015-10-22 20:00:26 581

原创 iOS开发拓展篇—音频处理(音乐播放器6)

一、图片处理 说明:Aspect表示按照原来的宽高比进行缩放。Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白。Aspectfill表示按照原来的宽高比缩放,但只能看到部分图片。引发的问题:可能会有一部分超出屏幕。所以,如果选择了Aspectfill模式,那么需要剪切超出的图片,在storyboard中也可以进行设置。

2015-10-22 19:59:11 464

原创 iOS开发拓展篇—xib中关于拖拽手势的潜在错误

一、错误说明自定义一个用来封装工具条的类搭建xib,并添加一个拖拽的手势。  主控制器的代码:加载工具条封装工具条以及手势拖拽的监听事件  此时运行程序,程序直接崩溃,报错如下: 说明:手势不会有superView方法,superView是UIView的方法,说明我们错误的把手势对象当成是UIView来用了。调试查看出现问题的原因:  出现问题的

2015-10-22 19:58:22 316

FFmpeg中文版.pdf

FFMPEG 是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG 几乎为你把所有的繁重工作都做了,比 如解码、编码、复用和解复用。这使得 多媒体应用程序变得容易编写。它是一个简单的,用 C 编写的,快速的并且能够 解码 几乎所有你能用到的格式,当然也包括编码多种格式。

2017-12-18

自定义时间选择器,今天,明天,后天

自定义时间选择器,今天,明天,后天,封装好的,直接导入类别。

2016-01-04

空空如也

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

TA关注的人

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