自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孟宪亮的技术博客

记录成长中的一点一滴

原创 爱奇艺播放按钮动画解析

一、动画过程分析1、拆分动画正常动画效果如下: 操作 现象 结论 放慢动画 这个效果可以反复多看几次,观察一下这个动画是由那几部分组成的,然后再往下看 添加辅助颜色 可以看出,整个动画有四部分组成:1、左侧竖线 2、右侧竖线 3、三角形 4、底部过渡圆弧 ...

2017-08-29 11:54:14 1621 0

原创 优酷播放按钮动画原理解析

一、动画过程分析1、拆分动画正常动画效果如下: 操作 现象 结论 放慢动画 可以看出动画是由外侧的蓝色部分和中间的红色三角组成。 去掉旋转 可以看出核心的东西就是竖和弧线的缩进、三角形的透明度变化。 只保一侧留竖线和圆弧 可以看出竖线的动画时长大...

2017-08-16 16:58:14 2082 0

原创 iOS自动打包并发布到Fir.im

一、前言 最近公司有个新需求,就是后台要添加一个新功能,在页面上更换App的标题、Logo等信息,然后可以自动生成apk和ipa文件。于是就研究了一下自动打包ipa这个功能 二、牛逼的工具fastlane fastlane这个工具牛逼之处就是几乎包含了和ipa相关的所有功能,例如打包、提交审...

2017-06-06 17:08:39 7754 2

原创 UIColor间的过渡算法

