iOS
文章平均质量分 83
EleCat_
菜鸟程序媛
展开
-
使用setActiveVideoMinFrameDuration设置帧率为60fps时应用Crash
用如下方式设置帧率为60fps时,app 会crash// 会崩溃AVCaptureDevice *captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];[captureDevice lockForConfiguration:NULL];[captureDevice setActiv...原创 2018-07-27 17:01:24 · 6611 阅读 · 0 评论 -
按照创建时间升序排列沙盒里的文件
+ (NSArray *)sortSandboxFilesInAscendingOrderOfCreationTime:(NSArray *)fileArray rootPath:(NSString *)rootPath{ NSArray *sortedPaths = [fileArray sor原创 2017-10-17 17:58:41 · 986 阅读 · 0 评论 -
iOS-从相册选中一个视频并拿到视频的元数据
从相册选中一个视频并拿到该视频的元数据信息// 通过相册里选中的某一个视频获取他的元数据信息- (void)getXMLFromSelectedVideoInAlbumWithPath:(NSURL *)mediaUrl andRefrenceURL:(NSURL *)refrenceUrl{ // 通过视频的 refrenceURL 获取PHFetchResult PHFe原创 2017-09-04 18:38:54 · 3388 阅读 · 0 评论 -
iOS-字典转XML
实现把字典转换为XML数据:#pragma mark - 字典转换为XML字符串- (NSString *)convertDictionaryToXML:(NSMutableDictionary *)dictionary withStartElement:(NSString *)startElement{ return [self convertDictionaryToXML:di原创 2017-09-04 18:33:38 · 856 阅读 · 0 评论 -
iOS-正则表达式用作筛选
需求:实现一个只能输入英文和数字的输入框,并且必须是英文开头(纯英文,英文+数字,但不能是‘xml’)实现:- (void)textFieldDidEndEditing:(UITextField *)textField Cell:(MetadataCell *) cell{ //if ([textField.superview.superview isMemberO原创 2017-09-04 18:31:13 · 1022 阅读 · 0 评论 -
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 · 270 阅读 · 0 评论 -
iOS_目录结构基础知识点
使用xcode新建目录的时候,容易产生新建的目录在finder中找不到,那么,如何创建目录能使xcode中的目录结构和finder中保持一致呢?1. 在finder中创建好文件夹之后,拖进xcode中。2. 然后在刚刚添加进xcode中的文件里面新建你要添加的类即可。这样创建的目录会使xcode和finder中的目录结构保持一致。原创 2017-07-28 15:46:14 · 250 阅读 · 0 评论 -
iOS_视图阴影效果的实现
代码部分: // 路径阴影 UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:self.callListBottomView.bounds]; self.callListBottomView.layer.shadowColor = [UIColor blackColor].CGColor; se原创 2017-07-27 18:06:09 · 712 阅读 · 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 · 1830 阅读 · 0 评论 -
本地时间和UTC时间的来回转换
将本地日期字符串转为UTC日期字符串 - (NSString *)getUTCFormatDate:(NSDate *)localDate{ NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init]; NSTimeZone *timeZone = [NSTimeZonetimeZoneWithName:@"U原创 2017-10-18 13:50:12 · 1243 阅读 · 0 评论 -
iOS报错总结(持续更新中)
1. 运行XCTest遇到的问题“App installation failed”解决办法:步骤1.保持你的设备与Xcode连接,选择Window ---> Devices 步骤2.在弹出的窗口左侧的选项卡中选择出问题的设备 步骤3.在右侧的详细面板上,从“Installed Apps”列表里删除违规应用程序2. 添加新的Target时遇到的问题原创 2017-03-21 17:11:06 · 507 阅读 · 0 评论 -
iOS-获取两个日期的差值判断是否大于半年
有两种方式可以实现方式一: // 统一格式 NSDateFormatter *formater = [[NSDateFormatter alloc] init]; [formater setDateFormat:@"yyyy-MM-dd HH:mm"]; // create NSArray *createTimeArray = [create原创 2017-10-17 15:03:36 · 1212 阅读 · 0 评论 -
关于IOS 11 下,图片编辑界面左下角的cancel 按钮很难点击的问题
开发中发现,在iOS 11系统下,苹果提供的imagePickerViewController在push进入图片编辑界面PUPhotoPickerHostViewController后,左下角的cancel按钮很难被点击到。经过反复查看xcode上视图层级结构发现:在iOS11系统下,进入图片编辑界面后,最上层会出现一个细长条的遮盖view(不知道什么原因,可能是苹果存在的bug)。是该vie...原创 2018-05-15 11:29:09 · 3246 阅读 · 2 评论 -
iOS - 扫描HEIF格式的二维码图片
一、说在前面 iPhone 7 之后系统相机支持HEIF格式的图片,在扫描二维码时,该格式的图片需要转换成JPG格式才能进行扫描成功。 二、思路 用户在打开系统相册选择完一张照片后,要判断该照片是否是HEIF格式,如果是,进行格式转换之后再扫描JPG图片的内容,得到扫描结果。 三、具体实现 因为过程中用到photoKit,因此需要加入该头文件,#import @pro...原创 2018-02-28 15:52:11 · 698 阅读 · 0 评论 -
如何通过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 · 3864 阅读 · 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 · 15176 阅读 · 0 评论 -
关于IOS10和Xcode8的适配问题
总结一下有以下几点:一、证书管理用Xcode8打开工程后,比较明显的就是下图了,这个是苹果的新特性,可以帮助我们自动管理证书。建议大家勾选这个Automatically manage signing下面我来说说可能出现的问题:1、Xcode未设置开发者账号的情况:解决办法:在Xcode的偏好设置里面,添加苹果账号,就可以了。2、设备机器未添加开发者的原创 2017-11-16 14:08:16 · 348 阅读 · 0 评论 -
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 · 4709 阅读 · 0 评论 -
audioUnit实现步骤(无代码)
使用audioUnit实现录制的步骤1. 配置AudioSession 设置首选的硬件IO缓冲区持续时间(秒)设置毁掉间隔 设置 session的首选硬件采样率2.配置AudioComponentDescription(用来描述unit的类型)3.配置输入输出的数据格式 采样率为480004. 打开输入输出端口5. 配置回调6. 在回调里分配原创 2017-11-16 14:06:14 · 710 阅读 · 0 评论 -
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 · 1509 阅读 · 0 评论 -
iOS_给保存到系统相册的视频添加位置信息
录制结束后的视频要保存到系统相册,之前是不带位置信息的,现在要实现把视频保存到系统相册时添加上位置信息直接上代码:#pragma mark - 给视频添加GPS- (void)saveVideoToSystemAlbumWithPath:(NSString *)videoPath{ ALAssetsLibrary *library = [[ALAssetsLibrary a原创 2017-08-11 18:40:47 · 3101 阅读 · 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 · 1825 阅读 · 0 评论 -
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 · 5689 阅读 · 0 评论 -
关于在IOS10 系统上运行App 遇到的问题
遇到这个问题时的解决办法:点击info.plist > open as > source Code > 添加一下代码在info.plist文件 NSMicrophoneUsageDescriptionNeed microphone access for uploading videosNSCameraUsageDescriptionNeed camera access for upl原创 2016-11-14 10:51:47 · 518 阅读 · 0 评论 -
关于应用在Xcode8上运行时的报错:Assigning to 'id<XXDelegate>' from incompatible type...
如上图这样的报错基本上是由两种情况造成的:1、没有遵守协议(基本上都是这种情况造成的)解决办法:遵守这个协议2、strong 类型不兼容解决办法:将 strong 改为 weak 注意:有时 Xcode 不能及时清楚警告和错误,需要手动clean一下( Product ->Clean)原创 2016-11-11 11:23:40 · 4122 阅读 · 0 评论 -
关于iOS10 - iMessage App的总结
说在前面:iMessage app 是iOS10中嵌入到Message内容的iMessage apps,包含简单的表情包以及自定义的复杂界面。iMessage App类别:* Sticker pack app :单独的表情包应用,不需要编写任何代码,只需拖动图片即可,包括静态和动态表情。* iMessage app :单独的iMessage应用,要编写代码,可以发送表情包、文字、视原创 2016-11-10 14:03:18 · 5561 阅读 · 0 评论 -
iOS10 -- iMessage 应用(第二篇)
在iOS中新增了两种iMessage 的方式1. 内置表情包(Sticker Packs)2.iMessage应用一、内置表情包(Sticker Packs)在第一篇中已经详细介绍过了,这里就不在介绍了。二、iMessage应用iMessage app 使用完整的框架和 Message app进行交互。使用 iMessage app能够: 在消息原创 2016-11-09 10:48:20 · 3158 阅读 · 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 · 4236 阅读 · 0 评论 -
OC中一些容易混淆和忘记的知识点总结
1、三目运算符 ?:; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则执行表达式2,并返回表达式2的结果 ; 如果表达式1的值为假, 则执行表达式3 ,并返回表达式3的结果。可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为是不是条件成立,条件成立为结果1否则为结果2。总结:a ? b : c; a=1 结果为b原创 2016-11-04 10:13:35 · 434 阅读 · 0 评论 -
关于屏幕方向的问题总结
- (BOOL)shouldAutorotate ; 当前viewcontroller是否支持转屏- (NSUInteger)supportedInterfaceOrientations;当前viewcontroller支持哪些转屏方向-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation当前v原创 2016-11-04 10:12:49 · 425 阅读 · 0 评论 -
iOS - Category and Extension
Category(类别)一、概述 类别是一种为现有的类添加新方法的方式。 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类)。二、示例1、声明类别 示例1.@interface原创 2016-11-04 10:07:25 · 378 阅读 · 0 评论 -
关于IOS10和Xcode8的适配问题
一、权限问题iOS 10 对用户的安全和隐私的增强,在申请很多私有权限的时候都需要添加描述:步骤:info.plist > open as > Source Code > 添加下面你所需权限的描述 NSPhotoLibraryUsageDescription App需要您的同意,才能访问相册 NSCameraUsageDescription App需要您的同意,才能访问相机原创 2016-11-18 10:19:06 · 404 阅读 · 0 评论 -
关于Slider
#import "TVUAlbumAssetViewController.h"#import @interface TVUAlbumAssetViewController ()@property (nonatomic, retain) IBOutlet UIImageView *imageView;@property (nonatomic, strong) AVPlayerLayer原创 2016-12-06 17:59:46 · 890 阅读 · 0 评论 -
MRC和ARC环境下如何防止Block循环引用
1. 在MRC环境下使用:__block typeof(self) weakSelf = self; 2. 在ARC环境下使用:__weak typeof(self) weakSelf=self;原创 2017-08-02 14:29:19 · 700 阅读 · 0 评论 -
JS和OC进行交互的总结
1. JS调用OC的方法实现方式1:JS调用原声OC原理:相当于是JS端发起一个假的URL请求, 然后用代理方法去拦截这次请求,做相应的处理。JS端: function showAlert(message){ alert(message); } f转载 2017-08-02 14:27:19 · 400 阅读 · 0 评论 -
iPhone上读取图片数据的方法
在iphone上有两种读取图片数据的简单方法:(1) UIImageJPEGRepresentation 需要两个参数:图片的引用和压缩系数(2) UIImagePNGRepresentation需要图片的引用作为参数对比:1. PNG要比JPEG返回的图片数据量大很多2. JPEG耗时比较少,PNG耗时比较多3. UIImagePNGRepresen原创 2017-08-08 13:48:19 · 2231 阅读 · 0 评论 -
GIT_已经提交到远程仓库的错误提交怎么修复和回退
已经推到远程的分支上分某次提交发现中间有错误的信息,需要回退进行更改:步骤:1. 重置git reset HEAD^2. 修改并重新commit加上新的修改并提交:git commit -m "New commit message"3. 强制上传git push --force原创 2017-07-31 16:02:11 · 4179 阅读 · 0 评论 -
iOS--根据文本内容的长度动态改变label的宽度(有最大值)
最近项目里要求根据label的内容的长度动态改变label的宽度(label的最大宽度是150)示例代码如下: // 根据文本内容的宽度动态改变label的宽度 (宽度最大值为150) UILabel *JGlabel = [[UILabel alloc]init]; JGlabel.backgroundColor = [UIColor greenColor原创 2017-07-05 10:40:27 · 4202 阅读 · 0 评论 -
iOS—在tableView上实现始终在屏幕底部有一个button的效果
效果:项目里要实现不论tableView怎么滚动,始终保持屏幕下方有一个button思路:假如 当前的tableView是添加在BaseView上的1. 写一个 button 直接加在 BaseView 上,和 tableView 加在同一个父视图上,frame 写成屏幕下方的frame示例代码如下: // 尾部的button self.footerButton原创 2017-07-04 18:46:32 · 3027 阅读 · 0 评论 -
自定义带有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 · 367 阅读 · 0 评论