自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

麻豆_matou

记录下成长的脚印

  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 Hierarchical Russian Roulette for Vertex Connections论文研读

第二篇论文研读文章了,虽然依旧很菜,但这一篇开始就相对轻松一点了。文档种有些问题,其中所有“实时”应该替换为“高效”。Hierarchical Russian Roulette for Vertex Connections主要目标为了解决双向路径跟踪算法在specular-diffuse-glossy或glossy-diffuse-glossy情况下反射计算低效且质量差的问题,提出了一个分层的俄罗斯轮盘赌技术来进行顶点连接。该技术利用在眼睛子路径(或相机子路径)顶点处的近似散射波瓣来与VPL进行连接,

2020-06-08 09:49:14 3253

原创 Stochastic Light Culling for VPLs on GGX Microsurfaces论文研读

前言好久没写博客了,今天来共享一下最近研读的一篇论文吧,文章中[***.pdf]为参考文献可自行谷歌学术下载。因为本人还是个图形学菜鸟,所以有什么问题希望大家多多指正。Stochastic Light Culling for VPLs on GGX Microsurfaces词汇解析VPLVPL - virtual point light 虚拟点光源以虚拟的点光源为间接光提供光照。可以...

2020-04-23 10:50:37 1040

原创 Swift使用XMPPFramework做IM即时通信的Demo

上一篇文章处理了文本中表情的替换,现在来完成消息的发送功能吧(貌似前后并没有逻辑关系哈)首先为了测试,我们需要下载spark工具,它可以连接openfire搭建的后台来完成即时通信的功能,方便测试。 下载地址点这儿 博主这里用的是Spark 2.8.3,各位可以根据自己所使用的平台不同选择对应的客户端下载。由于目前只是做移动端开发,所以后台的搭建各位可以自行google。使用S...

2018-03-21 19:35:34 2089 3

原创 字符串表情替换

博主最近在研究IM的实现,不想直接使用第三方的界面,于是就开始了自己的作死之路。今天把包含表情格式的文本转换成相应的富文本贴一下吧。首先,博主的表情格式是现在常用的中括号+标志符,类似[11]就是一个表情格式的字符。 我们需要实现的功能就是把形如: 你好[11] 这样的字符串变成: 你好 这样的字符串,具体的步骤就不再叙述了,注释已经很详细了/// 将字符串转换为含有表情的富文本...

2018-03-20 13:31:07 1786

原创 Swift使用极光推送JPush的Demo

JPushDemogithub项目地址 需要导入JPush框架,可以使用cocoapod导入,也可以手动导入环境配置配置环境可以参考极光推送的官方文档:iOS 证书设置指南iOS SDK 集成指南iOS SDK API使用说明待环境配置好了之后,就可以进入极光推送开始推送消息了极光推送首页推送使用示例如下:发送通知发送自定义消息代码...

2018-02-08 21:36:40 5383

原创 Swift自定义下拉刷新、上拉加载(CZXRefresh的使用)

CZXRefreshgithub项目地址可以cocoapod导入也可以下载之后手动导入先把CZXRefresh.xcodeproj文件拖到项目下 然后配置项目文件 添加framework 使用方法在需要使用的文件中import框架即可使用import CZXRefresh下拉刷新和上拉加载都可以在UITableView和UICo

2018-02-01 17:39:32 1668

原创 framework和cocoapod加载图片问题

最近博主应实习公司要求封装一个下拉刷新上拉加载的控件,当功能实现之后想要集成到framework中和发布到cocoapod时都遇到了图片资源读取失败的问题,现将解决办法贴下。framework中资源读取失败: 我们需要将资源打包到.bundle文件中(其实就是后缀为.bundle的文件夹,把资源放置其中即可). 然后根据你的目录结构来获取bundlelet bundle = Bundl

2018-02-01 13:24:28 1857

原创 Swift中UIScrollView与自定义上下滑动手势冲突

