自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

原创 iOS 编译socketio静态库

由于socketio依赖boost库,所以要先编译出支持arm64的boost库1. 编译支持arm64的boost库我们需要用的是1.68版的boost,因此我选择了手动下载1.1 官网直接下载指定版本 boost_1_68_0.tar.gz [官网地址] (https://www.boost.org/users/history/)1.2 切换到下载好的cmake所在目录 ...

2019-08-22 17:49:32 1148 2

原创 使用PHAsset获取图像或视频文件的大小

分为图片和视频2部分1. 图片[[PHImageManager defaultManager] requestImageDataForAsset:asset options:nil resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info)

2017-11-28 10:37:26 14971

原创 iOS_给保存到系统相册的视频添加位置信息

录制结束后的视频要保存到系统相册,之前是不带位置信息的,现在要实现把视频保存到系统相册时添加上位置信息直接上代码:#pragma mark - 给视频添加GPS- (void)saveVideoToSystemAlbumWithPath:(NSString *)videoPath{ ALAssetsLibrary *library = [[ALAssetsLibrary a

2017-08-11 18:40:47 3021 1

原创 iOS_如何使用xcode 8进行内存泄漏测试

1. 打开要进行内存泄漏的项目2. 进入 instruments 工具点击xcode的导航栏的Product --> Profile 或者  长按运行按钮-->选择Profile3. 选择Leaks 选项4. 开始进行Leaks测试(1) 选中Xcode先把程序(command + R)运行起来(如果Xcode左上角已经是instrument的图标就不用执行这一步了)(2)

2017-07-27 17:43:03 1800

原创 iOS_UIButton 实现button的内容左对齐以及图片和标题中间的间隔

要实现一个类似折叠效果的按钮  不多说 直接上代码和效果- (void)createButton{ UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 55)]; button.backgroundColor = [UIColor o

2017-07-27 13:09:23 5652

原创 iOS--根据文本内容的长度动态改变label的宽度(有最大值)

最近项目里要求根据label的内容的长度动态改变label的宽度(label的最大宽度是150)示例代码如下:        // 根据文本内容的宽度动态改变label的宽度  (宽度最大值为150)    UILabel *JGlabel = [[UILabel alloc]init];    JGlabel.backgroundColor = [UIColor greenColor

2017-07-05 10:40:27 4146

原创 iOS—在tableView上实现始终在屏幕底部有一个button的效果

效果:项目里要实现不论tableView怎么滚动,始终保持屏幕下方有一个button思路:假如 当前的tableView是添加在BaseView上的1. 写一个 button 直接加在 BaseView 上,和 tableView 加在同一个父视图上,frame 写成屏幕下方的frame示例代码如下: // 尾部的button self.footerButton

2017-07-04 18:46:32 2998

原创 Git 上多次commit 合并成一个 patch

对于一个test 工程   git log 看其提交的过程:commit 9fdd76eb5fd06b1b7f2af6800dc13e51099c40d9 Author: ShichaoXu Date: Tue Dec 31 17:13:24 2013 +0800 printf hello world commit a648e0564c0802267e

2016-12-15 14:04:08 14113

原创 关于iOS10 - iMessage App的总结

说在前面:iMessage app 是iOS10中嵌入到Message内容的iMessage apps,包含简单的表情包以及自定义的复杂界面。iMessage App类别:* Sticker pack app :单独的表情包应用,不需要编写任何代码,只需拖动图片即可,包括静态和动态表情。* iMessage app :单独的iMessage应用,要编写代码,可以发送表情包、文字、视

2016-11-10 14:03:18 5495

原创 iOS10 -- iMessage 应用(第二篇)

在iOS中新增了两种iMessage 的方式1. 内置表情包(Sticker Packs)2.iMessage应用一、内置表情包(Sticker Packs)在第一篇中已经详细介绍过了,这里就不在介绍了。二、iMessage应用iMessage app 使用完整的框架和 Message app进行交互。使用 iMessage app能够: 在消息

2016-11-09 10:48:20 3092 3

原创 iOS-通过Message框架开发一个Sticker Pack(无需代码)(第一篇)

一、概述iOS 10 引入了Message框架,开发者可以为苹果内置的Messages应用开发扩展。目的:通过开发一个应用扩展,可以让用户个能应用在Message应用中交互。Message框架支持两种类型的扩展:1. Sticker Packs(表情包)2. iMessage apps二、准备工作Xcode 8 可以从这里下载并安装到你的电脑。三、步骤解

2016-11-04 17:12:54 4175

原创 视频相关概念

一、视频文件格式对于视频来说,常见的文件格式有:.mov,.avi,.mpg,.vob,.mkv, .rm,.rmvb等等,文件格式通常表现为文件在操作系统上存储时的后缀名,他通常会被操作系统用来和相应的打开程序关联,比如你双击一个test.doc文件,系统会调用word去打开它,你双击一个test.avi或者test.mkv 系统会调用视频播放器去打开它。同样是视频,为什么会有.mov,

2016-06-06 15:47:24 1788

原创 ios开发之音频视频开发

一、音频播放方式1.System Sound Services2.AVAudioPlayer3.Audio Queue Service4.OpenAL二、使用1.System Sound Services的使用SystemSoundID soundId;    //后面将使用soundId引用音频文件NSString *soundFile = [[NSBundl

2016-06-06 10:15:34 1846

原创 使用setActiveVideoMinFrameDuration设置帧率为60fps时应用Crash

用如下方式设置帧率为60fps时,app 会crash// 会崩溃AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];[captureDevice lockForConfiguration:NULL];[captureDevice setActiv...

2018-07-27 17:01:24 6506

原创 关于IOS 11 下,图片编辑界面左下角的cancel 按钮很难点击的问题

开发中发现,在iOS 11系统下,苹果提供的imagePickerViewController在push进入图片编辑界面PUPhotoPickerHostViewController后,左下角的cancel按钮很难被点击到。经过反复查看xcode上视图层级结构发现:在iOS11系统下,进入图片编辑界面后,最上层会出现一个细长条的遮盖view(不知道什么原因,可能是苹果存在的bug)。是该vie...

2018-05-15 11:29:09 3191 2

原创 H.264编码器在需要时强制插入关键帧

废话不多说,直接上关键部分的代码-(void)encode:(CMSampleBufferRef)sampleBuffer isCrop:(BOOL)isCrop{ log4cplus_debug("h264", "encoder video data\n"); if (self.error) { log4cplus_error("h264", "err...

2018-03-30 16:44:57 2342

原创 iOS - 扫描HEIF格式的二维码图片

一、说在前面 iPhone 7 之后系统相机支持HEIF格式的图片,在扫描二维码时,该格式的图片需要转换成JPG格式才能进行扫描成功。 二、思路 用户在打开系统相册选择完一张照片后,要判断该照片是否是HEIF格式,如果是,进行格式转换之后再扫描JPG图片的内容,得到扫描结果。 三、具体实现 因为过程中用到photoKit,因此需要加入该头文件,#import @pro...

2018-02-28 15:52:11 672

原创 Domain=NEHotspotConfigurationErrorDomain Code=8 "internal error."

解决: 1.Window –> Devices –> 勾选connect via network 2.重启xcode 3. 重启手机

2018-02-08 11:04:51 2051

原创 iOS-XIB方式实现一个既能手动又能自动无限滚动的UIScrollView

一、 需求 1.实现一个既能手动又能自动无限滚动的scrollView,有页码,有按钮(点击按钮,scrollView消失) 2.每个界面出现时,五秒内用户不手动滑动界面,就会调用自动滑动界面的方法自动切换到下一张图片 3.当用户在5s内在屏幕上进行滑动时,检测滑动的距离,进行图片的切换,并重置计时器,使之重新开始计算时间即从当前时间开始算5s内用户再不滑动界面就再次

2018-02-01 14:34:06 419

原创 如何通过Mac上的Safari调试iPhone应用里的webView

需要做的工作如下: 1. 设备端:打开手机端Safari的web检查器 具体步骤:设置(Setting) –> Safari –> 高级(Advanced) –> 打开web检查器(web inspector) 2. Mac端: 打开Mac端Safari 的开发者模式 具体步骤: 打开Safari –> 偏好设置 –> 高级 –> 勾选“在菜单栏中显示“开发”菜单”选项 3. 将手机通过

2018-01-19 11:43:35 3712 2

原创 (ios-ntp) Get ntp time offset

源代码名称:ios-ntp 源代码网址:http://www.github.com/jbenet/ios-ntp一、说在前面 1. 如何使用 (1) 下载ios-ntp源代码到本地 (2) 把库里需要的lib拉进自己的项目中 在我的项目里,我使用了 ios-ntp.h ntp-log.h ntp.ho

2017-12-14 16:44:00 728

原创 TableViewCell实现长按复制功能

// 执行复制操作- (void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{ if (indexPath.section == 4 && indexPath.row == 1) {

2017-11-30 16:05:02 1492

原创 关于IOS10和Xcode8的适配问题

总结一下有以下几点:一、证书管理用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书。建议大家勾选这个Automatically manage signing下面我来说说可能出现的问题:1、Xcode未设置开发者账号的情况:解决办法:在Xcode的偏好设置里面,添加苹果账号,就可以了。2、设备机器未添加开发者的

2017-11-16 14:08:16 320

原创 IOS开发- UITableView 无数据时,显示“暂无数据”背景的实现

需求:当UITableView 无数据时,当前耳界面的背景界面显示“暂无数据”。方法1:我们可以用 Objective-C 的分类 (Catergory) 来解决这类问题。具体实现过程:步骤1. 我们对UITableView进行类扩展操作:File > New > File > IOS > Objective-C File > Next > File:EmptyTipLab

2017-11-16 14:07:00 4656

原创 audioUnit实现步骤(无代码)

使用audioUnit实现录制的步骤1. 配置AudioSession 设置首选的硬件IO缓冲区持续时间(秒)设置毁掉间隔 设置 session的首选硬件采样率2.配置AudioComponentDescription(用来描述unit的类型)3.配置输入输出的数据格式 采样率为480004. 打开输入输出端口5. 配置回调6. 在回调里分配

2017-11-16 14:06:14 691

原创 本地时间和UTC时间的来回转换

将本地日期字符串转为UTC日期字符串  - (NSString *)getUTCFormatDate:(NSDate *)localDate{    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];    NSTimeZone *timeZone = [NSTimeZonetimeZoneWithName:@"U

2017-10-18 13:50:12 1220

原创 按照创建时间升序排列沙盒里的文件

+ (NSArray *)sortSandboxFilesInAscendingOrderOfCreationTime:(NSArray *)fileArray rootPath:(NSString *)rootPath{ NSArray *sortedPaths = [fileArray sor

2017-10-17 17:58:41 947

原创 iOS-获取两个日期的差值判断是否大于半年

有两种方式可以实现方式一: // 统一格式 NSDateFormatter *formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyy-MM-dd HH:mm"]; // create NSArray *createTimeArray = [create

2017-10-17 15:03:36 1153

原创 iOS-从相册选中一个视频并拿到视频的元数据

从相册选中一个视频并拿到该视频的元数据信息// 通过相册里选中的某一个视频获取他的元数据信息- (void)getXMLFromSelectedVideoInAlbumWithPath:(NSURL *)mediaUrl andRefrenceURL:(NSURL *)refrenceUrl{ // 通过视频的 refrenceURL 获取PHFetchResult PHFe

2017-09-04 18:38:54 3343

原创 iOS-字典转XML

实现把字典转换为XML数据:#pragma mark - 字典转换为XML字符串- (NSString *)convertDictionaryToXML:(NSMutableDictionary *)dictionary withStartElement:(NSString *)startElement{ return [self convertDictionaryToXML:di

2017-09-04 18:33:38 819

原创 iOS-正则表达式用作筛选

需求:实现一个只能输入英文和数字的输入框,并且必须是英文开头(纯英文,英文+数字,但不能是‘xml’)实现:- (void)textFieldDidEndEditing:(UITextField *)textField Cell:(MetadataCell *) cell{ //if ([textField.superview.superview isMemberO

2017-09-04 18:31:13 1002

原创 iPhone上读取图片数据的方法

在iphone上有两种读取图片数据的简单方法:(1) UIImageJPEGRepresentation  需要两个参数:图片的引用和压缩系数(2) UIImagePNGRepresentation需要图片的引用作为参数对比:1. PNG要比JPEG返回的图片数据量大很多2. JPEG耗时比较少,PNG耗时比较多3. UIImagePNGRepresen

2017-08-08 13:48:19 2184

原创 MRC和ARC环境下如何防止Block循环引用

1. 在MRC环境下使用:__block typeof(self) weakSelf = self; 2. 在ARC环境下使用:__weak typeof(self) weakSelf=self;

2017-08-02 14:29:19 675

转载 JS和OC进行交互的总结

1. JS调用OC的方法实现方式1:JS调用原声OC原理:相当于是JS端发起一个假的URL请求, 然后用代理方法去拦截这次请求,做相应的处理。JS端: function showAlert(message){ alert(message); } f

2017-08-02 14:27:19 389

原创 GIT_已经提交到远程仓库的错误提交怎么修复和回退

已经推到远程的分支上分某次提交发现中间有错误的信息,需要回退进行更改:步骤:1. 重置git reset HEAD^2. 修改并重新commit加上新的修改并提交:git commit -m "New commit message"3. 强制上传git push --force

2017-07-31 16:02:11 4122

原创 iOS_JS调用OC

1. 添加JavaScriptCore.frameworkBuild Phases --> Link Binary With Libraries --> + --> 搜索JavaScriptCore.framework --> 添加2. 在要调用的含有WebVIew的controller里面导入头文件3. 在webView的代理方法里面进行编写- (void)webViewDidF

2017-07-28 16:03:33 244

原创 iOS_目录结构基础知识点

使用xcode新建目录的时候,容易产生新建的目录在finder中找不到,那么,如何创建目录能使xcode中的目录结构和finder中保持一致呢?1. 在finder中创建好文件夹之后,拖进xcode中。2. 然后在刚刚添加进xcode中的文件里面新建你要添加的类即可。这样创建的目录会使xcode和finder中的目录结构保持一致。

2017-07-28 15:46:14 236

原创 iOS_视图阴影效果的实现

代码部分: // 路径阴影 UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:self.callListBottomView.bounds]; self.callListBottomView.layer.shadowColor = [UIColor blackColor].CGColor; se

2017-07-27 18:06:09 688 1

原创 iOS_通话时间的计算

// 计算时间差-(NSString *)calculateCallTimeWithStartTime:(NSString *)startTime{ NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setDateFormat:@"yyyy_MM_dd__HH_mm_ss"];

2017-07-27 13:11:21 1770

原创 自定义带有cell间距的UITableViewCell

项目里要求做一个带有间距的cell效果如图:具体实现过程:1. 在自定义的cell里面重写cell的setFrame方法// 重写 自定义tableviewcell的setFrame方法- (void)setFrame:(CGRect)frame{ frame.origin.y += 4;// 整体向下移动 4 frame.size.hei

2017-07-04 14:57:53 343

myBuildBoost.sh

可以直接编译出支持arm64的Boost库的脚本

2019-08-22

空空如也

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

TA关注的人

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