- 博客(94)
- 资源 (14)
- 收藏
- 关注
原创 一休:一款专业的休息提醒软件
对于长期使用电子产品的人来说,保护眼睛至关重要,不论是工作还是学习,适当的休息都是必要的,保护视力要牢记20-20-20法则
2024-05-16 11:39:58
1744
原创 爱奇艺播放按钮动画解析
一、动画过程分析1、拆分动画正常动画效果如下: 操作 现象 结论 放慢动画 这个效果可以反复多看几次,观察一下这个动画是由那几部分组成的,然后再往下看 添加辅助颜色 可以看出,整个动画有四部分组成:1、左侧竖线 2、右侧竖线 3、三角形 4、底部过渡圆弧 只保留竖线 竖线的动画包括两部分,一部分是开始的“预备”动画和结束时的“惯性”动画;第二步分是
2017-08-29 11:54:14
2596
原创 优酷播放按钮动画原理解析
一、动画过程分析1、拆分动画正常动画效果如下: 操作 现象 结论 放慢动画 可以看出动画是由外侧的蓝色部分和中间的红色三角组成。 去掉旋转 可以看出核心的东西就是竖和弧线的缩进、三角形的透明度变化。 只保一侧留竖线和圆弧 可以看出竖线的动画时长大概是圆弧动动画时长的一半;弧线的运动角度是π/2,两个弧线正好组成一个完整的圆环。 只保留三角动画
2017-08-16 16:58:14
2807
原创 iOS自动打包并发布到Fir.im
一、前言最近公司有个新需求,就是后台要添加一个新功能,在页面上更换App的标题、Logo等信息,然后可以自动生成apk和ipa文件。于是就研究了一下自动打包ipa这个功能二、牛逼的工具fastlanefastlane这个工具牛逼之处就是几乎包含了和ipa相关的所有功能,例如打包、提交审核、测试、自动截屏等等。这里就主要介绍一下其中的打包工具gym。
2017-06-06 17:08:39
8701
1
原创 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
889
原创 iOS 动画解析 支付宝支付动画 下
上一篇博客分析了支付中动画的实现,本篇博客是分析支付完成的动画。一、动画解析为了方便观察,放慢了动画的速度,并添加辅助线: 通过上图可知,支付完成的动画由两部分组成:圆环动画 + 对号动画二、代码实现1、圆环动画这个动画比较简单,是利用贝塞尔曲线画弧的功能。再利用CAShapeLayer的strokeEnd属性加上核心动画实现的圆环动画。-(void)circleAnimation{ //显
2017-04-17 16:07:22
1537
原创 iOS 动画解析 支付宝支付动画 上
平时在用支付宝付款时,会有一个支付中的动画和一个支付完成的动画。这篇博客主要分析一下 支付中 的动画效果,效果如下:一、动画解析为了方便观察,添加了放慢加载动画的速度并添加辅助线:从图中可以看出:加载圆弧运动轨迹可分为前半段和后半段;并且圆弧的起始角度(StartAngle)和结束角度(EndAngle)在做有规律的变化;前半段: 从-0.5π到π,这一段运动中速度较快;StartAngle不变,始
2017-04-17 12:54:12
4178
1
原创 iOS 动画解析 圆球加载动画 XLBallLoading
一、显示效果二、原理分析1、拆解动画从效果图来看,动画可拆解成两部分:放大动画、位移动画 放大动画 比较简单,这里主要来分析一下位移动画(1)、先去掉缩放效果:(2)、去掉其中的一个圆球现在基本可以看出主要原理就是让其中一个圆球绕另一个球做圆弧运动,只要确定一个圆球的运动轨迹,另一个圆球和它左相对运动即可。下面咱们重点说一下这个圆弧运动的原理。2、圆弧运动为了方便观察我们先放慢一下这个动画,然后添
2017-04-12 19:43:28
4435
5
原创 iOS UICollectionView无限轮播
一、最终效果二、原理说明通过UICollectionView实现横向滚动轮播效果如下图所示,当移动到左右边缘后不可以继续移动将CollectionView展开后的示意图如下:思考:要使CollectionView滚动到左边缘和右边缘时均可以继续滚动,并且从左边缘向左滚动时显示的是最后一页,从右边缘向右滚动时显示的是第一页,可以在左边插入最后一页,在右
2017-03-06 20:47:54
8921
1
原创 GitHub Pages 绑定域名
第一步:创建一个新的仓库命名方式为 账号 + .github.io ,例如我的仓库名为:mengxianliang.github.io第二步:在仓库里添加CNAME文件有两总方式:第一种:在仓库里添加一个文件,命名为 CNAME,文件名大写且没有后缀;文件里填写要绑定的域名且不要包含Http://和www第二种:进入设置,找到 Custom domain
2017-02-09 11:05:28
10575
4
原创 iOS 仿微博客户端红包加载界面 XLDotLoading
一、显示效果二、原理简介1、思路要实现这个效果需要先知道这两个硬币是怎样运动的,然后通过放大、缩小的效果实现的这种有距离感的效果。思路如下:一、这两个硬币是在一定范围内做相对运动的,可以先使一个硬币在一个固定范围内做左右的往复运动,另一个硬币和它做“相对运动”即可。二、让硬币从左至右移动时先变小再回复正常;从右至左移动时先变大再回复正常;这样就实现了这用有距离感的“相对
2017-02-07 12:57:51
2670
原创 iOS 利用UICollectionView拖拽排序 实现的仿照腾讯新闻频道管理功能 XLChannelControl
一、实现效果 频道界面的显示 ------------》点击进行添加/删除--------》 按住可以进行拖拽排序 二、实现原理1、主要思路就是把所有的按钮分成两部分,上部分放置的的是已经订阅的频道,下半部分放置的是推荐的频道;把按钮放到两个集合里,然后按照按钮在集合里的顺序进行排序。 //保存上半部分卡片 NSMutable
2017-01-12 10:06:44
13648
原创 iOS 利用UICollectionView横向滚动、余弦函数曲线特性实现居中放大的卡片浏览工具 XLCardSwitch
一、实现效果 二、原理说明利用余弦函数的曲线特性实现的图片高度变化,具体原理请参考我的另一篇博客:iOS 利用余弦函数实现卡片浏览工具三、代码说明1、创建方法 XLCardSwitch *switchView = [[XLCardSwitch alloc] initWithFrame:CGRectMake(0, 0, [self Screen
2017-01-06 13:15:36
16453
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
4272
原创 iOS 截屏方法
//获取屏幕截屏- (UIImage*)getScreenShotsOfView:(UIView *)view{ CGSize size = view.frame.size; UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); CGContextRef context
2016-12-30 11:05:00
909
原创 AVPlayer 截取视频流的当前帧
*在给应用截图是发现系统截图方法不能截取播放器的画面,所以需要手动截取视频当前帧的画面。本文说明的是AVPlayer的视频流截图方法。截取视频画面总共分三步一、声明所需属性@interface ViewController (){ AVPlayer *_player; AVPlayerItemVideoOutput *_videoOutPut; }@e
2016-12-29 17:56:30
32760
原创 NSArray 倒序
NSArray *arr = @[@"1",@"2",@"3"]; NSEnumerator *enumerator = [arr reverseObjectEnumerator]; arr = [enumerator allObjects];
2016-12-28 15:33:11
998
原创 iOS 调用系统相机显示中文标题
一、效果如下二、解决办法把Plist文件中的Localization native development region的值改为China
2016-12-16 11:26:31
553
原创 iOS 利用余弦函数实现卡片浏览工具
一、实现效果通过拖拽屏幕实现卡片移动,左右两侧的卡片随着拖动变小,中间的变大。效果如下:二、原理说明1、上面的动画效果是根据余弦函数的曲线特性实现的,先看一下函数曲线y=cos(x),在区间-π/2 到 π/2的范围内,y的值在x的0的是后是最大的,左右则越来越小。2、可以将被滚动的卡片的高度按照0.0~1.0的比例放大缩小,效果如下:3、放置到手机屏幕
2016-11-09 19:40:42
5053
2
原创 iOS CAShapeLayer + UIBezierPath 实现震动条调效果
一、实现原理原理很简单:通过给Layer添加一个运动路径,使Layer在这个路径下一直重复运动即可;二、代码//动画名称static NSString *AnimationName = @"ESSEQAnimation";@implementation PlayingLineView{ //线宽度 float _lineWidth; //线颜色
2016-11-07 11:09:56
1034
原创 iOS友盟第三方登陆开发
一、申请应用信息1、申请开发者账号2、申请应用的appid等信息腾讯开放平台、微信开放平台、新浪微博开放平台*申请分享应用的前提是需要应用已经上线,申请时需要提供商城地址。二、下载友盟开发包1、下载地址2、下载完成后直接拖拽到项目目录里即可,Xcode 会自动区分 Header Search Paths、Framework Search Paths 、Libra
2016-10-08 15:48:40
556
原创 利用GitHub和Xcode协作开发
一、准备工作:创建SSH Key,因为本地Git仓库和GitHub仓库交互是使用SSH加密的打开终端输入 :$ ssh-keygen -t rsa -C "youremail@example.com"把email地址换成自己的email地址自后一路输入回车,可能会提示输入密码,直接回车跳过即可。如果提示存在是否覆盖,输入y覆盖即可。完成后会提示你公钥和私钥的存储路径:保存在
2016-09-27 18:54:25
1443
原创 UITextField 设置placeholder颜色
以设置成白色为例: NSString *placeHolder = @"请输入用户名"; _textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeHolder attributes:@{NSForegroundColorAttributeName:[UIColor whi
2016-09-23 11:06:28
1011
原创 iOS 获取圆环终点位置的坐标方法 (UIBezierPath 终点位置)
目标是下图的情况:画一个圆弧,在圆弧结束位置放置一个红色圆点这需要先假想一个坐标系效果如下由于贝塞尔曲线是顺时针方向绘制的,所以可以顺时针想像成四个象限获取位置方法步骤:1、确定所在的角度是多少2、确定象限3、后通正弦余弦函数来确定x、y值4、最终得出在整个layer 中的位置
2016-09-22 20:53:19
7279
3
原创 iOS CAGradientLayer 实现渐变色
先说一给layer添加下渐变色的原理,渐变色使用的类是CAGradientLayer有两个要素,渐变颜色的起点和终点、渐变的颜色集合 //设置渐变颜色 CAGradientLayer *gradientLayer = [CAGradientLayer layer]; gradientLayer.frame = view.bounds; [gradient
2016-09-22 20:31:37
5166
原创 Socket 断线重连问题
上篇文章是关于Socket创建可Socket数据处理在这里:☞ 利用GCDSocket 创建Socket☞ 处理Socket数据粘包问题关于断线重连的思路大概如下当与服务器断开连接或网络出错时,先不要处理当前正在连接的socket,可能回应下当前UI的数据显示问题;可以另起一个socket服务,与服务器尝试连接,当连接成功时,通知当前Socket进行重新连接
2016-09-22 14:10:31
22667
原创 处理Socket数据粘包问题
如果对socket创建还不了解可查看上一篇文章:利用GCDSocket 创建Socket处理数据粘包问题思路如下:socket数据就像一个水管,水管的水是一股一股流出来的 (假设数据是有一个一个的字典组成的,字典与字典之前用\n(换行符)区分) 例如: 其中一条数据为: {"key","value"}\n 收到的数据也可能为: ........ {"
2016-09-22 13:43:05
4493
原创 利用GCDAsyncSocket实战经验
本篇文章的例子主要实现通过socket实时接收数据的一个图文直播的功能模块,代码为socket工具类。利用的工具是GCDAsyncSocket;工具类主要有三个功能模块:一、建立Socket连接,实现心跳连接,实现通过socket接收数据。类名 Socket.h二、数据处理模块,处理接收到的数据,避免粘包问题。类名DataContro.h三、断线重连模块,当sock
2016-09-22 13:32:41
5636
原创 UITableView UITableViewCell点击时,子view背景色消失
在自定义cell时经常会遇到给view添加背景色,但是点cell后,所有的背景色都变成cell的高亮颜色了例如在cell中添加一个label设置label的背景色,点击后效果如下解决办法: _label.backgroundColor = [UIColor redColor];改成: _abel.layer.backgroundCol
2016-09-22 11:06:15
2492
原创 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
7899
原创 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
647
原创 Xcode8/iOS10 升级后遇到的问题小结
去除方法如下1、打开Product ---> Scheme ---> Edit Scheme2、选择 RUN ---> Evironment Variables添加键值对 : OS_ACTIVITY_MODE disable
2016-09-19 17:29:22
4235
原创 iOS AVPlayer 后台播放问题自动停止问题 防止应用被后台挂起方法
1、创建播放器时创建AVAudioSessionAVAudioSession *session = [AVAudioSessionsharedInstance];[session setCategory:AVAudioSessionCategoryPlaybackerror:nil];[session setActive:YESerror:nil];2、在p
2016-09-08 16:16:59
11885
原创 iOS 电话监听,后台工作问题
1、添加头文件#import #import 2、定义监听对象CTCallCenter *_callCenter;3、创建监听对象_callCenter = [CTCallCenternew];_callCenter.callEventHandler = ^(CTCall *call){NSLog(@"电话状态是:%@",call.callState
2016-09-06 11:19:28
1844
原创 UICollectionView添加headerview/footerView
下面以创建footerview为例:1、在UICollectionViewFlowLayout中添加:flowLayout.footerReferenceSize =CGSizeMake(ScreenWidth, 30);2、创建自定义的Footerview,继承于UICollectionReusableView ,这里命名为:"MyFooterView"3、注册这
2016-08-17 16:16:43
13645
原创 iOS 通过文件的修改时间遍历整个文件夹
NSArray *localNames = [[NSFileManagerdefaultManager] subpathsAtPath:ImageSaveDic]; localNames = [localNames sortedArrayUsingComparator:^(NSString * firstPath,NSString* secondPath) {//
2016-08-17 16:11:22
1008
XLImageViewer 仿今日头条图片浏览工具
2017-04-20
object-c 拼图游戏
2016-09-19
Versions&破解文件
2015-06-15
SmartSvn For Mac 破解文件 syntevo_keygen
2015-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人