今天博主在封装下拉刷新时遇到了这个问题,在给UIScrollView添加UIPanGestureRecognizer时UIScrollView无法滑动了。博主也试了UITableView和UICollectionView,也出了同样的问题。在网上找了很久,终于解决了这个问题,只需要扩展UIScrollView使它遵循UIGestureRecognizerDelegate,并实现其中的一个方法就可以

2018-01-27 19:26:45 2689

原创 React Native实现注册和登录

React-Native-Register-Login-Demo这是最终的效果图项目Demo可以到github上下载,方便大家理解。下面将一步一步带大家完成这个Demo搭建环境环境的搭建只需要安装React Native中文网的步骤搭建环境即可,可以选择不同的桌面系统对不同的手机系统的环境的搭建。 这是使用的是最新的0.51版本,想要切换版本的可以点击左上角的

2018-01-22 18:10:00 10711 2

原创 (作业)采用多MVC和Core Data构造一个个人信息维护程序

这次作业要用到一个新的框架,话不多说,先上需求 然后看看博主实现的程序吧 现在我们就开始一步一步地实现这个程序吧。 首先从工程的创建开始,因为要使用Core Data,所以需要在创建工程时将Use Core Data打上勾,这样的话系统会自动帮我们生成一些代码和文件 这个homework.xcdatamodeld文件就是系统帮我们生成的,再看看AppDelegate.swift文件,

2017-12-13 19:54:35 625

原创 (作业)使用多线程实现一个网络服务访问程序

又是一个关于多线程的作业,老样子,先看需求 这次作业具体要做成什么样子没有指定,那我们就做一个加载成都的天气信息吧。 具体的运行效果如下: 要实现这个功能很简单,首先我们先声明一个显示信息的UITextViewvar textView: UITextView!然后分别将UITextView和一个按钮添加到视图上self.view.backgroundColor = UIColor.whitel

2017-12-12 22:46:28 577

原创 (作业)使用多线程实现一个大数加程序

哎哟,这次作业要使用多线程了,不过读者们不要慌,Swift的多线程如果不设计特别复杂的锁的话,是很简单的,那我们先来看看要求吧 这次的作业要求不多,可能刚接触时会觉得多线程比较麻烦,其实不然,Swift中的GCD已经非常方便了,我们只需要使用它就可以很简单地实现我们的要求。那接下来我们就开始完成需求吧。首先,我们需要声明一个UILabel控件来显示计算的结果var label: UILabel!然

2017-12-06 20:40:28 533

原创 (作业)利用网络编程实现多个城市的天气查询

哎呀,这次作业终于涉及到一些高大上的东西了,废话不多说,先看要求 这次作业需要从网上获取到城市的天气信息,并在第二个界面显示,我们这里需要用到两个第三方库,Alamofire和SwiftyJSON。Alamofire时网络的第三方库,我们使用它来从网络获取天气信息的JSON数据,然后使用SwiftyJSON来解析我们获取的JSON数据。虽然使用Swift自带的URLSession和JSONSeri

2017-12-06 19:54:28 1092

原创 (作业)WKWebView实现简单的浏览器