示例图代码- (UIColor *)transformFromColor:(UIColor*)fromColor toColor:(UIColor *)toColor progress:(CGFloat)progress { progress = progress >= 1 ? 1 ...

2017-05-19 09:39:10 588 0

原创 iOS 动画解析 支付宝支付动画 下

上一篇博客分析了支付中动画的实现,本篇博客是分析支付完成的动画。一、动画解析为了方便观察,放慢了动画的速度,并添加辅助线: 通过上图可知,支付完成的动画由两部分组成:圆环动画 + 对号动画二、代码实现1、圆环动画这个动画比较简单,是利用贝塞尔曲线画弧的功能。再利用CAShapeLayer的str...

2017-04-17 16:07:22 1193 2

原创 iOS 动画解析 支付宝支付动画 上

平时在用支付宝付款时,会有一个支付中的动画和一个支付完成的动画。这篇博客主要分析一下 支付中 的动画效果,效果如下:一、动画解析为了方便观察,添加了放慢加载动画的速度并添加辅助线:从图中可以看出:加载圆弧运动轨迹可分为前半段和后半段;并且圆弧的起始角度(StartAngle)和结束角度(EndAn...

2017-04-17 12:54:12 3184 4

原创 iOS 动画解析 圆球加载动画 XLBallLoading

一、显示效果二、原理分析1、拆解动画从效果图来看,动画可拆解成两部分:放大动画、位移动画 放大动画 比较简单,这里主要来分析一下位移动画(1)、先去掉缩放效果:(2)、去掉其中的一个圆球现在基本可以看出主要原理就是让其中一个圆球绕另一个球做圆弧运动,只要确定一个圆球的运动轨迹,另一个圆球和它左相...

2017-04-12 19:43:28 3526 7

原创 iOS UICollectionView无限轮播

一、最终效果 二、原理说明 通过UICollectionView实现横向滚动轮播效果如下图所示,当移动到左右边缘后不可以继续移动 将CollectionView展开后的示意图如下: 思考:要使CollectionView滚动到左边缘和右边缘时均可以继续滚动,并且从左边缘向左滚动时显...

2017-03-06 20:47:54 6976 1

原创 GitHub Pages 绑定域名

第一步:创建一个新的仓库 命名方式为 账号 + .github.io ,例如我的仓库名为:mengxianliang.github.io 第二步:在仓库里添加CNAME文件 有两总方式: 第一种:在仓库里添加一个文件,命名为 CNAME,文件名大写且没有后缀;文件里填写要绑定的域名且不要包...

2017-02-09 11:05:28 8430 9

原创 iOS 仿微博客户端红包加载界面 XLDotLoading

一、显示效果 二、原理简介 1、思路 要实现这个效果需要先知道这两个硬币是怎样运动的,然后通过放大、缩小的效果实现的这种有距离感的效果。思路如下: 一、这两个硬币是在一定范围内做相对运动的,可以先使一个硬币在一个固定范围内做左右的往复运动,另一个硬币和它做“相对运动”即可。 二、让硬币从左至右...

2017-02-07 12:57:51 2252 0

原创 iOS 利用UICollectionView拖拽排序 实现的仿照腾讯新闻频道管理功能 XLChannelControl

一、实现效果      频道界面的显示 ------------》点击进行添加/删除--------》 按住可以进行拖拽排序              二、实现原理 1、主要思路就是把所有的按钮分成两部分,上部分放置的的是已经订阅的频道,下半部分放置的是推荐的频道;把按钮放到两个集合里,然后按...

2017-01-12 10:06:44 9965 5

原创 iOS 利用UICollectionView横向滚动、余弦函数曲线特性实现居中放大的卡片浏览工具 XLCardSwitch

一、实现效果      二、原理说明 利用余弦函数的曲线特性实现的图片高度变化,具体原理请参考我的另一篇博客: iOS 利用余弦函数实现卡片浏览工具 三、代码说明 1、创建方法 XLCardSwitch *switchView = [[XLCardSwitch alloc] ini...

2017-01-06 13:15:36 11383 3

原创 iOS 圆环进度指示器 XLCircleProgress

一、实现效果 二、使用方法 CGFloat circleWidth = self.view.bounds.size.width; _circle = [[XLCircleProgress alloc] initWithFrame:CGRectMake(0, 0, circl...

2017-01-05 21:37:56 2970 0

原创 iOS 仿照今日头条 实现的滚动表格 XLSlideSwitch

假装有摘要

2017-01-04 18:00:40 3228 21

原创 iOS 截屏方法

//获取屏幕截屏 - (UIImage*)getScreenShotsOfView:(UIView *)view{ CGSize size = view.frame.size; UIGraphicsBeginImageContextWithOptions(size, NO, [UI...

2016-12-30 11:05:00 743 0

原创 AVPlayer 截取视频流的当前帧

*在给应用截图是发现系统截图方法不能截取播放器的画面,所以需要手动截取视频当前帧的画面。 本文说明的是AVPlayer的视频流截图方法。 截取视频画面总共分三步 一、声明所需属性 @interface ViewController () { AVPlayer *_player; ...

2016-12-29 17:56:30 5368 0

原创 NSArray 倒序

NSArray *arr = @[@"1",@"2",@"3"]; NSEnumerator *enumerator = [arr reverseObjectEnumerator]; arr = [enumerator a...

2016-12-28 15:33:11 603 0

原创 iOS 调用系统相机显示中文标题

一、效果如下 二、解决办法 把Plist文件中的Localization native development region的值改为China

2016-12-16 11:26:31 263 0

原创 Cocoapods 安装指定版本

$ sudo gem install cocoapods --version 1.0.0

2016-12-07 17:04:27 5846 0

原创 iOS 利用正余弦曲线实现波浪形的XLWaveProgress

一、效果 二、工作原理 三、代码 Demo下载

2016-11-10 21:32:48 7160 1

原创 iOS 利用余弦函数实现卡片浏览工具

一、实现效果 通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间的变大。效果如下: 二、原理说明 1、上面的动画效果是根据余弦函数的曲线特性实现的,先看一下函数曲线y=cos(x),在区间-π/2 到 π/2的范围内,y的值在x的0的是后是最大的,左右则越来越小。 2、可以将被滚动...

2016-11-09 19:40:42 3499 1

原创 iOS CAShapeLayer + UIBezierPath 实现震动条调效果

一、实现原理 原理很简单:通过给Layer添加一个运动路径,使Layer在这个路径下一直重复运动即可; 二、代码 //动画名称 static NSString *AnimationName = @"ESSEQAnimation"; @implementation Playin...

2016-11-07 11:09:56 754 0

原创 iOS友盟第三方登陆开发

一、申请应用信息 1、申请开发者账号 2、申请应用的appid等信息 腾讯开放平台、微信开放平台、新浪微博开放平台 *申请分享应用的前提是需要应用已经上线,申请时需要提供商城地址。 二、下载友盟开发包 1、下载地址 2、下载完成后直接拖拽到项目目录里即可,Xcode 会自动区分 Header ...

2016-10-08 15:48:40 412 0

原创 利用GitHub和Xcode协作开发

一、准备工作:创建SSH Key,因为本地Git仓库和GitHub仓库交互是使用SSH加密的 打开终端输入 : $ ssh-keygen -t rsa -C "youremail@example.com"把email地址换成自己的email地址 自后一路输入回车,可能会提示输入...

2016-09-27 18:54:25 707 0

原创 UITextField 设置placeholder颜色

以设置成白色为例: NSString *placeHolder = @"请输入用户名"; _textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeHo...

2016-09-23 11:06:28 459 0

原创 iOS 获取圆环终点位置的坐标方法 (UIBezierPath 终点位置)

目标是下图的情况: 画一个圆弧,在圆弧结束位置放置一个红色圆点 这需要先假想一个坐标系效果如下 由于贝塞尔曲线是顺时针方向绘制的,所以可以顺时针想像成四个象限 获取位置方法步骤: 1、确定所在的角度是多少 2、确定象限 3、后通正弦余弦函数来确定x、y值 4、最终得出在整个layer 中...

2016-09-22 20:53:19 5273 5

原创 iOS CAGradientLayer 实现渐变色

先说一给layer添加下渐变色的原理,渐变色使用的类是CAGradientLayer 有两个要素,渐变颜色的起点和终点、渐变的颜色集合 //设置渐变颜色 CAGradientLayer *gradientLayer = [CAGradientLayer layer]; ...

2016-09-22 20:31:37 4346 0

原创 Socket 断线重连问题

上篇文章是关于Socket创建可Socket数据处理在这里: ☞ 利用GCDSocket 创建Socket ☞ 处理Socket数据粘包问题 关于断线重连的思路大概如下 当与服务器断开连接或网络出错时,先不要处理当前正在连接的socket,可能回应下当前UI的数据显示问题; 可以另起一个...

2016-09-22 14:10:31 16250 0

原创 处理Socket数据粘包问题

如果对socket创建还不了解可查看上一篇文章: 利用GCDSocket 创建Socket 处理数据粘包问题思路如下: socket数据就像一个水管,水管的水是一股一股流出来的  (假设数据是有一个一个的字典组成的,字典与字典之前用\n(换行符)区分)  例如:  其中一条数据为: {&qu...

2016-09-22 13:43:05 3277 1

原创 利用GCDAsyncSocket实战经验

本篇文章的例子主要实现通过socket实时接收数据的一个图文直播的功能模块,代码为socket工具类。利用的工具是GCDAsyncSocket; 工具类主要有三个功能模块: 一、建立Socket连接,实现心跳连接,实现通过socket接收数据。 类名 Socket.h 二、数据处理模块,处理接...

2016-09-22 13:32:41 4762 6

原创 UITableView UITableViewCell点击时,子view背景色消失

在自定义cell时经常会遇到给view添加背景色,但是点cell后,所有的背景色都变成cell的高亮颜色了 例如在cell中添加一个label设置label的背景色,点击后效果如下 解决办法: _label.backgroundColor = [UIColor redColor]...

2016-09-22 11:06:15 2165 0

原创 Mac上mp3格式转caf格式

1、通过终端找到caf所在路径 2、使用终端:     afconvert /System/Library/Sounds/Submarine.aiff     ~/Desktop/sub.caf -d ima4 -f caff -v

2016-09-21 17:13:18 6750 2

原创 Mac 上显示隐藏文件夹方法

第一步:需要在终端内输入命令 显示 :defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏 :defaults write com.apple.finder AppleShowAllFiles -bool false ...

2016-09-21 16:30:23 331 0

原创 Xcode8/iOS10 升级后遇到的问题小结

去除方法如下 1、打开Product ---> Scheme ---> Edit Scheme 2、选择 RUN ---> Evironment Variables 添加键值对 : OS_ACTIVITY_MODE   disable

2016-09-19 17:29:22 4007 2

原创 UIAlertView 按钮顺序

2016-09-14 14:29:01 365 0

原创 iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法

1、创建播放器时创建AVAudioSession AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayback error:nil]; ...

2016-09-08 16:16:59 7035 0

原创 iOS 电话监听,后台工作问题

1、添加头文件 #import #import 2、定义监听对象 CTCallCenter *_callCenter; 3、创建监听对象 _callCenter = [CTCallCenter new]; _callCenter.callEventHandler = ^(CTCall *...

2016-09-06 11:19:28 1420 0

原创 UICollectionView添加headerview/footerView

下面以创建footerview为例: 1、在UICollectionViewFlowLayout中添加: flowLayout.footerReferenceSize = CGSizeMake(ScreenWidth, 30); 2、创建自定义的Footerview,继承于UICollect...

2016-08-17 16:16:43 11095 0

原创 iOS 通过文件的修改时间遍历整个文件夹

NSArray *localNames = [[NSFileManager defaultManager] subpathsAtPath:ImageSaveDic];          localNames = [localNames sortedArrayUsingComparator:^(NS...

2016-08-17 16:11:22 464 0

原创 iTunesconnect 审核被拒经验总结

1、微信第三方登陆时 在没有安装微信的情况下 登陆失败 解决办法:调用微信API中的 [WXApi isWXAppInstalled] 方法,如果设备未安装微信,则隐藏微信登陆按钮。

2016-08-10 10:16:31 1262 0

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