- 博客(258)
- 收藏
- 关注
原创 http://blog.youkuaiyun.com/u010105969/article/details/53541088
iOS开发中的WKWebView与JS的交互之前已经写过一个篇OC与JS交互的博客了(博客地址:http://blog.youkuaiyun.com/u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与UIWebView有所不同。====JS代码:...
2019-09-29 12:25:12
999
原创 ios开发中使用Masonry对多个视图进行均匀布局
之前写过一篇文章是和均匀布局相关的(文章地址:https://www.jianshu.com/p/8240d46aabc4)今天发现Masonry给出了我们均匀布局的方法。我们需要先将要进行均匀布局的视图放到一个数组中,然后通过Masonry为NSArray添加的一个分类:NSArray+MASAdditions.h调用数组的一个方法。核心代码: 效果图: demo地址:h...
2018-06-06 14:59:41
4224
原创 ios开发中解决UILabel上文字不能右对齐的问题
背景: 在开发中我们如果对一个UILabel根据内容高度进行自适应,有时会出现文字不能右对齐的情况。看图: 解决方法: 我们可以设置UILabel上的文字内容为两端对齐。代码: 可复制代码:/*****label上文字两端对齐******/NSMutableAttributedString * attributedString1 = [[NSMutableAttri...
2018-06-06 10:56:02
3255
原创 Masonry的使用之利用子视图撑起父视图
之前的一篇文章(https://www.jianshu.com/p/9563f5b646d9)讲过使用Masonry布局让Cell的高度实现自适应,其实这就是通过子视图撑起了父视图Cell的高度。今天再通过简单的代码来看下子视图如何通过Masonry的布局来撑起父视图的(让父视图的大小实现自适应)。代码: 可复制代码: UIView* superView = [[UIViewal...
2018-05-31 11:09:44
9187
原创 iOS开发中利用AVFoundation进行音频的录制和播放
我们如果使用AVFoundation框架进行音频的录制和播放首先需要导入两个库:1.AVFoundation 2.AVKit我们使用AVAudioRecorder这个类进行音频的录制,使用AVAudioPlayer这个类进行音频的播放。AVAudioRecorder对象的创建: AVAudioPlayer对象的创建: 播放和停止播放的代码: demo地址:http...
2018-05-21 21:54:58
816
原创 iOS 开发中利用socket请求百度网页
socket一般是用于长连接请求,但socket同样可以用于HTTP这样的短连接请求,只不过在请求之后要关闭连接。使用socket主要分为两部:1.连接服务器 2.发送和接收数据1.连接服务器: 2.发送和接收数据: 请求并加载百度网页 demo地址:https://gitee.com/liangsenliangsen/socketQingQiuBaiDuWangYe....
2018-05-21 21:53:18
733
原创 iOS开发中使用DEBUG模式和RELEASE模式
背景:之前项目的线下和线上接口域名是手动来控制的,每次上线前都会将接口线下域名注释掉,将之前注释的线上域名放开,以此来将接口域名进行切换。这种操作在之前都没有出现问题,然而前段时间在上线的时候忘了进行域名的切换,导致上线之后接口还是线下接口。为了避免疏忽导致这种情况的再次出现,我们应该将线下域名放到DEBUG模式下,将线上域名放到RELEASE模式下,这样就能保证线上的接口域名肯定是正确的域名...
2018-05-15 11:58:43
808
原创 iOS开发中利用block解决NSTimer的循环引用问题
循环引用问题:将一个NSTimer对象作为一个控制器的的属性,这时当前VC对NSTimer对象进行了一次强引用。在创建NSTimer兑现的时候,NSTimer对象又将当前VC作为自己的target,这时NSTimer对象对当前VC进行了一次强引用,这样就造成了NSTimer和当前VC的循环引用,从而让VC和NSTimer都无法释放,最终导致内存泄漏。通常代码: 我们可以为NSTime...
2018-05-14 18:38:09
1647
原创 iOS开发中在swift项目中使用Kingfisher下载图片
在iOS开发中不可避免地会用到图片下载功能,在OC中有SDWebImage这个经典三方库,而在swift中同样有一个知名图片下载的三方库,那就是Kingfisher。Kingfisher的使用: 可复制代码: imageView.kf.setImage(with: ImageResource(downloadURL: URL.init(string: “http://...
2018-05-14 11:17:06
1944
原创 iOS开发中在swift项目中使用HandyJSON将字典转成模型
OC中常用的字典转模型三方:MJExtension、YYModel。swift中我目前使用HandyJSON将字典转成模型。看代码: HandyJSON代码比较简单,大家可以亲测。(本人使用的时候是swift4)本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友...
2018-05-10 18:31:31
3938
原创 iOS开发中网络请求三方Alamofire的使用
OC开发中网络请求类我们大多会使用AFNetworking,在swift中知名度较高的网络请求三方是Alamofire。使用方法:Alamofire可复制代码: func postRequest(urlStr:String, parameters:Parameters, finishCallBack:@escaping(_ responseObject:AnyObje...
2018-05-10 15:29:32
1655
原创 iOS开发中使用try catch获取程序崩溃原因
背景:在开发中遇到程序崩溃是家常便饭,我们的工作就是写bug,解决bug。然而有些崩溃原因,即使我们打断点控制台中也无法输出程序崩溃原因。这时,如果我们使用try catch就可能捕获到真正的崩溃原因,并将原因告诉我们。代码: try catch可复制代码: @try { // 可能会出现崩溃的代码 ...
2018-05-09 17:37:42
1059
原创 iOS开发中删除NSUserDefaults中所有记录
在开发中通常会使用NSUserDefaults对一些轻量级的数据进行持久性存储,在退出的时候通常会将NSUserDefaults中存储的所有数据删除。之前的做法是找到其存储的键,然后依次将存储的数据删除。可这样做会存在一些问题:1. 如果存储的数据过多的话,删除代码很多。2. 开发者稍不注意就会漏删几个数据。实际上是可以一步将NSUserDefaults中存储的数据全部删除的。代码:...
2018-05-09 17:36:38
565
原创 iOS 开发中Masonry和SnapKit在使用上的一些区别
居中:Masonry: masonry-X居中SnapKit:snapKit-X居中
2018-05-09 14:58:39
1497
原创 iOS开发中MJRefresh在swift项目中的简单使用
背景:在swift工程中要使用一个刷新控件,网上的建议还是直接使用MJRefresh,于是就在swift工程中导入了MJRefresh,并进行了使用。具体使用:(使用cocoaPods将MJRefresh继承到项目中,MJRefresh虽然是OC版本的,但确能在swift项目中直接使用并不用进行桥接)为UITableView添加刷新、加载的视图 2.刷新、加载的方法 ...
2018-04-26 11:41:09
3441
1
原创 iOS开发中使用OC和swift的对比
背景:为了更好地学习,本人决定将学习的swift和OC进行下对比。对比:1.import的类OC:某个只要要使用某个类就要将该类import。 swift:如果是用户自己创建类,其他类无需import可以直接使用。pod的一些三方类和系统的一些类,在使用的时候需要import2.遵守协议实现协议中的代理方法OC: OC中的遵守协议 swift: swift...
2018-04-26 11:40:12
4508
原创 iOS开发中在swift项目中pod snapkit库时报错
报错:[!] Pods written in Swift can only be integrated as frameworks; add use_frameworks! to your Podfile or target to opt into using it. The Swift Pod being used is: SnapKit更改podfile文件:在podfile文件中...
2018-04-25 09:55:08
1425
原创 iOS开发中使用系统中没有的字体-swift
背景:在学习swift的一个demo中见到了设置字体的方法(系统中没有的字体),于是就想记录下来,以备不时之需。方法:需要将我们要使用的字体且系统中没有的导入到我们的项目中,字体文件是以.ttf为后缀的。字体文件将字体导入到工程后,在info.plist文件中添加我们导入的字体info.plist在“Build Phases”的“Copy Bundle...
2018-04-24 18:38:59
403
原创 iOS开发中swift中的类方法和实例方法
OC中有类方法和对象方法,它们在形式上的区别就是类方法前是“+”号,对象方法前是“-”号。swift中也有类方法和对象方法,它们在形式上的区别就是类方法前有“class”或“static”,对象方法前没有。 对象方法和类方法的形式区别本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。...
2018-04-18 17:33:13
2943
原创 iOS开发中实现OC和Swift的混编
背景:最近又开始看了一些关于Swift的视频、博客、书,发现swift相对于OC使用起来更简洁了,于是就想在原有项目中引入swift。原有的项目都是使用OC写的,既然要在原有项目中引入swift文件首先就要实现OC和swift的混编设置。混编设置:在OC项目中创建一个swift文件的时候首先Xcode会弹出一个提示框:这时我们要选择“Create Bridging Head...
2018-04-18 17:10:08
7537
原创 iOS开发中利用runtime为某个类的category增加属性
背景:项目中为了减少AppDelegate中的代码为AppDelegate写了一个分类,部分代码放在了该分类中。有一个功能需要发送通知,在AppDelegate中进行监听并将通知发送过来的数据进行存储(在AppDelegate的分类中实现)。由于存储的数据需要在全局进行使用,所以本人就想到了在AppDelegate中添加一个属性,将接收到的数据存储在该属性中,以供在AppDelegate的分类...
2018-04-16 18:24:57
211
原创 iOS开发中创建一个纵向滑动控件
先看一个效果图:https://upload-images.jianshu.io/upload_images/1154538-cb819f377dc2e3ab.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/463滑动控件 一张图胜过千言万语,一张动态图更是胜过多张图。看了动态效果图,看者也就应该猜到了本篇文章要说的大致内容了。...
2018-04-16 11:31:48
486
原创 iOS开发中图片的模糊处理
背景:产品要求对项目中的图片具有模糊处理功能。实现过程:搜索相关资料得到的几种模糊处理的图片的方法:使用vImage_Buffer (被产品否定,理由:效果不好)使用高斯模糊处理图片(被自己否定,理由:太耗CPU,CPU瞬间飙升到99%产生卡顿)使用GPUImage对图片进行模糊处理 (被自己否定,理由:太耗CPU,产生卡顿)使用网上的一个分类:UIImage+Ima...
2018-04-16 11:29:29
1077
1
原创 iOS开发中利用UICollectionView创建文字轮播控件
背景:公司项目中有一个需求:在首页上添加一个纵向滚动的文字轮播广告。效果图: 轮播效果图 实现过程:上网搜索相关demo搜到一个demo,demo是利用UIScrollView实现的思考:既然能用UIScrollView实现为什么不用UITableView去实现呢?使用UITableView就不用考虑复用以及调整scrollView上子控件位置的问题了。手动敲代码利用U...
2018-04-12 13:38:16
708
原创 iOS开发中让UIButton上的image进行360度旋转
背景:在项目中的一个网页中有一个“换一换”按钮,点击更换页面上的书籍。在原生页面也有一个“换一换”按钮,该按钮样式和功能都和网页中的“换一换”按钮一样。两者不同的是点击网页中的“换一换”按钮,按钮上的图片会有一个360度旋转的动画效果,而原生的没有任何效果。为了统一,要求在点击原生的“换一换”按钮时,上面的图片也有一个360度动画旋转效果。代码:- (void)changeActi...
2018-04-10 10:52:50
1693
原创 iOS开发中解决报错之library not found for -lAFNetworking
简书地址:https://www.jianshu.com/p/e36fe721913f
2018-04-04 10:39:17
1502
原创 iOS开发中解决报错之the file had a tree conflict
在开发过程中如果是多人开发,那么我们会经常commit代码、pull代码、push代码。本人之前在merge(合并)代码的时候遇到一个冲突:the file had a tree conflict背景:某个分支上的代码有问题,从master上切换到有问题代码的分支上。在分支上解决有问题的代码。将分支上的代码merge到master上。报错:the file had a tree c...
2018-04-04 10:10:13
642
原创 iOS开发中解决报错之The file .DS_Store had a tree conflict.
最近在pull代码的时候Xcode报错提示:The file .DS_Store had a tree conflict.我的做法是将该项目目录cd到终端中,然后在终端中输入命令git clean -d -fx即可。、本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。iOS开发中解决报错之The file .DS_Store had a tree confl...
2018-04-04 10:00:58
553
原创 iOS开发中使用SVProgressHUD遇到的问题之在有些地方不显示
背景:在对公司之前项目进行版本迭代的时候发现在使用SVProgressHUD的时候,活动指示器并没有出现。表象原因:之前开发人员在使用SVProgressHUD的时候使用了一个方法:[SVProgressHUD setContainerView:webView]; 解决方法:将上面使用的方法注释掉。本质原因:暂时还不知道。本人在使用SVProgressHUD的时候...
2018-03-11 21:55:36
4451
原创 iOS开发中创建定时器
应用场景:1.轮播图(轮播图上的图片定时轮播)2.跑秒按钮(点击获取验证码之后,按钮上的秒数进行倒计时) 创建定时器的方式:1.利用NSTimer2.利用GCD中的dispatch_source_t 代码:利用NSTimer创建定时器的代码:方式一:(void)startTimer{self.timer = [NSTimer timerWithTimeI...
2018-02-26 15:51:56
384
原创 iOS开发中解决Compiling IB documents for earlier than ios 7 is no longer supported的问题
问题:在利用Xcode9运行之前的项目的时候报错:Compiling IB documents for earlier than ios 7 is no longer supported。(编译比ios7更早的IB文档不再受支持。) 找到报错的IB,将Interface Builder Document中的Builders for改为“iOS 7.0 and Later”即可。...
2018-02-16 20:49:39
5043
原创 iOS开发中使用UITableView提高用户体验
博客地址:https://www.jianshu.com/p/fe34e9178835 发现csdn上不能上传动态图,就把博客放在简书上了。
2018-02-16 20:31:34
170
原创 iOS开发中简单代码实现UITableView头视图拉伸效果
需求:实现UITableView头部视图(图片)能拉伸的效果。 效果图:头部图片能拉伸思路:使用masonry对头视图上的图片进行布局,当UITableView向下进行滑动的时候(即偏移量为负),更新头视图上图片top的约束,其约束与偏移量的y相等。 代码:(void)scrollViewDidScroll:(UIScrollView *)scrollView{Hea
2018-02-06 14:43:17
603
原创 iOS开发中的快速排序
快速排序:快速排序是对冒泡排序的一种改进。基本思想:通过一趟排序将数据分割成两部分,其中一部分的所有数据都比另一部分的所有数据都小,但是两部分数据是无序的。然后再对两部分的数据分别进行第一趟的排序,直到最后的数据是有序的。 排序步骤:1.选择所有数据中的第一个数据作为一个比较的标准。(左侧数据下标i 右侧数据下标j。最开始i = 0,j = 数据个数-1)2.从数据的最右
2018-02-02 14:08:02
328
原创 iOS开发中使用Realm数据库
之前看了一篇博客讲的是Realm数据库。博客中包含了Realm数据库的下载地址、配置、使用以及如何查看数据库中的数据,个人感觉还是不错的。博客地址:https://www.jianshu.com/p/4f3ebe815853本人在本篇博客里还想做一个自我学习Realm的小总结。1.存储到Realm数据库中类的创建:我们创建的类需要继承自RLMObject,其他的就和创建普通的OC类
2018-01-24 16:59:49
563
1
原创 iOS开发中在指定的某些线程执行完之后去执行其他线程
背景:有四个线程A、B、C、D。需求:在A、B线程执行完之后去执行线程C、D。实现方式:GCD1.利用GCD中的barrier2.利用GCD中的group2.1 利用在组中所有的线程执行完之后再去执行其他的线程2.2 利用wait代码:barrier: group相关代码: // 全局变量group dispatch_group_t
2018-01-23 14:18:09
3576
原创 iOS开发中终止线程中正在执行的任务
目的:终止一个线程中正在执行的任务。思路:设置一个标识符,假如是BOOL类型的,当它为NO的时候执行任务,当它变为YES的时候终止执行任务。代码: 本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。
2018-01-23 13:48:43
5346
原创 iOS开发中利用YYModel进行归档
上篇博客说了利用MJExtension进行归档(http://blog.youkuaiyun.com/u010105969/article/details/79128051),本篇博客说说如何使用YYModel如何对自定义对象进行归档。实际代码也很简单,只需在自定义类中重写方法:(void)encodeWithCoder:(NSCoder*)aCoder {[self yy_modelEncod
2018-01-22 13:45:46
2151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人