又是一周一次的作业时间,我们直接看要求和最终的效果图吧 可以看出,最下面一块是一个网页,上面的第一行分别是回退按钮,前进按钮和刷新按钮,第二行是一个输入框和一个搜索按钮,这次作业要求不难,基本的功能框架里面已经有现成的方法了,所以我们只需要调用即可。那接下来开始实现部分。首先,我们需要定义两个属性,一个WKWebView和一个UITextField(使用UIWebView也可以,不过WKWeb

2017-12-06 09:34:15 1302

原创 (作业)animation、transition、UIDynamicAnimator

第二个作业要求,先来看看吧,很有趣的一些动画效果 看要求,a和b都不是很麻烦,之前博主自学的时候接触过,第三个接触不多,老师上课时演示的时候有点着迷了,因为,如果有了这个UIDynamicAnimator,那么愤怒的小鸟就不是很难实现的游戏了(有这么神么?后面再介绍吧) 关于UIDynamicAnimator,CSDN的前辈写得很不错先来看看第一个用animation实现视图位置、大小、转换

2017-12-01 22:27:55 2771

原创 (作业)基于Timer实现电子秒表

哎呀,最近考试太多iOS、Java Web还有软件需求都在进行阶段考试了,所以就没那么多时间写博客啦(哈哈哈,这么牵强的理由就只有我信吧) 管它了!还是老规矩,直接上要求 好吧,这次的第一个作业实在是,不难!对,只要会用Timer,再结合前面学的一些知识,就能很快速地解决了。 这次博主换一个套路了,我们先看看最终的运行效果吧。 可以从动图里面看出,博主用了UITableView,所以这里

2017-12-01 20:24:44 948

原创 (作业)UIScrollView

好啦,本次作业的最后一个题,只需要实现UIScrollView的图片轮播和放大功能即可。 这个实现起来也不麻烦,要想实现轮播和缩放效果,需要先让ViewController遵循UIScrollViewDelegate协议。 接下来先声明三个属性,两个scrollview,一个pagecontroll,第一个scroll与pagecontroll配合使用实现图片轮播效果,第二个scroll实现图片

2017-11-15 11:13:20 576 2

原创 (作业)ActionSheet、Alert

本次作业比较简单,只涉及到ActionSheet和Alert,它们两个用法及其相似,只有一些细微的差别,而且需要说明的点也很少。废话不多说,先上要求 同样我们为了方便添加按钮,使用导航栏控制器作为UIWindow的根视图控制器self.window?.rootViewController = UINavigationController(rootViewController: ViewContro

2017-11-14 23:00:38 453

原创 (作业)View,Layer,Animation和Gesture

又开始做作业了,这次虽然设计的知识点比较多,但是都比较简单,一个页面就能完成。先来看看要求吧 根据这个要求,我们先要自定制一个视图,所以需要新建一个继承自UIView的类,这里博主就使用MyView来命名。 然后在这个类中,我们需要先重写它的draw(_:)方法。override func draw(_ rect: CGRect) { let viewRect = UIBezie

2017-11-14 13:52:13 592

原创 Swift4.0 Codable踩坑之派生类数据的保存

本以为之前使用Codable的过程中踩的坑已经够多了,今天博主有遇到一个坑,调了一个下午才解决,问题不大,但是中文的技术文里都很少涉及这个问题。问题描述:遵循了Codable协议的自定义类,派生出的子类JSON化与反JSON化。简单来说,就是这儿有一个类遵循了Codable协议,其自身可以很方便地使用JSONEncoder和JSONDecoder来JSON化和反JSON化。但是子类就不是那么方便了。

2017-11-13 21:54:27 6467

原创 (作业)TableView、Delegate、DataSource

来来来,继续作业系列的博客,老规矩了,直接上要求 这次作业涉及到iOS开发中最常用的一个UI组件UITableView,App Store中的几乎所有工具型和应用型App都使用了UITableView,而初学UITableView又不是那么容易,因为它涉及到很多代理和数据源的问题,但用熟练了,会觉得它非常地方便。 废话不多说了,先来完成要求吧,在这个过程中,博主会讲解一些细节方面的东西。首先是需

2017-11-13 11:10:56 2143

原创 (作业)使用autolayout和约束实现简单的界面布局

感觉好久没有写博客了,最近博主在复习java web准备考试,顺便为后面使用UIWebKit做铺垫吧。 今天就用xcode中的stroyboard实现自动布局,我们不用写一句代码,就能实现一些基本的布局。第一套布局这儿有两套布局,我们先来看看简单的那一套。 看这套布局特别简单,只需要创建三个UIView,然后让他们总的宽度等于屏幕的宽度,然后各自的长宽相等就可以了。接下来看一步一步的操作

2017-11-08 13:30:33 1696

原创 (作业)纯代码版HelloWorld,斯坦福iOS10教学视频

这次作业不止上一篇哦,还有第二个和第三个,第三个作业是按照斯坦福老爷子的视频做一个计算器,那个很简单,博主会在文章末尾附上链接,这次主要完成第二个作业。照常,要求先上 第一个作业就用的工程里自带的视图控制器来做的,这次需要将storyboard删除并自己创建自定义的视图控制器。我们需要删除的是工程创建完成之后的Main.storyboard和ViewController.swift,然后需要更

2017-10-18 20:26:42 1961 1

原创 (作业)自定义视图(UIView绘制任意函数曲线)

感觉好久没发作业了,想想也是,国庆+上周阶段考,两周没做iOS作业了,手都有点生了。老样子,先看作业要求。 这次作业很基础,但也开始设计到UI方面的开发了。所以现在要创建这个工程: 然后我们需要从UIView派生一个子类出来,这里就叫MyView吧。我们需要重写它的draw(rect:)方法。这个方法是UIView中负责绘制UIView的显示的,我们绘制函数曲线就是通过它。首先我们需要通过它

2017-10-18 19:18:34 1408

原创 Swift从相册选择图片,图文混排并且可以保存、上传数据

博主最近突发奇想想做一个自己的日记本App,在过程中遇到了一些坑,摸索了很久才做出一个简单的日记本功能。先来看看一下效果吧: 先来说说这次用到的一些东西吧: 1、UIImagePickerController:用来获取Photos里面的照片 2、UITexeView:用来做图文混排 3、NSKeyedArchiver和NSKeyedUnarchiver:保存和读取数据 具体的一些细节在过程

2017-10-16 13:19:34 3760

原创 Swift自定义类的存储

在Swift开发中,许多时候会涉及到存储自定义的类,不管是存储到本地文件还是远程服务器,都会涉及到编码和解码的问题。下面就来介绍一下在Swift中怎么存储自定义的类。 在Swift中存储自定义的类有两种方法,一种是Swift 3.0版本的NSCoding,还有一种是Swift 4.0版本的Codable。我们就两种方法来谈谈其中的区别吧。Swift 3.0: NSCoding在NSCoding这个

2017-10-14 20:24:08 2420

原创 (作业)文件、自定制视图、代码版 helloworld

文件、自定制视图、代码版 helloworld 这次的作业都比较简单,也开始涉及到了iOS的UI,所以现在创建的工程至少要使用单视图工程才可以完成。具体步骤不再赘述,直接上代码。第一题:let manager = FileManager.defaultlet document = manager.urls(for: .documentDirectory, in: .userDomainMask)

2017-09-28 10:38:34 889

转载 Swift中autoclosure和noescape关键字

@autoclosure关键字我们都很熟悉&&运算符,它是一个短路运算符。它有两个操作数,首先左边的操作数被处理,判断是不是true,只有当它为true时才会继续判断右边的操作数是不是true。这是因为根据&&运算符的特性,如果左边

2017-09-23 09:41:29 444

原创 (作业)Date、String、文件、URL

又是一周一次的作业时间,惯例先上图: 这次的要求就比较简单了,就是一些基本系统定义类或结构体的应用,代码如下:// MARK: question1/// 将指定的日期根据时区转换成相应的格式////// - Parameters:/// - date: 日期与时间/// - zone: 时区(东区为正数,西区为负数)/// - Returns: 返回指定格式的字符串func g

2017-09-19 23:10:08 1505 11

转载 中国天气网免费天气API

原文地址:(http://www.cnblogs.com/wangshuo1/p/5583229.html)中国天气网-天气预报接口api  中国天气网地址:http://www.weather.com.cn  请求服务 : 查询实时天气信息http://www.weather.com.cn/data/sk/101110101.html   在浏览器中输入请求地址,获得西安的天气。   其中10

2017-09-19 22:43:52 18224 2

原创 (作业)Swift枚举、类、派生、协议

此次作业为第二个作业《Swift类的属性与方法》的补充,照常,先贴要求 定义Gender枚举//性别的枚举enum Gender: Int { case male //男性 case female //女性 case unknow //未知 //重载>操作符,方便后面排序使用 static func >(lhs: Gender, rhs: Ge

2017-09-13 20:22:45 932

原创 (作业)Swift闭包、扩展、泛型

在Swift中经常会使用到一些基本的函数,通过使用这些函数也可以学习到Swift中的一些语法,如:闭包、扩展和泛型。接下来,我们就通过一个作业来了解一下。作业要求如下: /// question: 1let dic = [["name": "zhangsan", "age": 18], ["name": "lisi", "age": 19], ["name": "wangwu", "age":

2017-09-13 19:45:34 1090

原创 (作业)Swift类的属性与方法

话不多说,先贴作业要求因为Person类需要一个枚举类型的gender,所以先定义枚举//性别的枚举enum Gender: Int { case male //男性 case female //女性 case unknow //未知 //重载>操作符,方便后面排序使用 static func >(lhs: Ge

2017-09-05 23:14:26 2957 2

原创 (作业)利用闭包实现排序

在Swift中,闭包是一个非常重要的概念,它跟java的lambda表达式类似,也跟其他语言中的闭包相差无几。在介绍闭包前要先介绍一下Swift中的函数类型。在Swift中,函数跟普通的变量一样也是有类型这个概念的,函数的类型就是它的参数和返回值,比如下面两个函数:func add(a: Int, b: Int) -> Int { return a + b}func s

2017-09-05 18:25:08 976 2

原创 subscript下标

在Swift中,如果想像数组或者字典那样通过中括号加值的方式访问一组数据中的某一个的数据的话,可以通过subscript下标索引的方式来访问数据。所以,下标就是访问对象中数据的快捷方式,能够通过 对象[索引值] 的方式来访问实例中的值。数组和字典就是典型的用下标语法来访问实例中的值的例子。同一个类、结构体或枚举可以定义多个下标,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个。下标允

2017-09-01 12:09:11 550

原创 结构体的变异方法

在Swift中,结构体类型或枚举类型等值类型有时需要通过实例方法来修改属性的值,但默认情况下是不能通过实例化对象通过该方法修改属性的值,这时只需要在该方法前加上mutating关键字即可,这种方法就成为变异方法。struct MyPoint { var x: Int = 0 var y: Int = 0 mutating func setPoint(x: In

2017-09-01 12:03:37 310

原创 guard分支结构

在Swift中,除了if、switch分支结构之外,又增加了一种分支结构——guard。guard语句与if语句非常类似,可以判断一个条件为true情况下执行某语句,否则终止或跳过执行某语句。它的设计目的是替换复杂if-else语句的嵌套,提高程序的可读性,在某些情况下可以取得很好的效果。guard的结构如下:guard  条件表达式  else {语句  }语

2017-09-01 11:06:36 413

原创 操作符重载

在Swift中,系统定义的操作符有时候对于自己定义的结构体或类的使用不是很方便,所以我们需要自定义操作符来简化操作。Swift中的操作符重载比较简单,只需要在结构体或类中定义并实现重载的方法即可,单目操作符传入一个参数、双目操作符传入两个参数。实例如下:// 定义一个结构体struct p { var x: Int var y: Int //重载+操作符

2017-08-19 10:54:24 351

原创 常用数学函数

博主在这里大致列举出一些Swift中常用的数学函数1、绝对值let testAbs = abs(-2) // 22、次方let testPow = pow(2, 3) // 83、平方根let testSqrt = sqrt(4)4、对数(参数必须为浮点数)let testLog = log(10.0) // 2.302585092994046let

2017-08-19 10:51:50 1188

原创 字符串转换为整型

在Swift中,字符串转换为整型的方法有两种,我们在这里比较一下这两种方法的区别:1、使用强制类型转换,代码如下:var str = "1234"var integer = Int(str)print(integer) // 输出1234但如果换一个字符串var str = "123,4"var integer = Int(str)print(intege

2017-08-18 22:07:24 2598

纯代码版HelloWorld

纯代码版的HelloWorld界面,在博主的博文中有相关的博文,欢迎各位看官浏览。

2017-10-21

iOS版计算器

按照斯坦福老爷子做的iOS版计算器,博主自己在原基础上加了一点东西。

2017-10-21

MacOS版计算器

按照斯坦福老爷子iOS10课程做的一个计算器,这个是MacOS版的,可以在电脑上运行。

2017-10-21

空空如也

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

TA关注的人

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