自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

转载 【iOS学习】 视频添加动效水印步骤简介

简概:本次文章主要介绍给视频添加动效水印的几种方式,以及实现代码。使用AVFoundation + CoreAnimation 合成方式基于Lottie 核心也是 CoreAnimation ,这里我们也可以使用AVFoundation + Lottie 合成方式我们同样可以使用序列帧资源或者gif资源 来编写一段keyFrameAnination,这里我们就介绍一段 AVFoundation +...

2018-03-31 10:46:21 876

转载 iOS Xcode9 封装生成.framework

从上面我们可以看出.a 和.framework的区别就是.a+.h+soureFile=.framework,这样的话,我们还是直接封装个.framework比较好。封装framework步骤1、打开xcode,新建工程这里我使用的是Xcode9,选择Cocoa Touch Framework,然后点next。2、创建功能类或者拖入已有的功能类这里我创建的是ShowResult类。3、实现功能类的...

2018-03-30 15:37:58 224

转载 在iOS中如何正确的实现行间距与行高

最近准备给 VirtualView-iOS 的文本元素新增一个 lineHeight 属性,以便和 VirtualView-Android 配合时能更精确的保证双平台的一致性。面向 Google 以及 Stack Overflow 编程了一会后发现,能查到的资料大部分是介绍如何实现 lineSpacing 属性,而不是 lineHeight。但是我就是因为 iOS 和 Android 的默认 li...

2018-03-29 14:37:50 397

转载 iOS动画-扩散波纹效果

最终效果实现思路动画的表现形式是颜色以及大小的变化,整体效果可以看做多个单独的波纹效果的叠加。因此我们可以创建多个CALayer,分别赋予CABasicAnimation动画,组成最终的动画效果。因此我们先从单个波纹扩散效果来尝试,然后根据时间差将效果叠加起来。代码1.新建动画 View RippleAnimationView,动画效果在animationLayer上实现。新建RippleAnim...

2018-03-28 11:13:38 1430

转载 神气的 iOS 打包

这就是全自动的打包到上传的脚本看完之后会发现其实一点都不神气、反而弱爆了,毕竟很久之前很多大神都在使用这么牛气的方式了。但是对于我来说,还是有点神气的。毕竟之前打包20分钟、并且还忙得不亦乐乎。现在不一样了,一个脚本运行起来,只需两秒钟,并且打包与上传全搞定,那就是一站式服务。用来学习,也是很不错的。[偷笑5分钟、犯困一小时]0、来点废话提提神这是花了半个下午的成果,初次使用难免有很多看似高大上的...

2018-03-27 17:48:57 205

转载 iOS开发之登录与访客

发现问题与自我革命在开发中,一直有这样一种情境:App的未注册用户可以使用部分功能(访客视图),一旦需要使用一些核心功能或者获取个性化、差异化的服务时,就需要用户登录(登录定制)。一般的情况是:用户点击某个按钮 ——> 弹出登录界面 ——> 输入信息   ——> 登录验证  ——> 界面发生变化在几年前做开发时,由于项目需要快速上线,所以顾不上思考(其实是自己太菜),直接在...

2018-03-26 09:44:49 748

转载 iOS 屏幕旋转问题总结

1、UIDeviceOrientation 设备的物理方向简介UIDeviceOrientation即我们手持的移动设备的Orientation,是一个三围空间,故有六个方向:1234567  UIDeviceOrientationUnknown,  UIDeviceOrientationPortrait,            // Device oriented vertically, hom...

2018-03-25 14:37:43 247

转载 【iOS】Moya网络层 + ObjectMapper数据转模型

Swift中的网络请求库 Alamofire,相当于OC中的 AFNetworking,在使用的过程中,我们一般都会对Alamofire做进一步的封装,可是结果有时不太理想。所以就引出了 Moya,它是一个网络抽象层,封装的比较充分,并且是直接调用Alamofire,借用一下Moya的图如下。Moya完成网络请求拿到JSON数据之后,通常都需要转模型,所以本文顺带介绍一下ObjectMapper的...

2018-03-24 10:56:29 1551

转载 程序员面试闪充--iOS密码学

但凡一个有点追求的iOS开发,总得会点加密技术,要不然用户信息就有可能被其他人获取用来做一些对我们不利的事情。一、base64base64是一种完全可反编译的编码方式,因为编码算法完全公开,所以分分钟就会被破解,所以这个一定不能用于密码的“加密”,一些不需要特别加密的,例如用户名,我们可以用base64进行编码,让人不是一眼就能看出来是什么。Base64 是网络上最常见的用于传输8Bit 字节代码...

