<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[RangingWon的博客]]></title><description><![CDATA[It does not do to dwell on dreams and forget to live.]]></description><link>https://blog.youkuaiyun.com/RangingWon</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; RangingWon]]></copyright><item><title><![CDATA[一张图了解OpenGL的渲染架构]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/90632370</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/90632370</guid><author>RangingWon</author><pubDate>Tue, 28 May 2019 09:02:35 +0800</pubDate><description><![CDATA[初学者在初学OpenGL时，很多时候会对OpenGL的渲染架构感到困惑，不清楚它是怎么一个渲染流程，常将Arributes直接传递到片元着色器，或者为了将属性直接传递到片元着色器，而通过uniform传递到片元着色器等，这样的操作都是错误的，OpenGL的数据传输都有明确的届定。下面，我们就来看看OpenGL的渲染架构并了解它的数据传输方式和特点。



上面就是OpenGL的渲染架构啦，我们在...]]></description><category></category></item><item><title><![CDATA[OpenGL在Mac上的配置]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/90268663</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/90268663</guid><author>RangingWon</author><pubDate>Thu, 16 May 2019 17:49:06 +0800</pubDate><description><![CDATA[1、创建工程

打开Xcode -&gt; macOS -&gt; Cocoa App


2、删除文件AppDelegate.h、AppDelegate.m、ViewController.h、ViewController.m、main.m

3、在工程添加GLUT.framework和OpenGL.framework两个系统库

4、拖入include文件到当前工程下并将libGLTools.a...]]></description><category></category></item><item><title><![CDATA[OpenGL / OpenGL ES 专业名词解析]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/90265648</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/90265648</guid><author>RangingWon</author><pubDate>Thu, 16 May 2019 16:04:49 +0800</pubDate><description><![CDATA[一、简介
###（1）OpenGL

OpenGL（英语：Open Graphics Library，译名：开放图形库或者开放式图形库）是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口（API）。这个接口由近350个不同的函数调用组成，用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、...]]></description><category></category></item><item><title><![CDATA[iOS 性能优化]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/88677146</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/88677146</guid><author>RangingWon</author><pubDate>Tue, 19 Mar 2019 23:42:26 +0800</pubDate><description><![CDATA[1、弱应用


__weak typeof(self) weakSelf = self;
__strong typeof(self) strongSelf = weakSelf;

2、NSTimer

方法一：


#import &lt;objc/runtime.h&gt;

@property (nonatomic, strong) NSTimer *timer;
@property (no...]]></description><category></category></item><item><title><![CDATA[基础-OpenGL ES]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/88542886</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/88542886</guid><author>RangingWon</author><pubDate>Wed, 13 Mar 2019 22:58:55 +0800</pubDate><description><![CDATA[1、四大着色器

顶点着色器：接收顶点数据，单独处理每个顶点

细分着色器：对所有的图像进行修改几何图元类型

几何着色器：决定输出的图元类型和个数

片元着色器：对光栅化处理生成的片元进行处理

2、渲染过程中产生的问题解决

（1）油画算法

先绘制场景中离观察者比较远的物体，再绘制较近物体。但是油画算法重复绘制，耗性能，一般不采用。而且，在一些情况下，采用油画算法是无法进行处理，例如：三个图...]]></description><category></category></item><item><title><![CDATA[IQKeyboardManager每次运行都会断点.m文件]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/83274738</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/83274738</guid><author>RangingWon</author><pubDate>Mon, 22 Oct 2018 16:30:59 +0800</pubDate><description><![CDATA[APP导入了IQKeyboardManager，只要打开All Exception获取异常断点，每次编译都会捕获到一个IQKeyboardManager的断点，具体如下：

那我们该怎么操作？

看图看图

]]></description><category></category></item><item><title><![CDATA[iOS UISlider用法总结]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/82758014</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/82758014</guid><author>RangingWon</author><pubDate>Tue, 18 Sep 2018 15:05:17 +0800</pubDate><description><![CDATA[
@property (nonatomic, weak) UISlider *progressSlider;

-(UISlider *)progressSlider
{
    if (!_progressSlider) {
        UISlider *progressSlider = [[UISlider alloc] init];
        progressSlider.min...]]></description><category></category></item><item><title><![CDATA[iOS 图片转base64编码]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/82745299</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/82745299</guid><author>RangingWon</author><pubDate>Mon, 17 Sep 2018 16:58:42 +0800</pubDate><description><![CDATA[今天有人在群里问，图片怎么转成base64编码？那我就在这里说一说

其实图片转成base64编码，很简单，苹果提供了方法


//图片转base64
UIImage *image = [UIImage imageNamed:@&quot;eg&quot;];
NSData *data = UIImageJPEGRepresentation(image, 1.0f);
NSString *encodedImageSt...]]></description><category></category></item><item><title><![CDATA[iOS 实现APP之间内容的拷贝、分享]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/82148213</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/82148213</guid><author>RangingWon</author><pubDate>Tue, 28 Aug 2018 15:21:16 +0800</pubDate><description><![CDATA[有时候，开发中需要我们实现“将一个APP的文件拷贝到另一个APP上并实现上传等功能”，那我们怎么去实现呢？

下面介绍一种方法：

App Extension 在iOS8中实现的跨APP数据操作和分享。

首先新建一个工程，并指定属性就能实现上述的需求啦，具体如下图



到这里，差不多就已经实现啦

另外，在


//9.0之前
- (BOOL)application:(UIApplicatio...]]></description><category></category></item><item><title><![CDATA[对OOD/OOP有较深的理解]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81869999</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81869999</guid><author>RangingWon</author><pubDate>Mon, 20 Aug 2018 14:21:55 +0800</pubDate><description><![CDATA[最近，经常有很多人在求职的时候遇到这样一个问题 “对OOD/OOP有较深的理解” ，那OOD,OOP又是什么？那今天就来讲讲它们都是些什么，又如何去回答！

（1）OOA （Object oriented analysis）- 面向对象分析

面向对象分析方法是确定需求或者业务的角度，按照面向对象的思想来分析业务。例如：OOA只是对需求中描述的问题，进行模块化的处理，描述问题的本质，区别每个问题的...]]></description><category></category></item><item><title><![CDATA[GitHub Please tell me who you are. Run git config --global user.email "you@example.com"]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81838250</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81838250</guid><author>RangingWon</author><pubDate>Sun, 19 Aug 2018 15:27:33 +0800</pubDate><description><![CDATA[有时候，我们会在Github提交代码的时候出现了下面这个问题：

Please tell me who you are.
Run
  git config --global user.email &quot;you@example.com&quot;
  git config --global user.name &quot;Your Name&quot;
to set your account's default identity.
...]]></description><category></category></item><item><title><![CDATA[仿真动画（UIDynamicAnimator，UIGravityBehavior，UICollisionBehavior）]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81778602</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81778602</guid><author>RangingWon</author><pubDate>Fri, 17 Aug 2018 15:42:23 +0800</pubDate><description><![CDATA[仿真动画 


/**
 *  仿真器，也是仿真行为的执行者
 */
@property (nonatomic, strong) UIDynamicAnimator *animator;

/**
 *  重力行为
 */
@property (nonatomic, strong) UIGravityBehavior *gravity;

/**
 *  碰撞行为
 */
@property (n...]]></description><category></category></item><item><title><![CDATA[iOS动画（Core Animation）]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81745094</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81745094</guid><author>RangingWon</author><pubDate>Thu, 16 Aug 2018 17:03:39 +0800</pubDate><description><![CDATA[一、CABaseAnimation 


/**
 移动动画
 */
- (void)testPositionAnimation
{
    CGFloat tempViewWidth = 50;
    CGFloat tempViewY = 300;
    
    UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, ...]]></description><category></category></item><item><title><![CDATA[NSAttributedString添加链接，富文本（一段文字上添加点击事件）]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81670233</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81670233</guid><author>RangingWon</author><pubDate>Tue, 14 Aug 2018 16:59:00 +0800</pubDate><description><![CDATA[通常开发中，有时候会让我实现如下图所示的功能（一段文字上添加点击事件）：



那我们怎么去实现呢？

直接上代码：


//内容文本
NSString *content = @&quot;欢迎使用健康档案服务！为了让您放心使用产品及服务，请务必仔细阅读，充分理解协议中的条款内容后在点击同意，以便您更好的行使个人权利及保护个人隐私。\n\n注意：当你点击同意，即视为您已阅读并同意《健康档案服务协议》与《数字...]]></description><category></category></item><item><title><![CDATA[iOS 获取当前时间之后N天的日期]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81631925</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81631925</guid><author>RangingWon</author><pubDate>Mon, 13 Aug 2018 16:14:52 +0800</pubDate><description><![CDATA[有时候在开发中会遇到一些需求，比如：在一个选择器，需要我们去设置它的一个时间最大选择值，从而控制它的一个时间选择段。

那，我们可能会需要到一个问题，如果得到当前时间之后n天的日期呢？

直接上代码：


/**
 得到当前时间之后N天的日期

 @param day N天
 @return return value description
 */
- (NSDate *)getTimeAfter...]]></description><category></category></item><item><title><![CDATA[runtime 动态归解档]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81626978</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81626978</guid><author>RangingWon</author><pubDate>Mon, 13 Aug 2018 11:33:06 +0800</pubDate><description><![CDATA[平常开发中，有时候需要对少量存储的数据进行归档处理，但我们又不想对数据一个一个的进行处理，那，我们就能用runtime 进行动态的归解档！

直接上代码：


//归档
-(void)encodeWithCoder:(NSCoder *)aCoder{
    unsigned int count = 0;
    //  利用runtime获取实例变量的列表
    Ivar *ivars = ...]]></description><category></category></item><item><title><![CDATA[iOS 时间格式NSDate 和 获取东八区（中国地区）时区时间]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81626260</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81626260</guid><author>RangingWon</author><pubDate>Mon, 13 Aug 2018 11:07:36 +0800</pubDate><description><![CDATA[有些时候，在开发中会遇到接口需要我们提供时间做一些加密之类的操作。

那下面讲讲关于时间的那些事儿：

1、yyyyMMddHHmmss 与 yyyymmddhhmmss

yyyy：包括纪元的四位数的年份

MM：月份数字

dd：月中的某一天

hh：12 小时制的小时  /  HH：24小时制的小时

mm：分钟

ss：秒

2、获取东八区时区的当前时间


/**
 获取时间戳
 
 @...]]></description><category></category></item><item><title><![CDATA[iOS控件阴影效果的实现 和 为什么实现设置了视图的阴影效果的代码，阴影效果会失效？]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81565871</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81565871</guid><author>RangingWon</author><pubDate>Fri, 10 Aug 2018 16:44:14 +0800</pubDate><description><![CDATA[假如，你实现了如下的代码


- (void)setShodawWithView:(UIView *)view color:(UIColor *)color
{
    view.layer.shadowOffset = CGSizeMake(0, 5);
    view.layer.shadowColor = color.CGColor;
    view.layer.shadowRadius...]]></description><category></category></item><item><title><![CDATA[iOS 视图切部分圆角]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81565687</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81565687</guid><author>RangingWon</author><pubDate>Fri, 10 Aug 2018 16:34:12 +0800</pubDate><description><![CDATA[日常开发中，可能某些需求需要我们对当前视图进行部分圆角切割，那，我们怎么去处理呢？

显然


view.layer.cornerRadius = cornerRadius;
view.layer.masksToBounds = YES;

已满足不了需求！

那下面，给大家提供了一个方法，希望对大家日常开发有帮助，具体如下：


/**
 切部分圆角
 
 UIRectCorner有五种
 UI...]]></description><category></category></item><item><title><![CDATA[iOS获取手机型号]]></title><link>https://blog.youkuaiyun.com/RangingWon/article/details/81565564</link><guid>https://blog.youkuaiyun.com/RangingWon/article/details/81565564</guid><author>RangingWon</author><pubDate>Fri, 10 Aug 2018 16:28:08 +0800</pubDate><description><![CDATA[日常开发中可能会需要我们获取当前设备的手机型号传给后台，那，我们怎么去得到当前手机的型号呢？

下面，给大家提供了一个方法，希望对大家日常开发有帮助（目前已iphone x的手机检测）具体如下：


/**
 获取手机型号
 
 @return 型号
 */
+ (NSString *)getIphoneType
{
    
    //需要导入头文件：#import &amp;lt;sys/utsna...]]></description><category></category></item></channel></rss>