自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孟宪亮的技术博客

主页:mengxianliang.com

  • 博客(93)
  • 资源 (14)
  • 收藏
  • 关注

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

一、动画过程分析1、拆分动画正常动画效果如下: 操作 现象 结论 放慢动画 这个效果可以反复多看几次,观察一下这个动画是由那几部分组成的,然后再往下看 添加辅助颜色 可以看出,整个动画有四部分组成:1、左侧竖线 2、右侧竖线 3、三角形 4、底部过渡圆弧 只保留竖线 竖线的动画包括两部分,一部分是开始的“预备”动画和结束时的“惯性”动画;第二步分是

2017-08-29 11:54:14 2471

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

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

2017-08-16 16:58:14 2688

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

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

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

原创 UIColor间的过渡算法

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

2017-05-19 09:39:10 841

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

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

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

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

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

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

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

一、显示效果二、原理分析1、拆解动画从效果图来看,动画可拆解成两部分:放大动画、位移动画 放大动画 比较简单,这里主要来分析一下位移动画(1)、先去掉缩放效果:(2)、去掉其中的一个圆球现在基本可以看出主要原理就是让其中一个圆球绕另一个球做圆弧运动,只要确定一个圆球的运动轨迹,另一个圆球和它左相对运动即可。下面咱们重点说一下这个圆弧运动的原理。2、圆弧运动为了方便观察我们先放慢一下这个动画,然后添

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

原创 iOS UICollectionView无限轮播

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

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

原创 GitHub Pages 绑定域名

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

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

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

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

2017-02-07 12:57:51 2618

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

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

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

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

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

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

原创 iOS 圆环进度指示器 XLCircleProgress

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

2017-01-05 21:37:56 4179

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

假装有摘要

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

原创 iOS 截屏方法

//获取屏幕截屏- (UIImage*)getScreenShotsOfView:(UIView *)view{ CGSize size = view.frame.size; UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); CGContextRef context

2016-12-30 11:05:00 879

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

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

2016-12-29 17:56:30 32035

原创 NSArray 倒序

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

2016-12-28 15:33:11 927

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

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

2016-12-16 11:26:31 473

原创 Cocoapods 安装指定版本

$ sudo gem install cocoapods --version 1.0.0

2016-12-07 17:04:27 6794

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

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

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

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

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

2016-11-09 19:40:42 4835 3

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

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

2016-11-07 11:09:56 991

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

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

2016-10-08 15:48:40 518

原创 利用GitHub和Xcode协作开发

一、准备工作:创建SSH Key,因为本地Git仓库和GitHub仓库交互是使用SSH加密的打开终端输入 :$ ssh-keygen -t rsa -C "[email protected]"把email地址换成自己的email地址自后一路输入回车,可能会提示输入密码,直接回车跳过即可。如果提示存在是否覆盖,输入y覆盖即可。完成后会提示你公钥和私钥的存储路径:保存在

2016-09-27 18:54:25 874

原创 UITextField 设置placeholder颜色

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

2016-09-23 11:06:28 978

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

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

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

原创 iOS CAGradientLayer 实现渐变色

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

2016-09-22 20:31:37 5025

原创 Socket 断线重连问题

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

2016-09-22 14:10:31 22376

原创 处理Socket数据粘包问题

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

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

原创 利用GCDAsyncSocket实战经验

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

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

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

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

2016-09-22 11:06:15 2434

原创 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 7831 2

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

第一步:需要在终端内输入命令显示 :defaults write com.apple.finder AppleShowAllFiles -bool true隐藏 :defaults write com.apple.finder AppleShowAllFiles -bool false第二步: 重启Finder快捷键 command + alt + esc 选择

2016-09-21 16:30:23 581

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

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

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

原创 UIAlertView 按钮顺序

2016-09-14 14:29:01 489

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

1、创建播放器时创建AVAudioSessionAVAudioSession *session = [AVAudioSessionsharedInstance];[session setCategory:AVAudioSessionCategoryPlaybackerror:nil];[session setActive:YESerror:nil];2、在p

2016-09-08 16:16:59 11493

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

1、添加头文件#import #import 2、定义监听对象CTCallCenter *_callCenter;3、创建监听对象_callCenter = [CTCallCenternew];_callCenter.callEventHandler = ^(CTCall *call){NSLog(@"电话状态是:%@",call.callState

2016-09-06 11:19:28 1768

原创 UICollectionView添加headerview/footerView

下面以创建footerview为例:1、在UICollectionViewFlowLayout中添加:flowLayout.footerReferenceSize =CGSizeMake(ScreenWidth, 30);2、创建自定义的Footerview,继承于UICollectionReusableView ,这里命名为:"MyFooterView"3、注册这

2016-08-17 16:16:43 13416

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

NSArray *localNames = [[NSFileManagerdefaultManager] subpathsAtPath:ImageSaveDic];        localNames = [localNames sortedArrayUsingComparator:^(NSString * firstPath,NSString* secondPath) {//

2016-08-17 16:11:22 906

原创 iTunesconnect 审核被拒经验总结

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

2016-08-10 10:16:31 1573

XLImageViewer 仿今日头条图片浏览工具

iOS仿今日头条图片浏览工具;本版本是利用UIScrollView实现的,用UICollectionView实现的版本请查看:https://github.com/mengxianliang/XLImageViewer

2017-04-20

iOS 利用贝塞尔曲线实现的圆环进度指示器

iOS 利用贝塞尔曲线实现进度指示器 圆环指示器

2017-01-05

iOS 卡片浏览Demo

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

2016-11-09

iOS 震动条

通过Layer实现 音频震动调效果

2016-11-07

iOS Socket 使用Demo

利用GCDAsyncSocket实现的socket简单使用,并处理丢包问题

2016-09-22

iOS 贝塞尔曲线使用Demo

利用 iOS的贝塞尔曲线 绘制一个用圆环组成的进度指示器。

2016-09-22

iOS 贝塞尔曲线使用

iOS 贝塞尔曲线使用

2016-09-22

iOS SocketDemo

iOS SocketDemo

2016-09-22

iOS Socket处理类

iOS Socket处理类

2016-09-22

object-c 拼图游戏

2016-09-19

振动条动画Demo

振动条动画Demo

2016-03-14

Versions&破解文件

versions mac下最好用的svn文件,破解方法,右键显示报内容->Contents->MacOS->复制破解文件到该目录下,替换源文件(建议事先保存一份源文件),替换后软件将停止试用期倒计时。

2015-06-15

SmartSvn For Mac 破解文件 syntevo_keygen

一、去官网下载最新版svn文件 http://www.smartsvn.com/ 二、解压syntevo_keygen.zip,打开syntevo_keygen.jar,输入名称和邮箱,生产license文件,在smartSvn中选择Help->Register选择license文件(此注册机需要JAVA运行环境,请先下载JAVA)。

2015-06-15

Mac SVN Cornerstone 2.7.1

此版CornerStone直接下载后安装即可使用,完全免费,是mac上比较实用的svn。

2015-06-15

空空如也

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

TA关注的人

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