2018-03-23 16:52:18 298

转载 iOS重构实践

项目简介和MVP模式重构项目简介首先简单介绍一下项目情况。我们原有项目的架构是比较标准的MVC模式,也是苹果官方推荐的架构模式。Model层用来表示实体类,View层负责界面展示和传递UI事件,Controller层负责大部分的业务逻辑。除此之外,对一部分公共的可复用的逻辑,我们抽象出Service层,提供给Controller使用,另外网络层也独立出来。下图比较清楚地展示了整体架构整体架构MVC...

2018-03-22 14:44:40 248

转载 【iOS学习】使用 Xcode 开发 Clang 插件

前言最近在跟老大的聊天中聊到了一个比较特殊的需求:是否有办法在编译阶段检查某个方法的参数与返回值的类型相同,如果类型不一致的话能抛出编译错误的提示。这似乎已经不是 Objective-C 或者 Swift 的语言语法本身所能解决的了,老大还指点了可以从编译器等底层中进行研究。于是,我踏进了 Clang 和 LLVM 的大门。我打算将 Clang 的研究心得分为几篇文章来写,这是 Clang 之旅的...

2018-03-21 17:27:58 596

转载 iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

1、引言相信大家都遇到过一段特殊文本可以让iOS设备所有app闪退的经历。前段时间大年初一,又出现某个印度语字符引起iOS11系统奔溃,所幸iOS版微信客户端做了保护并没有引起太大问题(字符处理这类技术问题,其实曾在Android版微信上导致过严重的用户体验危机。一般来说,特殊字符闪退是系统漏洞引起,只要更新系统就行。但大部分用户不愿意更新系统,而苹果也不一定第一时间解决问题。另外后台可以拦截恶意...

2018-03-20 16:53:58 1465

转载 iOS layoutMargins 的坑:一个活久见的 bug

神奇的效果有天一回到座位上,张皇失措的应届生同事就好像看到救星一样把我抓过去:“仓薯,不好了,你看它这样了!!”我一看,从不说粗口的仓薯也忍不住说了一句:“我……去,我做了这么多年 iOS 还从来没遇见这样的事。” 把领导也叫过来看。领导拿来玩了一会儿,然后说:“哈哈哈,感觉真想要实现这个效果,还不是那么容易呢……”究竟是什么 bug 让我们都这么不淡定呢?看下面的 gif 就知道了:这个方块形的...

2018-03-19 23:13:48 924 1

转载 iOS 中关于列表滚动流畅方案的一些探讨

近些年,App 越来越推崇体验至上,随随便便乱写一通的话已经很难让用户买帐了,顺滑的列表便是其中很重要的一点。如果一个 App 的页面滚动起来总是卡顿卡顿的,轻则被当作反面教材来吐槽或者衬托“我们的 App balabala...”,重则直接卸载。正好最近在优化这一块儿,总结记录下。优化点,我自己总结了下收益最大的两个优化点:避免重复多次计算 cell 行高文本异步渲染大家可以看看上面这张图的对比...

2018-03-18 16:40:52 258

转载 在iOS中绘制录音音频波形图

效果图条状波形图线状波形图配置AvAudioSession绘制波形图前首先需要配置好AVAudioSession,同时需要建立一个数组去保存音量数据。相关属性recorderSetting用于设定录音音质等相关数据。timer以及updateFequency用于定时更新波形图。soundMeter和soundMeterCount用于保存音量表数组。recordTime用于记录录音时间,可以用于判断...

2018-03-17 12:54:05 6038

转载 【iOS】Carthage的使用方法,顺带CocoaPods

Carthage和CocoaPods都可以用来管理第三方框架。本文的目的是记录一下Carthage的使用方法,不过为了全面一点,也加上了CocoaPods。一、CarthageCarthage对项目无侵入性,管理的依赖只需编译一次,并且可以与CocoaPods并存。注意:Carthage需要iOS 8+1. 安装carthage1.1 安装Homebrew到下面这个网站安装Homebrew1htt...

2018-03-16 15:10:52 210

转载 iOS网络层详解和优化

HTTPHTTP方法HTTP属于应用层。具有以下方法:GET 最常见HEAD 服务器只返回头部。比如可用于了解资源情况,看看某个对象是否存在,测试资源是否被修改了。PUT 向服务器写入文档POST 写服务器提交数据,通常是表单TRACE 允许客户端在最终将请求发送给服务器时,看看请求变成了什么样。因为有可能被防火墙、代理、网关等修改OPTIONS 请求服务器告知其支持的各种功能。比如服务器支持哪些...

2018-03-15 20:38:25 755

转载 【iOS学习】大型高并发与高可用的三层缓存架构总结

nginx对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量一.模板引擎通常我们可以配合使用freemaker/velocity等模板引擎来抗住大量的请求小型系统可能直接在服务器端渲染出所有的页面并放入缓存,之后的相同页面请求就可以直接返回,不用去查询数据源或者做数据逻辑处理对于页面非常...

2018-03-11 13:52:27 312

转载 iOS内存管理(MRC、ARC)深入浅出

内存管理方式首先明确一点,无论在MRC还是ARC情况下,Objective-C采用的是引用计数式的内存管理方式,这一方式的特点:自己生成的对象,自己持有。例如:NSObject * __strong obj = [[NSObject alloc]init];。非自己生成的对象,自己也能持有。例如:NSMutableArray * __strong array = [NSMutableArray a...

2018-03-10 15:37:52 538

转载 【iOS】Moya网络抽象层

Swift中的网络请求库Alamofire,相当于OC中的AFNetworking,在使用的过程中,我们一般都会对Alamofire做进一步的封装,可是结果大多不太理想。所以就引出了今天的主角Moya,它是一个网络抽象层,封装的比较充分,并且是直接调用Alamofire,借用一下Moya的图如下。Moya下面就来说一下Moya的基本使用方法。1、创建网络层.swift文件这里我创建了一个WHSer...

2018-03-07 20:56:22 790

转载 iOS 进阶原理知识笔记

KVO实现原理KVO基本原理:kvo是基于runtime机制实现的当某个类的属性对象第一次被观察时,系统就会在运行期动态的创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter方法,派生类在被重写的setter方法内实现真正的通知机制如果原类为Person,那么生成的派生类名为NSKVONotifying_Person每个类对象中都有一个isa指针指向当前类,当一个类对象的第一...

2018-03-06 13:50:32 249

转载 【iOS】GCD队列、同步异步

GCD的队列有两种,一种是串行队列,一种是并发队列。串行队列:任务按往队列里的添加先后顺序执行,先进先出(FIFO),前一个任务执行完再开始执行下一个任务。(我们开发中主线程队列就是一个串行队列,所以我们经常在主线程写的一般任务(不考虑多线程),都是顺序执行的)。注意一个串行队列里只有一个线程。并发队列:任务会在这个队列中新开线程,并发同时执行(无序)。我们GCD使用常伴有dispatch_syn...

2018-03-05 11:18:49 1167

转载 【iOS学习】用UIPresentationController来写一个简洁漂亮的底部弹出控件

iOS App开发过程中,底部弹出框是一个非常常见的需求。如何写一个漂亮的底部弹出框呢?方式有很多,直接添加一个自定义的View让它动画展示和隐藏都是一种非常简单的操作,不过看起来似乎不那么优雅,我们可以使用UIPresentationController来方便快捷地创建一个高定制化的底部弹出框。UIPresentationController的官方文档地址如下:UIPresentationCon...

2018-03-04 12:15:32 1440

转载 iOS 解决微信h5支付无法直接返回APP的问题

由于公司的业务需要,为了节省申请开通微信支付的时间和人力,公司决定使用微信h5支付。这样即节省了时间,同时以后所有的APP都能使用h5支付,既方便又快捷。但是真正做的时候问题来了,当你支付成功之后或者是取消支付的时候会跳转到Safari浏览器,这就很尴尬了,完全无用户体验啊。当时看着Android可以直接返回到APP,心里瞬间不爽了。开始埋怨苹果公司了,但是由于公司的业务必须要做h5,没办法开始找...

2018-03-03 09:52:07 4798

转载 【iOS】Runloop优化列表滑动卡顿

此图是我卡顿的列表页截屏,为了避免打广告和泄漏隐私的缘故,部分地方会打马赛克,望谅解,不过绝对不影响读者阅读://// JCWFinancialFroductListVC.swift// HengYouCai//// Created by wll on 2017/11/9.// Copyright © 2017年 wll. All rights reserved.// 理财产品列表--代...

2018-03-02 11:08:12 1666

转载 iOS中UIScrollView、UIWebView、UICollectionView实现图文混排

问题汇总1、如何实现JavaScript与Objective-C间传值?点击Webview中的图片,放大,需要JavaScript和Objective-C传值,获取到具体需要放大哪张图片。本方案中,不需要引入WebViewJavascriptBridge,而是通过【控制Webview重定向方法,拦截发出的请求】来实现。示例:123456789101112131415// 每个添加点击事件(wind...

2018-03-01 15:07:20 506

空空如也

空空如也

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

TA关注的人

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