自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梁森的博客

梁森的笔记

  • 博客(258)
  • 收藏
  • 关注

原创 http://blog.csdn.net/u010105969/article/details/53541088

iOS开发中的WKWebView与JS的交互之前已经写过一个篇OC与JS交互的博客了(博客地址:http://blog.csdn.net/u010105969/article/details/53189934),可当时用来展示网页的控件是UIWebView,而在iOS8之后苹果推出了WKWebView,此控件也能用来显示网页,可与JS的交互却与UIWebView有所不同。====JS代码:...

2019-09-29 12:25:12 900

原创 ios开发中使用Masonry对多个视图进行均匀布局

之前写过一篇文章是和均匀布局相关的(文章地址:https://www.jianshu.com/p/8240d46aabc4)今天发现Masonry给出了我们均匀布局的方法。我们需要先将要进行均匀布局的视图放到一个数组中,然后通过Masonry为NSArray添加的一个分类:NSArray+MASAdditions.h调用数组的一个方法。核心代码: 效果图: demo地址:h...

2018-06-06 14:59:41 4140 1

原创 ios开发中解决UILabel上文字不能右对齐的问题

背景: 在开发中我们如果对一个UILabel根据内容高度进行自适应,有时会出现文字不能右对齐的情况。看图: 解决方法: 我们可以设置UILabel上的文字内容为两端对齐。代码: 可复制代码:/*****label上文字两端对齐******/NSMutableAttributedString * attributedString1 = [[NSMutableAttri...

2018-06-06 10:56:02 3184

原创 iOS开发中CornerStone的使用

看图:

2018-06-04 15:16:50 661

原创 Masonry的使用之利用子视图撑起父视图

之前的一篇文章(https://www.jianshu.com/p/9563f5b646d9)讲过使用Masonry布局让Cell的高度实现自适应,其实这就是通过子视图撑起了父视图Cell的高度。今天再通过简单的代码来看下子视图如何通过Masonry的布局来撑起父视图的(让父视图的大小实现自适应)。代码: 可复制代码: UIView* superView = [[UIViewal...

2018-05-31 11:09:44 8997

原创 iOS开发中利用AVFoundation进行音频的录制和播放

我们如果使用AVFoundation框架进行音频的录制和播放首先需要导入两个库:1.AVFoundation 2.AVKit我们使用AVAudioRecorder这个类进行音频的录制,使用AVAudioPlayer这个类进行音频的播放。AVAudioRecorder对象的创建: AVAudioPlayer对象的创建: 播放和停止播放的代码: demo地址:http...

2018-05-21 21:54:58 774

原创 iOS 开发中利用socket请求百度网页

socket一般是用于长连接请求,但socket同样可以用于HTTP这样的短连接请求,只不过在请求之后要关闭连接。使用socket主要分为两部:1.连接服务器 2.发送和接收数据1.连接服务器: 2.发送和接收数据: 请求并加载百度网页 demo地址:https://gitee.com/liangsenliangsen/socketQingQiuBaiDuWangYe....

2018-05-21 21:53:18 703

原创 iOS开发中使用DEBUG模式和RELEASE模式

背景:之前项目的线下和线上接口域名是手动来控制的,每次上线前都会将接口线下域名注释掉,将之前注释的线上域名放开,以此来将接口域名进行切换。这种操作在之前都没有出现问题,然而前段时间在上线的时候忘了进行域名的切换,导致上线之后接口还是线下接口。为了避免疏忽导致这种情况的再次出现,我们应该将线下域名放到DEBUG模式下,将线上域名放到RELEASE模式下,这样就能保证线上的接口域名肯定是正确的域名...

2018-05-15 11:58:43 779

原创 iOS开发中利用block解决NSTimer的循环引用问题

循环引用问题:将一个NSTimer对象作为一个控制器的的属性,这时当前VC对NSTimer对象进行了一次强引用。在创建NSTimer兑现的时候,NSTimer对象又将当前VC作为自己的target,这时NSTimer对象对当前VC进行了一次强引用,这样就造成了NSTimer和当前VC的循环引用,从而让VC和NSTimer都无法释放,最终导致内存泄漏。通常代码: 我们可以为NSTime...

2018-05-14 18:38:09 1620

原创 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 1895

原创 iOS开发中在swift项目中使用HandyJSON将字典转成模型

OC中常用的字典转模型三方:MJExtension、YYModel。swift中我目前使用HandyJSON将字典转成模型。看代码: HandyJSON代码比较简单,大家可以亲测。(本人使用的时候是swift4)本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友...

2018-05-10 18:31:31 3895

原创 iOS开发中网络请求三方Alamofire的使用

OC开发中网络请求类我们大多会使用AFNetworking,在swift中知名度较高的网络请求三方是Alamofire。使用方法:Alamofire可复制代码: func postRequest(urlStr:String, parameters:Parameters, finishCallBack:@escaping(_ responseObject:AnyObje...

2018-05-10 15:29:32 1536

原创 iOS开发中使用try catch获取程序崩溃原因

背景:在开发中遇到程序崩溃是家常便饭,我们的工作就是写bug,解决bug。然而有些崩溃原因,即使我们打断点控制台中也无法输出程序崩溃原因。这时,如果我们使用try catch就可能捕获到真正的崩溃原因,并将原因告诉我们。代码: try catch可复制代码: @try { // 可能会出现崩溃的代码 ...

2018-05-09 17:37:42 1010

原创 iOS开发中删除NSUserDefaults中所有记录

在开发中通常会使用NSUserDefaults对一些轻量级的数据进行持久性存储,在退出的时候通常会将NSUserDefaults中存储的所有数据删除。之前的做法是找到其存储的键,然后依次将存储的数据删除。可这样做会存在一些问题:1. 如果存储的数据过多的话,删除代码很多。2. 开发者稍不注意就会漏删几个数据。实际上是可以一步将NSUserDefaults中存储的数据全部删除的。代码:...

2018-05-09 17:36:38 521

原创 iOS 开发中Masonry和SnapKit在使用上的一些区别

居中:Masonry: masonry-X居中SnapKit:snapKit-X居中

2018-05-09 14:58:39 1456

原创 iOS开发中MJRefresh在swift项目中的简单使用

背景:在swift工程中要使用一个刷新控件,网上的建议还是直接使用MJRefresh,于是就在swift工程中导入了MJRefresh,并进行了使用。具体使用:(使用cocoaPods将MJRefresh继承到项目中,MJRefresh虽然是OC版本的,但确能在swift项目中直接使用并不用进行桥接)为UITableView添加刷新、加载的视图 2.刷新、加载的方法 ...

2018-04-26 11:41:09 3369 2

原创 iOS开发中使用OC和swift的对比

背景:为了更好地学习,本人决定将学习的swift和OC进行下对比。对比:1.import的类OC:某个只要要使用某个类就要将该类import。 swift:如果是用户自己创建类,其他类无需import可以直接使用。pod的一些三方类和系统的一些类,在使用的时候需要import2.遵守协议实现协议中的代理方法OC: OC中的遵守协议 swift: swift...

2018-04-26 11:40:12 4468

原创 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 1375

原创 iOS开发中使用系统中没有的字体-swift

背景:在学习swift的一个demo中见到了设置字体的方法(系统中没有的字体),于是就想记录下来,以备不时之需。方法:需要将我们要使用的字体且系统中没有的导入到我们的项目中,字体文件是以.ttf为后缀的。字体文件将字体导入到工程后,在info.plist文件中添加我们导入的字体info.plist在“Build Phases”的“Copy Bundle...

2018-04-24 18:38:59 375

原创 iOS开发中swift中的类方法和实例方法

OC中有类方法和对象方法,它们在形式上的区别就是类方法前是“+”号,对象方法前是“-”号。swift中也有类方法和对象方法,它们在形式上的区别就是类方法前有“class”或“static”,对象方法前没有。 对象方法和类方法的形式区别本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。...

2018-04-18 17:33:13 2888

原创 iOS开发中实现OC和Swift的混编

背景:最近又开始看了一些关于Swift的视频、博客、书,发现swift相对于OC使用起来更简洁了,于是就想在原有项目中引入swift。原有的项目都是使用OC写的,既然要在原有项目中引入swift文件首先就要实现OC和swift的混编设置。混编设置:在OC项目中创建一个swift文件的时候首先Xcode会弹出一个提示框:这时我们要选择“Create Bridging Head...

2018-04-18 17:10:08 7495

原创 iOS开发中利用runtime为某个类的category增加属性

背景:项目中为了减少AppDelegate中的代码为AppDelegate写了一个分类,部分代码放在了该分类中。有一个功能需要发送通知,在AppDelegate中进行监听并将通知发送过来的数据进行存储(在AppDelegate的分类中实现)。由于存储的数据需要在全局进行使用,所以本人就想到了在AppDelegate中添加一个属性,将接收到的数据存储在该属性中,以供在AppDelegate的分类...

2018-04-16 18:24:57 192

原创 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 453

原创 iOS开发中图片的模糊处理

背景:产品要求对项目中的图片具有模糊处理功能。实现过程:搜索相关资料得到的几种模糊处理的图片的方法:使用vImage_Buffer (被产品否定,理由:效果不好)使用高斯模糊处理图片(被自己否定,理由:太耗CPU,CPU瞬间飙升到99%产生卡顿)使用GPUImage对图片进行模糊处理 (被自己否定,理由:太耗CPU,产生卡顿)使用网上的一个分类:UIImage+Ima...

2018-04-16 11:29:29 1039 1

原创 iOS开发中利用UICollectionView创建文字轮播控件

背景:公司项目中有一个需求:在首页上添加一个纵向滚动的文字轮播广告。效果图: 轮播效果图 实现过程:上网搜索相关demo搜到一个demo,demo是利用UIScrollView实现的思考:既然能用UIScrollView实现为什么不用UITableView去实现呢?使用UITableView就不用考虑复用以及调整scrollView上子控件位置的问题了。手动敲代码利用U...

2018-04-12 13:38:16 660

原创 iOS开发中让UIButton上的image进行360度旋转

背景:在项目中的一个网页中有一个“换一换”按钮,点击更换页面上的书籍。在原生页面也有一个“换一换”按钮,该按钮样式和功能都和网页中的“换一换”按钮一样。两者不同的是点击网页中的“换一换”按钮,按钮上的图片会有一个360度旋转的动画效果,而原生的没有任何效果。为了统一,要求在点击原生的“换一换”按钮时,上面的图片也有一个360度动画旋转效果。代码:- (void)changeActi...

2018-04-10 10:52:50 1637

原创 iOS开发中解决报错之library not found for -lAFNetworking

简书地址:https://www.jianshu.com/p/e36fe721913f

2018-04-04 10:39:17 1471

原创 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 623

原创 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 530

原创 iOS开发中使用SVProgressHUD遇到的问题之在有些地方不显示

背景:在对公司之前项目进行版本迭代的时候发现在使用SVProgressHUD的时候,活动指示器并没有出现。表象原因:之前开发人员在使用SVProgressHUD的时候使用了一个方法:[SVProgressHUD setContainerView:webView]; 解决方法:将上面使用的方法注释掉。本质原因:暂时还不知道。本人在使用SVProgressHUD的时候...

2018-03-11 21:55:36 4379

原创 iOS开发中动态更换应用图标

简书地址:https://www.jianshu.com/p/7b0695273a42

2018-02-26 16:03:29 472

原创 iOS开发中创建定时器

应用场景:1.轮播图(轮播图上的图片定时轮播)2.跑秒按钮(点击获取验证码之后,按钮上的秒数进行倒计时) 创建定时器的方式:1.利用NSTimer2.利用GCD中的dispatch_source_t 代码:利用NSTimer创建定时器的代码:方式一:(void)startTimer{self.timer = [NSTimer timerWithTimeI...

2018-02-26 15:51:56 358

原创 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 4999

原创 iOS开发中使用UITableView提高用户体验

博客地址:https://www.jianshu.com/p/fe34e9178835 发现csdn上不能上传动态图,就把博客放在简书上了。

2018-02-16 20:31:34 157

原创 iOS开发中简单代码实现UITableView头视图拉伸效果

需求:实现UITableView头部视图(图片)能拉伸的效果。 效果图:头部图片能拉伸思路:使用masonry对头视图上的图片进行布局,当UITableView向下进行滑动的时候(即偏移量为负),更新头视图上图片top的约束,其约束与偏移量的y相等。 代码:(void)scrollViewDidScroll:(UIScrollView *)scrollView{Hea

2018-02-06 14:43:17 575

原创 iOS开发中的快速排序

快速排序:快速排序是对冒泡排序的一种改进。基本思想:通过一趟排序将数据分割成两部分,其中一部分的所有数据都比另一部分的所有数据都小,但是两部分数据是无序的。然后再对两部分的数据分别进行第一趟的排序,直到最后的数据是有序的。 排序步骤:1.选择所有数据中的第一个数据作为一个比较的标准。(左侧数据下标i 右侧数据下标j。最开始i = 0,j = 数据个数-1)2.从数据的最右

2018-02-02 14:08:02 307

原创 iOS开发中使用Realm数据库

之前看了一篇博客讲的是Realm数据库。博客中包含了Realm数据库的下载地址、配置、使用以及如何查看数据库中的数据,个人感觉还是不错的。博客地址:https://www.jianshu.com/p/4f3ebe815853本人在本篇博客里还想做一个自我学习Realm的小总结。1.存储到Realm数据库中类的创建:我们创建的类需要继承自RLMObject,其他的就和创建普通的OC类

2018-01-24 16:59:49 512 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 3552

原创 iOS开发中终止线程中正在执行的任务

目的:终止一个线程中正在执行的任务。思路:设置一个标识符,假如是BOOL类型的,当它为NO的时候执行任务,当它变为YES的时候终止执行任务。代码: 本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。

2018-01-23 13:48:43 5309

原创 iOS开发中利用YYModel进行归档

上篇博客说了利用MJExtension进行归档(http://blog.csdn.net/u010105969/article/details/79128051),本篇博客说说如何使用YYModel如何对自定义对象进行归档。实际代码也很简单,只需在自定义类中重写方法:(void)encodeWithCoder:(NSCoder*)aCoder {[self yy_modelEncod

2018-01-22 13:45:46 2101

空空如也

空空如也

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

TA关注的人

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