iOS技术文档
文章平均质量分 52
记录我的iOS成长之路
没有补刀的感情机器
这个作者很懒,什么都没留下…
展开
-
初探iOS项目使用MVP模式
1:说明,项目文件分为3种,model,view,presenter。分别是数据,视图和控制层。model全部继承于BaseRecord,view包括控制器viewcontroller和view。继承于BaseViewController和BaseView,presenter继承于BasePresenter.这里命名习惯的关系,所有的model类项目里均命名为record后缀。2:之前的MVC中控制器内既展示页面也负责网络数据请求和处理,各种异常状态的判断,页面更新等等,逻辑较多,结构较乱,本demo将原创 2020-07-16 09:09:51 · 781 阅读 · 0 评论 -
UIScrollView与地图页面嵌套效果的实现。
经常使用美团或饿了的朋友都会在订单页看到一个效果,上面是个地图,下面是订单的详情。向上滑动的时候地图被覆盖掉,滑下来地图出现,而且滑动地图时只有地图的mapview在动。这种效果怎么实现呢?今天来做一下这个demo。先放效果图,两种实现方式,两种效果:1:地图随着scroll的滑动而滑动“gif有点大,CSDN不让传,请点击查看原图链接”2,地图不动。scroll自己滑动“这个gif也有点大,CSDN不让传,请点击查看原图链接”先说下第一种实现,上代码@interf..原创 2020-07-08 15:36:21 · 996 阅读 · 0 评论 -
iOS自定义UITableViewRowAction
先看效果 :说下思路:首先要实现tableview的代理。共有几个方法:1:-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{ return YES;}-(UITableViewCellEditingStyle)tableView...原创 2020-03-03 15:18:50 · 1808 阅读 · 1 评论 -
GPUimageview编辑视频方向不对
拍摄的时候是竖屏,结果添加水印之后导出是横屏播放了。或者还是竖屏播放但是画面颠倒等等视频方向不对,那该怎么办呢?先确认视频角度:+ (NSUInteger)degressFromVideoFileWithURL:(NSURL *)url { NSUInteger degress = 0; AVAsset *asset = [AVAsset assetWithURL:...转载 2019-11-21 15:20:29 · 508 阅读 · 0 评论 -
iOS视频合成,消除中间的黑帧
方法只有视频合成,多个视频合成等,至于视频后面加音频那些,各位还是去谷歌吧,话不多说,上代码:- (void)combineVideos{ NSString *firstVideo = _currentMovieURL.path; NSString *secondVideo = [[NSBundle mainBundle] pathForResource:@"trailVid...原创 2019-11-02 14:10:09 · 999 阅读 · 0 评论 -
iOS中关于NavigationController中preferredStatusBarStyle一直不执行的问题
-、第一种做法(iOS9.0中已经废除,不建议使用)在iOS 7中,我们也可以使用UIApplication的statusBarStyle方法来设置状态栏,不过,首先需要停止使用View controller-based status bar appearance。在project target的Info tab中,插入一个新的key,名字为View controller-based stat...原创 2019-10-19 16:35:02 · 418 阅读 · 0 评论 -
cocoapod 引入头文件自动补齐
使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少。但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适应。在stackoverflow上找到了解决办法:Go to the Target > \”Build Settings\” tab and find the \”User H原创 2016-03-29 15:18:33 · 525 阅读 · 0 评论 -
xcode的indexing功能取消,出现无法command点击跳转方法,代码变白的解决办法
最近xcode特别卡 情急之下网上看了一个去掉xcode自带的indexing的方法,按照教程操作之后,xcode的确不卡了,但是出现了问题就是代码颜色全部变白,command点击方法不能跳转,出现一个问号,失去了代码联想功能,弄了两天,试过了很多方法,终于找到一个方法可以完美解决。1.如果是去掉indexing的话,将去掉的时候在终端内输入的代码后面的1改为0即可XCode 的inde原创 2016-04-20 17:07:01 · 5430 阅读 · 0 评论 -
苹果4的手机中UIscrollview无法滑动的解决办法
最近做项目遇到一位用户使用苹果4手机,遇到了UIscrollview无法滑动的问题,查找后得知,原因是发现要放在viewDidAppear里面。。。。运行。。。。还是不行,什么毛病?难道网上大神的帖子都是骗人的?说好的解决方案呢....找来找去也没找到方法,最后憋了1分钟,发现又有个新方法叫viewDidLayoutSubviews,尼玛,这啥时候出来的方法啊。果然这个方法是控制layout的原创 2016-04-20 17:11:23 · 438 阅读 · 0 评论 -
xcode7.3更新后import头文件不能自动弹出相关.h文件的设置
最近更新7.3版本,别的都好,不能引入头文件每次都要复制粘贴,特麻烦,百度了一下,找到了方法如图操作即可。原创 2016-04-21 13:56:14 · 2245 阅读 · 0 评论 -
使用ASI网络请求后,程序闪退的问题
项目中使用ASI网络请求,页面内有一个按钮,点击之后获取服务器数据然后跳转到下一个viewcontroller,这时点击按钮就会崩溃,查了一下 是因为跳转页面时 没有清除网络请求的原因,所以在项目的viewwilldisappear里 还有左上角的返回上个页面的事件里,加了点代码,而后在每一个网络请求的setcompleteBlock处上方加一个self. request1=ASIFormDat原创 2016-04-28 09:40:00 · 634 阅读 · 0 评论 -
iOS中正则表达式的使用方法及学习介绍
iOS开发-正则表达式正则表达式是一种用来进行文本匹配的工具,其语法优美简洁。在开发中,查找、对比以及匹配字符串是家常便饭的业务,通过正则表达式我们将这些业务描述成某些需求规则,来让我们的代码更美观、实用。例如我们要验证用户输入的密码长度是否满足6~18位的长度,新手最常见的验证方式是判断输入的密码长度return (textField.text.length >= 6 &转载 2016-04-29 11:43:38 · 414 阅读 · 0 评论 -
oc中调用js的方法和命令
获取所有html:NSString *lJs = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];获取body: [webView stringByEvaluatingJavaScriptFromString:@"document.docum原创 2016-04-29 14:25:56 · 1047 阅读 · 0 评论 -
tableview有多项选择时 ,只能选中一个,
有的时候会遇到需求,比如让你选择一个银行,虽然所有的银行列表在tableview中可编辑的时候前面都可以勾选,但是选中第二个的时候 第一个就会消失选择状态,这是怎么做的呢?研究了一下写成如下图所示 就可以了这样 比如你点击一个按钮 ,点击事件里写成tableview.edit=yes,就出县可选状态了,这样就能达到目的了原创 2016-05-04 10:31:48 · 602 阅读 · 0 评论 -
webview页面的返回和前进
self.webview.canGoBack?[self.webviewgoBack]:[self.navigationControllerpopViewControllerAnimated:YES];条件表达式,A?B:C 如果A为真,则执行B,如果A为假,则执行C,这里调用webview的方法,返回一个布尔值,cangoback,self在加载webview的时候 进入的第一页须是原创 2016-05-13 15:54:33 · 1225 阅读 · 0 评论 -
UItableview的一些总结
定义tableview时,frame是显示的大小,contentsize是可移动的大小,最好根据一定的个数进行变化定义cell间的分割线,在table的属性里拿到 table.separatorStyle=UITableViewCellSeparatorStyleNone;//去掉cell间的分隔线分别计算每个cell的高度的不同时,根据返回数组的个数判断即可下拉时有时候ce原创 2016-05-20 14:53:37 · 279 阅读 · 0 评论 -
如果有人问你,GET和POST,有什么区别?你会如何回答?
如果有人问你,GET和POST,有什么区别?你会如何回答?我的经历前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把GET改个名字叫GET2。他反问道,那就是单纯的名字上的区别喽?我想了想,我觉得如果说再具体的区别原创 2016-05-25 09:57:31 · 483 阅读 · 0 评论 -
iOS使用蓝牙的一些注意事项。
配置plist,主要是为了让程序在后台也能持续连接蓝牙外围设备。否则使用coreblutooth 运行会崩溃提示backgroundXXX一些错误。需要添加一个array,里面有两个nsstring.info.Plist里Required background modes添加关于蓝牙数据传输a、b两项a.App shares data using CoreBluetoothb.原创 2016-05-27 09:43:21 · 673 阅读 · 0 评论 -
iOS生成二维码利用CoreImage
生成二维码就不是AVFoundation架构了,使用的是CoreImage。之前在航歌上面看见一篇使用Swift生成二维码的文章。看了之后,我就想想,Swift可以使用原生的,那么OC可不可以呢?经过测试是可以的,而且可以生成带logo的。使用起来也很简单。首先看看两种图片:左右两张图,都是同一个二维码,可以扫扫,有惊喜的。左边的一张看起来模糊,右边的看起来清晰多了转载 2016-06-07 14:31:57 · 774 阅读 · 0 评论 -
iOS UIAppearance使用详解
iOS5及其以后提供了一个比较强大的工具UIAppearance,我们通过UIAppearance设置一些UI的全局效果,这样就可以很方便的实现UI的自定义效果又能最简单的实现统一界面风格,它提供如下两个方法。+ (id)appearance这个方法是统一全部改,比如你设置UINavBar的tintColor,你可以这样写:[[UINavigationBar appeara原创 2016-06-13 15:55:45 · 525 阅读 · 0 评论 -
【OBJC类扩展之尺寸】UIView+Size
import import “UIView+Size.h” @implementation UIView (Size) - (void)setSize:(CGSize)size; { CGPoint origin = [self frame].origin;[self setFrame:CGRectMake(origin.x, origin.y, size.width, size转载 2016-06-16 09:17:34 · 3329 阅读 · 0 评论 -
【IOS类扩展之日期操作】NSDate+Helpers
import “Date.h”@implementation NSDate(Helpers)//获取年月日如:19871127. - (NSString *)getFormatYearMonthDay { NSString *string = [NSString stringWithFormat:@”%d%02d%02d”,[self getYear],[self getMonth],转载 2016-06-16 09:19:19 · 3148 阅读 · 0 评论 -
【OBJC类扩展之属性字典】NSObject+Property
#import #import @interface NSObject (Property)//将对象属性封装到字典,并返回字典-(NSDictionary *)propertyDictionary;@end@implementation NSObject (Property)-(NSDictionary *)propertyDictionary{转载 2016-06-16 09:24:01 · 1475 阅读 · 0 评论 -
iOS开发中@2x等后缀的图片干嘛用的
开发中,例如:nanshanImage.image=[UIImage imageNamed:@"index_pic.png"];在项目中还保存中[email protected]的图片,此图为了只适应960*640的分辨率手机而index_pic.png是适应640*320的手机,但是在代码中必须写成[UIImage imageNamed:@"index_pic.png"];这样系统自动原创 2015-10-21 14:54:42 · 2396 阅读 · 0 评论 -
上传APP至AppStore时打包出现U option must have a non-empty value
今天升级APP时要用application loader上传到AppStore上去,打包之后上传的时候报错,用的是Xcode7.0,如下:1.the u option must have a non-empty value2.the password must have a non-empty value后来查了一下,有两个解决办法,1:去iTunes connect下一个ap原创 2015-10-28 13:59:06 · 6427 阅读 · 0 评论 -
静态库的封装
新建 Xcode workspace打开 Xcode , 选择 File -> New -> Workspace , 将 Workspace 命名为 Test.xcworkspace , 并选择合适的目录。新建 Static Library 项目选择 File -> New -> Project , 项目模板选择 Cocoa Touch Static Library , 项目名原创 2015-11-13 11:59:50 · 571 阅读 · 0 评论 -
提高IOS开发效率的工具
ios开发中又很多可以提高开发效率的工具,这篇文章整理我使用提高效率的工具,如果你也有一些好的工具,可以向我推荐一下。-1 源代码依赖管理工具cocoaPods-2 Xcode 好用的插件1:源代码依赖管理工具cocoaPods以来管理工具有很多,例如java的maven,android的gradle,js的bower,ios中的cocaPods。他们可以帮你下载第原创 2015-11-18 16:04:02 · 711 阅读 · 0 评论 -
将UIview的image保存到本地的方法
定义一个按钮点击按钮,将self.imageView上面的image内容保存到本地相册,并指定判断保存成功与否的方法imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:- (IBAction)saveImageToAlbum:(id)sender { UIImageWriteToSavedPhoto原创 2015-11-04 14:16:46 · 953 阅读 · 0 评论 -
UIbutton文字相关
UIButton 文字显示位置设置 字体的大小设置 字体的颜色设置 注意事项btn.frame = CGRectMake(x, y, width, height);[btn setTitle: @"search" forState: UIControlStateNormal];//设置按钮上的自体的大小//[btn setFont: [UIFont systemFontSize:原创 2015-11-04 11:03:26 · 487 阅读 · 0 评论 -
百度推送iOS
1.首先生成CertificateSigningRequest文件。点击钥匙串访问-->从证书颁发机构请求证书-->填写用户邮件地址-->常用名-->点击储存-->继续-->最后点击保存。在桌面上就可以看见CertificateSigningRequest.certSigningRequest文件就是CSR文件,在我们生成CSR文件的同时,会在钥匙串访问中生成一对秘钥,名称为刚原创 2015-11-11 09:16:56 · 473 阅读 · 0 评论 -
iOS开发笔记6:图片轮播及其无限循环效果,ios笔记
平时APP中的广告位或者滚动的新闻图片等用到的就是图片轮播这种效果,实现方式主要有两种,一种是ScrollView+ImageView,另一种则是通过CollectionView,今天总结的是ScrollView这种方式。 1.图片轮播效果实现 主要实现思路是:根据图片总数及宽高设置好ScrollView的大小,每切换一张图片相当于在ScrollView上进行一个图原创 2015-11-26 15:27:44 · 680 阅读 · 0 评论 -
ABPeoplePickerNavigationController系统通讯录使用
iOS:ABPeoplePickerNavigationController系统通讯录使用昨天因项目需求要访问系统通讯录获取电话号码,于是乎从一无所知,开始倒腾,倒腾了一下午,总算了弄好了。写这边博客是为了记录一下,自己下一次弄的时候就别在出错了。同时,有和我一样的菜鸟能够避免走一下弯路。好了,言归正传,要访问系统的通讯录,首先需要添加AddressBook.framewo原创 2015-12-03 09:36:04 · 471 阅读 · 0 评论 -
iOS中添加UITapGestureRecognizer手势识别后,UITableView的didSelectRowAtIndexPath失效
用TableView写了一个登陆界面,帐号和密码两个Cell中加入了TextField。由于想在TableView的空白处点击时收起键盘,所以他注册了一个UITapGestureRecognizer来识别手势。ViewDidLoad中注册手势的部分代码如下:[cpp] view plaincopyUITapGe原创 2015-12-08 10:01:36 · 652 阅读 · 0 评论 -
ios搭一个简易计算器(利用masonry布局)
64原创 2015-12-18 11:21:57 · 837 阅读 · 0 评论 -
GPUimage制作视频水印,GIF水印,滤镜效果等
公司项目是录制视频的时候上面加个广告位,可能还是GIF图的格式,网上找了下资料共有两种方案解决这个问题,一个是AVcaturessetion,还有就是GPUimage,分别做了个demo看了下效果,使用AVfoundation的水印添加时的位置不好控制,合成效果也一般,CPU使用率很高,最后决定选用GPUimage这个框架来做。GPUimage:基于OpenGL ES 2.0的开源的图像...原创 2019-08-31 08:56:07 · 720 阅读 · 0 评论 -
preferredStatusBarStyle 不执行
UINavgationController中覆写preferredStatusBarStyle方法不执行的问题#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad...原创 2019-09-30 14:23:29 · 5111 阅读 · 0 评论